如果读远端程序的内存呢?其实可以有一种方法,我没有试过,但理论上是可行的:
先用CreateRemoteThread在远端进程中创建一个线程,然后在本地缓冲区中写调用
DLL的汇编语言如下:
mov eax,{此处写你的DLL文件的路径}
push eax,
call Loadlibrary,
push eax,
push eax,
call freelibrary,
call ExitThread
然后调用WriteProcessmemory将这段代码写到远段进程的线程栈中。
接着用getThreadContext获得远段进程的CPU的CONTEXT结构,使栈指
针指向你的代码语言,并使指令指针指向你的代码语言的第一个字节,
然后用SetThreadContext将设定写入远端进程寄存器,最后调用ResumeThread
,远端进程将执行你的代码,并将你的DLL语言调入内存,此时该进程
的所有数据将对该DLL是透明的,因为调入的DLL将作为该进程的一部分,
是存在该进程空间的,不会发生访问冲突,如果在该DLL写入一些我们想
要的东西,我们就可以轻而易举的获得!此时该进程已被突破!