-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPermaBlockVisualStudio.cpp
More file actions
94 lines (81 loc) · 2.71 KB
/
PermaBlockVisualStudio.cpp
File metadata and controls
94 lines (81 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
// PermaBlockVisualStudio.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <Windows.h>
#include <string>
#include <sddl.h>
using namespace std;
// open a connection to the host file
bool isAdministrator()
{
BOOL isAdmin = FALSE;
PSID adminGroupSid = nullptr;
SID_IDENTIFIER_AUTHORITY ntAuthority = SECURITY_NT_AUTHORITY;
if (!AllocateAndInitializeSid(&ntAuthority, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, &adminGroupSid))
{
return FALSE;
}
if (!CheckTokenMembership(nullptr, adminGroupSid, &isAdmin))
{
FreeSid(adminGroupSid);
return FALSE;
}
FreeSid(adminGroupSid);
return isAdmin;
}
bool checkForDupes(fstream &hostfile)
{
string line;
while (getline(hostfile, line))
{
cout << line << endl;
}
}
void blockGivenFile(std::string fileName)
{
const std::string file_path = "C:\\Windows\\System32\\drivers\\etc\\hosts.";
std::fstream hostFile(file_path, ios::app);
if (isAdministrator())
{
if (hostFile.is_open())
{
// now that the file is open, append the text that blocks tiktok
if (true)
{
}
hostFile << "127.0.0.1" << " www.tiktok.com" << endl;
hostFile << "127.0.0.1" << " tiktok.com" << endl;
hostFile << "127.0.0.1" << " api.tiktok.com" << endl;
hostFile << "127.0.0.1" << " m.tiktok.com" << endl;
hostFile << "127.0.0.1" << " v16m.tiktok.com" << endl;
hostFile << "127.0.0.1" << " mon.musical.ly" << endl;
cout << "www.tiktok.com" << " is blocked until restart" << endl;
}
else
{
cout << "Connection to Host File Failed" << endl;
}
}
else
{
cout << "You do not have Admin Status. Please run this program as administrator" << endl;
}
hostFile.close();
system("ipconfig /flushdns");
}
int main()
{
blockGivenFile("Temp Junk");
return 0;
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file