-
-
[原创]只用WriteProcessMemory进行远程注入执行
-
发表于:
2011-2-12 22:46
12969
-
[原创]只用WriteProcessMemory进行远程注入执行
今天突发奇想,不用CreateRemoteThread,只用WriteProcessMemory进行远程注入并执行!
原理是修改进程原始代码,但不是什么位置的代码都能利用,因为你不知道这个原始代码是否会被进程调用,所以我们要找一个循环的代码,这就不难了,窗口消息回调就是循环的,拿explorer.exe为例子:
用OD附加explorer进程,然后点W按钮显示窗口,看到许多窗口,应该选哪个呢?有不少回调地址都是DLL在处理,我们要选一个进程自己处理的,看下图红框框起来的那个!
然后点跟随classproc
01001B1D 8BFF mov edi, edi
01001B1F . 55 push ebp
01001B20 . 8BEC mov ebp, esp
01001B22 . 53 push ebx
01001B23 . 56 push esi
01001B24 . 57 push edi
01001B25 . 8B7D 0C mov edi, dword ptr [ebp+C]
01001B28 . BB 81000000 mov ebx, 81
01001B2D . 3BFB cmp edi, ebx
01001B2F . 0F84 3A1F0100 je 01013A6F
01001B35 . 8B5D 08 mov ebx, dword ptr [ebp+8]
01001B38 . 53 push ebx
01001B39 . E8 A8FFFFFF call 01001AE6
01001B3E . 8BF0 mov esi, eax
01001B40 . 85F6 test esi, esi
01001B42 . 0F84 ED2C0200 je 01024835
01001B48 . 8B06 mov eax, dword ptr [esi]
01001B4A . 56 push esi
01001B4B . FF10 call dword ptr [eax]
01001B4D . FF75 14 push dword ptr [ebp+14]
01001B50 . 8B06 mov eax, dword ptr [esi]
01001B52 . FF75 10 push dword ptr [ebp+10]
01001B55 . 8BCE mov ecx, esi
01001B57 . 57 push edi
01001B58 . 53 push ebx
01001B59 . FF50 08 call dword ptr [eax+8]
01001B5C . 81FF 82000000 cmp edi, 82
01001B62 . 8945 14 mov dword ptr [ebp+14], eax
01001B65 . 0F84 B72C0200 je 01024822
01001B6B > 8B06 mov eax, dword ptr [esi]
01001B6D . 56 push esi
01001B6E . FF50 04 call dword ptr [eax+4]
[COLOR=red]01001B71 > 8B45 14 mov eax, dword ptr [ebp+14]
01001B74 > 5F pop edi
01001B75 . 5E pop esi
01001B76 . 5B pop ebx
01001B77 . 5D pop ebp
01001B78 . C2 1000 retn 10[/COLOR]
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)