标签:art success snap amp system display 任务 xen note
1 #include <iostream>; 2 using namespace std; 3 #include <windows.h>; 4 #include <tlhelp32.h>; 5 #include <tchar.h>; 6 7 BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam); 8 HWND GetMainWindow(); 9 void MyPostMessage(HWND hWnd); 10 11 extern "C" BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) 12 { 13 HWND hWnd; 14 HWND hParWnd, hButWnd; 15 int d, d1; 16 switch (fdwReason) 17 { 18 case DLL_PROCESS_ATTACH: 19 20 hWnd = GetMainWindow(); 21 if (hWnd) 22 hWnd = ::FindWindowEx(hWnd, 0, TEXT("EDIT"), NULL); 23 if (hWnd) 24 { 25 ::MessageBox(hWnd, TEXT("开始注入"), TEXT("提示"), MB_OK); 26 MyPostMessage(hWnd); 27 } 28 else 29 { 30 ::MessageBox(hWnd, TEXT("记事本不存在"), TEXT("提示"), MB_OK); 31 } 32 break; 33 case DLL_PROCESS_DETACH: 34 // detach from process 35 break; 36 37 case DLL_THREAD_ATTACH: 38 // attach to thread 39 break; 40 41 case DLL_THREAD_DETACH: 42 // detach from thread 43 break; 44 } 45 return TRUE; // succesful 46 } 47 48 BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) 49 { 50 DWORD dwCurProcessId = *((DWORD*)lParam); 51 DWORD dwProcessId = 0; 52 53 GetWindowThreadProcessId(hwnd, &dwProcessId); 54 if (dwProcessId == dwCurProcessId && GetParent(hwnd) == NULL) 55 { 56 *((HWND *)lParam) = hwnd; 57 return FALSE; 58 } 59 return TRUE; 60 } 61 62 63 HWND GetMainWindow() 64 { 65 DWORD dwCurrentProcessId = GetCurrentProcessId(); 66 if (!EnumWindows(EnumWindowsProc, (LPARAM)&dwCurrentProcessId)) 67 { 68 return (HWND)dwCurrentProcessId; 69 } 70 return NULL; 71 } 72 73 void MyPostMessage(HWND hWnd) 74 { 75 for (int i = 0; i < 25; i++) { 76 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 77 } 78 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 79 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 80 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 81 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 82 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 83 for (int i = 0; i < 33; i++) { 84 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 85 } 86 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 87 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 88 for (int i = 0; i < 7; i++) { 89 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 90 } 91 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 92 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 93 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 94 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 95 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 96 for (int i = 0; i < 17; i++) { 97 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 98 } 99 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 100 for (int i = 0; i < 16; i++) { 101 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 102 } 103 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 104 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 105 for (int i = 0; i < 15; i++) { 106 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 107 } 108 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 109 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 110 for (int i = 0; i < 23; i++) { 111 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 112 } 113 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 114 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 115 for (int i = 0; i < 19; i++) { 116 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 117 } 118 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 119 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 120 for (int i = 0; i < 13; i++) { 121 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 122 } 123 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 124 for (int i = 0; i < 12; i++) { 125 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 126 } 127 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 128 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 129 for (int i = 0; i < 24; i++) { 130 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 131 } 132 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 133 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 134 for (int i = 0; i < 15; i++) { 135 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 136 } 137 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 138 for (int i = 0; i < 27; i++) { 139 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 140 } 141 PostMessageW(hWnd, WM_CHAR, L‘]‘, 1); 142 for (int i = 0; i < 10; i++) { 143 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 144 } 145 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 146 for (int i = 0; i < 9; i++) { 147 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 148 } 149 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 150 for (int i = 0; i < 31; i++) { 151 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 152 } 153 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 154 for (int i = 0; i < 11; i++) { 155 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 156 } 157 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 158 for (int i = 0; i < 31; i++) { 159 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 160 } 161 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 162 for (int i = 0; i < 8; i++) { 163 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 164 } 165 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 166 for (int i = 0; i < 7; i++) { 167 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 168 } 169 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 170 for (int i = 0; i < 35; i++) { 171 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 172 } 173 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 174 for (int i = 0; i < 7; i++) { 175 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 176 } 177 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 178 for (int i = 0; i < 35; i++) { 179 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 180 } 181 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 182 for (int i = 0; i < 6; i++) { 183 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 184 } 185 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 186 for (int i = 0; i < 5; i++) { 187 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 188 } 189 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 190 for (int i = 0; i < 39; i++) { 191 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 192 } 193 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 194 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 195 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 196 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 197 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 198 for (int i = 0; i < 39; i++) { 199 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 200 } 201 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 202 for (int i = 0; i < 4; i++) { 203 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 204 } 205 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 206 for (int i = 0; i < 3; i++) { 207 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 208 } 209 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 210 for (int i = 0; i < 87; i++) { 211 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 212 } 213 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 214 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 215 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 216 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 217 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 218 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 219 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 220 for (int i = 0; i < 89; i++) { 221 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 222 } 223 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 224 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 225 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 226 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 227 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 228 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 229 for (int i = 0; i < 90; i++) { 230 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 231 } 232 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 233 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 234 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 235 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 236 for (int i = 0; i < 91; i++) { 237 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 238 } 239 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 240 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 241 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 242 for (int i = 0; i < 93; i++) { 243 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 244 } 245 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 246 for (int i = 0; i < 94; i++) { 247 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 248 } 249 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 250 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 251 for (int i = 0; i < 93; i++) { 252 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 253 } 254 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 255 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 256 for (int i = 0; i < 93; i++) { 257 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 258 } 259 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 260 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 261 for (int i = 0; i < 93; i++) { 262 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 263 } 264 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 265 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 266 for (int i = 0; i < 93; i++) { 267 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 268 } 269 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 270 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 271 for (int i = 0; i < 93; i++) { 272 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 273 } 274 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 275 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 276 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 277 for (int i = 0; i < 92; i++) { 278 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 279 } 280 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 281 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 282 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 283 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 284 for (int i = 0; i < 90; i++) { 285 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 286 } 287 PostMessageW(hWnd, WM_CHAR, L‘^‘, 1); 288 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 289 for (int i = 0; i < 3; i++) { 290 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 291 } 292 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 293 for (int i = 0; i < 88; i++) { 294 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 295 } 296 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 297 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 298 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 299 for (int i = 0; i < 4; i++) { 300 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 301 } 302 for (int i = 0; i < 88; i++) { 303 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 304 } 305 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 306 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 307 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 308 for (int i = 0; i < 4; i++) { 309 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 310 } 311 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 312 for (int i = 0; i < 86; i++) { 313 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 314 } 315 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 316 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 317 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 318 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 319 for (int i = 0; i < 5; i++) { 320 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 321 } 322 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 323 for (int i = 0; i < 84; i++) { 324 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 325 } 326 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 327 for (int i = 0; i < 3; i++) { 328 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 329 } 330 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 331 for (int i = 0; i < 7; i++) { 332 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 333 } 334 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 335 for (int i = 0; i < 80; i++) { 336 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 337 } 338 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 339 for (int i = 0; i < 5; i++) { 340 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 341 } 342 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 343 for (int i = 0; i < 8; i++) { 344 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 345 } 346 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 347 for (int i = 0; i < 78; i++) { 348 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 349 } 350 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 351 for (int i = 0; i < 6; i++) { 352 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 353 } 354 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 355 for (int i = 0; i < 9; i++) { 356 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 357 } 358 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 359 for (int i = 0; i < 76; i++) { 360 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 361 } 362 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 363 for (int i = 0; i < 7; i++) { 364 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 365 } 366 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 367 for (int i = 0; i < 11; i++) { 368 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 369 } 370 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 371 for (int i = 0; i < 72; i++) { 372 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 373 } 374 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 375 for (int i = 0; i < 9; i++) { 376 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 377 } 378 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 379 for (int i = 0; i < 12; i++) { 380 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 381 } 382 PostMessageW(hWnd, WM_CHAR, L‘=‘, 1); 383 for (int i = 0; i < 70; i++) { 384 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 385 } 386 PostMessageW(hWnd, WM_CHAR, L‘^‘, 1); 387 for (int i = 0; i < 10; i++) { 388 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 389 } 390 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 391 for (int i = 0; i < 13; i++) { 392 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 393 } 394 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 395 for (int i = 0; i < 67; i++) { 396 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 397 } 398 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 399 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 400 for (int i = 0; i < 11; i++) { 401 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 402 } 403 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 404 for (int i = 0; i < 15; i++) { 405 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 406 } 407 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 408 for (int i = 0; i < 64; i++) { 409 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 410 } 411 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 412 for (int i = 0; i < 13; i++) { 413 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 414 } 415 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 416 for (int i = 0; i < 17; i++) { 417 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 418 } 419 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 420 for (int i = 0; i < 60; i++) { 421 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 422 } 423 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 424 for (int i = 0; i < 15; i++) { 425 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 426 } 427 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 428 for (int i = 0; i < 18; i++) { 429 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 430 } 431 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 432 for (int i = 0; i < 58; i++) { 433 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 434 } 435 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 436 for (int i = 0; i < 16; i++) { 437 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 438 } 439 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 440 for (int i = 0; i < 20; i++) { 441 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 442 } 443 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 444 for (int i = 0; i < 54; i++) { 445 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 446 } 447 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 448 for (int i = 0; i < 18; i++) { 449 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 450 } 451 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 452 for (int i = 0; i < 22; i++) { 453 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 454 } 455 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 456 for (int i = 0; i < 50; i++) { 457 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 458 } 459 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 460 for (int i = 0; i < 20; i++) { 461 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 462 } 463 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 464 for (int i = 0; i < 24; i++) { 465 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 466 } 467 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 468 for (int i = 0; i < 46; i++) { 469 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 470 } 471 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 472 for (int i = 0; i < 22; i++) { 473 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 474 } 475 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 476 for (int i = 0; i < 26; i++) { 477 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 478 } 479 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 480 for (int i = 0; i < 42; i++) { 481 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 482 } 483 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 484 for (int i = 0; i < 24; i++) { 485 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 486 } 487 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 488 for (int i = 0; i < 28; i++) { 489 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 490 } 491 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 492 for (int i = 0; i < 37; i++) { 493 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 494 } 495 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 496 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 497 for (int i = 0; i < 26; i++) { 498 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 499 } 500 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 501 for (int i = 0; i < 30; i++) { 502 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 503 } 504 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 505 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 506 for (int i = 0; i < 32; i++) { 507 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 508 } 509 PostMessageW(hWnd, WM_CHAR, L‘[‘, 1); 510 for (int i = 0; i < 29; i++) { 511 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 512 } 513 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 514 for (int i = 0; i < 33; i++) { 515 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 516 } 517 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 518 for (int i = 0; i < 27; i++) { 519 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 520 } 521 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 522 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 523 for (int i = 0; i < 31; i++) { 524 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 525 } 526 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 527 for (int i = 0; i < 36; i++) { 528 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 529 } 530 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 531 for (int i = 0; i < 22; i++) { 532 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 533 } 534 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 535 for (int i = 0; i < 34; i++) { 536 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 537 } 538 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 539 for (int i = 0; i < 39; i++) { 540 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 541 } 542 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 543 for (int i = 0; i < 16; i++) { 544 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 545 } 546 PostMessageW(hWnd, WM_CHAR, L‘[‘, 1); 547 for (int i = 0; i < 37; i++) { 548 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 549 } 550 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 551 for (int i = 0; i < 42; i++) { 552 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 553 } 554 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 555 for (int i = 0; i < 10; i++) { 556 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 557 } 558 PostMessageW(hWnd, WM_CHAR, L‘/‘, 1); 559 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 560 for (int i = 0; i < 39; i++) { 561 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 562 } 563 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 564 for (int i = 0; i < 44; i++) { 565 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 566 } 567 PostMessageW(hWnd, WM_CHAR, L‘,‘, 1); 568 for (int i = 0; i < 6; i++) { 569 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 570 } 571 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 572 for (int i = 0; i < 42; i++) { 573 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 574 } 575 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 576 for (int i = 0; i < 46; i++) { 577 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 578 } 579 PostMessageW(hWnd, WM_CHAR, L‘.‘, 1); 580 PostMessageW(hWnd, WM_CHAR, L‘\\‘, 1); 581 PostMessageW(hWnd, WM_CHAR, L‘O‘, 1); 582 PostMessageW(hWnd, WM_CHAR, L‘`‘, 1); 583 for (int i = 0; i < 44; i++) { 584 PostMessageW(hWnd, WM_CHAR, L‘ ‘, 1); 585 } 586 PostMessageW(hWnd, WM_CHAR, L‘\n‘, 1); 587 }
1 #include <iostream>; 2 using namespace std; 3 #include <windows.h>; 4 #include <tlhelp32.h>; 5 #include <tchar.h>; 6 7 HANDLE hThread = NULL; 8 //进程名称查找进程ID 9 DWORD ProcessFind(LPCTSTR Exename) //进程名称 10 { 11 HANDLE hProcess = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); 12 if (!hProcess) 13 { 14 return FALSE; 15 } 16 PROCESSENTRY32 info; 17 info.dwSize = sizeof(PROCESSENTRY32); 18 if (!Process32First(hProcess, &info)) 19 { 20 return FALSE; 21 } 22 while (TRUE) 23 { 24 cout << endl; 25 if (_tcscmp(info.szExeFile, Exename) == 0) 26 { 27 return info.th32ProcessID;//返回进程的ID 28 } 29 if (!Process32Next(hProcess, &info)) 30 { 31 return FALSE; 32 } 33 } 34 return FALSE; 35 36 } 37 38 int dll_inject() { 39 //Dll文件地址,改成你自己的地址 40 const TCHAR *pLocDll = TEXT("F:\\工作\\项目\\控制台\\injection\\injection\\x64\\Release\\injectionDll.dll"); 41 42 HANDLE hThread = NULL; 43 44 //记事本进程名称 45 DWORD ProcessID = ProcessFind(TEXT("notepad.exe")); 46 if (!ProcessID) { 47 cout << "查找不到当前程序" << endl; 48 } 49 else { 50 //获取进程ID 51 HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, TRUE, ProcessID); 52 53 //获取dll大小 54 SIZE_T PathSize = (_tcslen(TEXT("injectionDll.dll")) + 1) * sizeof(TCHAR); 55 56 //申请内存 57 LPVOID StartAddress = VirtualAllocEx(hProcess, NULL, PathSize, MEM_COMMIT, PAGE_READWRITE); 58 59 //写入内存 60 bool bSuccess = WriteProcessMemory(hProcess, StartAddress, TEXT("injectionDll.dll"), PathSize, 0); 61 if (!bSuccess) 62 { 63 cout << "写入失败" << endl; 64 } 65 else { 66 //在寄主申请内存 67 LPVOID strRmt = VirtualAllocEx(hProcess, nullptr, MAX_PATH, MEM_COMMIT, PAGE_READWRITE); 68 //获得注入DLL大小 69 size_t lenLocDll = 2 * _tcslen(pLocDll); 70 //判断寄主申请内存是否成功 71 if (strRmt) { 72 //把DLL写入寄主内存 73 BOOL ret = WriteProcessMemory(hProcess, strRmt, pLocDll, lenLocDll, nullptr); 74 //获得LoadLibraryW的函数地址以使用LoadLibrary函数 75 LPTHREAD_START_ROUTINE loadlib = LPTHREAD_START_ROUTINE(GetProcAddress(GetModuleHandle(TEXT("Kernel32")), "LoadLibraryW")); 76 //注入 77 hThread = CreateRemoteThread(hProcess, nullptr, 0, loadlib, LPVOID(strRmt), 0, nullptr); 78 } 79 80 /* 81 HANDLE hThread = CreateRemoteThread(hProcess, 0, 0, (LPTHREAD_START_ROUTINE)GetProcAddress(GetModuleHandle(_T("kernel32.dll")), "LoadLibrary"), StartAddress, 0, 0);*/ 82 83 if (hThread == NULL) 84 { 85 cout << "在进程中注入失败:"; 86 cout << GetLastError() << endl; 87 return -1; 88 } 89 90 WaitForSingleObject(hThread, INFINITE); 91 //到这里已经完成dll的加载即注入了,通过dll函数执行我们要完成的任务 92 //释放 93 VirtualFreeEx(hProcess, StartAddress,0, MEM_RELEASE); 94 CloseHandle(hThread); 95 CloseHandle(hProcess); 96 } 97 } 98 } 99 int main() 100 { 101 dll_inject(); 102 system("pause"); 103 }
标签:art success snap amp system display 任务 xen note
原文地址:https://www.cnblogs.com/weijunyu/p/10341211.html