这里说的是将ShellCode代码直接注射到远程进程内部使它运行! 以下代码全部使用TASM为原型编写(MASM不太适合,不能自定义PE结构,为了某某人说我抄袭和盗版pkXX大哥的FASM大作,我这里就使用国内很少用的TASM为原型来编写代码) 文章假定各位已经有了一定的编程基础 1.远程线程注入原理 先说说远程线程注入原理,以前我们编写远程注入代码的时候总是需要自己计算代码注入到目标进程后的结构, 一般是本地获取GetProcAddress,LoadLibraryA,GetModuleHandle,ExitThread 函数,当然也有的大哥哥是使用本地获取所有函数的指针然后~然后填写代码结构后 注入到目标进程的. 小弟不喜欢后者,假定目标进程中没有加载user32.dll连接库,如果你的代码中刚好有MessageBoxA这个函数的话,就会引起非法操作(无法读取XXX地址),推荐使用第一种方法 ,这个仅仅是第一步...以下代码演示...仅仅是演示没有填写其他部分 假设注入代码已经获取到GetProcAddress,LoadLibraryA,GetModuleHandle地址 CODE: .data xdll db 'user32.dll',0 xapi db 'MessageBoxA',0 .code start: push ebx lea ebx,xdll push ebx call GetModuleHandle ;纯属无聊才使用GetModuleHandle你可以直接使用 test eax,0 ;LoadLibraryA jnz @@getapi lea ebx,xdll push ebx call LoadLibraryA @@getapi: lea ebx,xapi push ebx push eax ;此时eax保存的是u32的基址 call GetProcAddress push 0 push 0 push 0 push 0 call eax ;