进程DLL注入

进程DLL注入
1、为什么要进行进程注入:到了WinNT以后的系列操作系统中,每个进程都有自己的4GB私有进程地址空间,彼此互不相关。进程A中的一个地址,比如:0x12345678,到了进程B中的相同地方,存的东西完全不一样,或者说不可预料。所以说如果进程A想要看看或者修改进程B地址空间中的内容,就必须深入到其地址空间中,因为DLL是可以被加载到任何进程当中的,所以在进程注入中,DLL应该是主角,也就是说一些核心的代码都应该放在DLL中编写。


2、注入的缺点:
如果DLL程序的算法不是很好,或者DLL文件有Bug,那么将影响目标进程的执行效率,或者说干脆目标进程崩溃。

3、注入的具体方法:
目前Windows操作系统上面注入的方法也很多,《Windows核心编程》上面介绍了不少,大家也可以到网上搜索一下,比如钩子,远程线程技术等等……

4、具体编程方法:
本课程教大家用远程线程技术来实现进程的注入。
用到的API函数:
OpenProcess(...) //获取已知进程的句柄;
VirtualAllocEx(...) //在进程中申请空间;
WriteProcessMemory(...) //向进程中写入东西;
GetProcAddress(...) //取得函数在DLL中的地址;
CreateRemoteThread(...) //在其他进程中创建新线程;

CloseHandle(...) //关闭句柄;

以前自己写的代码:

 

你可能感兴趣的:(进程DLL注入)