简单说明DLL注入的原理
ce吧
全部回复
仅看楼主
level 8
JudgeOu 楼主
DLL注入的方法有两种:
1,利用系统钩子(windows hook)
2,通过远程创建线程注入
一般我们都是用第二种比较多,方法先使用WriteProcessMemory往目标进程写入执行代码,执行代码的具体内容,就是调用LoadLibrary去载入指定DLL,然后使用CreateRemoteThread去执行这段代码。这就是DLL注入的原理。之所以要绕几个圈,就是因为LoadLibrary函数只能往自己的进程载入DLL,而不能往别的进程载入DLL,所以,我们必须要在目标进程的地址空间中执行LoadLibrary,而不是在我们的注入器中去执行。
2014年12月02日 04点12分 1
level 8
JudgeOu 楼主
为什么注入器总是会释放出DLL到system32目录?因为,LoadLibrary函数只能在默认的几个位置读取DLL文件,分别是:
1,进程可执行文件(exe)所在目录
2,System32目录
3,Windows目录
4,环境变量当中PATH变量中的目录
优先级从大到小,1最优先
2014年12月02日 04点12分 2
level 13

2014年12月02日 04点12分 3
level 11
好吧,我又有一种被骗的感觉,这些都是天书啊[黑线]
2014年12月02日 04点12分 5
level 11
虽然看不懂,但是很厉害的样子[滑稽]
2014年12月02日 06点12分 6
level 13
明白原理了,但是却不会写怎么办
2014年12月02日 06点12分 7
你对你掌握的语言不够精通,就是这样
2014年12月02日 08点12分
level 11
复制粘贴
2015年01月21日 22点01分 11
level 13
不错不错!
2015年01月23日 09点01分 16
1