«

»

21

也许还有一种DLL注入方法

只是瞎想的,未尝试,未必可行,无码

说一下步骤:

1.获取本进程的kernel32.dll基址,获取LoadLibraryA函数地址,后者与前者相减计算出LoadLibraryA在kernel32里的偏移位置(也可以直接使用获取到的LoadLibraryA函数地址,但是不保证所有系统兼容)

2.获取目标进程的kernel32.dll基址,加上之前所得的偏移计算出目标进程内LoadLibraryA函数地址

3.构造一段ShellCode写入目标进程,ShellCode恢复GetMessage的InlineHook,接着push DLL(push的是内存地址,之前要将DLL路径写入到目标进程),然后call LoadLibraryA(注意是偏移),然后再call一次GetMessage

4.Inline Hook目标进程的GetMessage(会频繁调用,前提是有窗口的程序),jmp到ShellCode的位置

5.ShellCode被执行,DLL成功注入

 

该方法无需CreateRemoteThread、SetWindowsHookEx,如果可行的话应该可以bypass各个杀软。

 

缺点应该有不少,比如线程同步问题,还有就是只支持GUI程序。水平太菜,有问题的地方希望各位大牛指正。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>