主动防御的代码注入方法一点思考 (转载)

本文探讨了一种绕过杀毒软件主动防御的代码注入技术,通过在目标进程中搜索已存在的字符串,如"nel32.dll",作为参数传递给QueueUserAPC,避免了WriteProcessMemory函数的使用,从而成功实现注入,同时举例并提供了实验代码证明其可行性。
摘要由CSDN通过智能技术生成

目前大多数的杀软都是hook NtWriteVirtualMemory和NtUserSetWindowsHookAW、NtUserSetWindowsHookE来防止代码注入。
关于代码注入Ring3层的方法主要有:
远程线程CreateRemoteThread
消息钩子SetWindowsHookEx
Ring3 APC QueueUserApc
修改线程上下文SetContextThread
其中第一种和第三种方法需要传入一个param,但是要求这个param必须在目标进程内存空间,之前的一些方法比较笨重,直接在目标进程 VirtualAllocEx内存,然后把希望的参数内容写入这个内存,使用了WriteProcessMemory函数,而这个函数是被hook的,所以杀软可以很容易的拦截代码注入行为。
仔细想想,杀软的这种防御是很失败的!原因是为了要一个param,攻击者完全没有必要做这么大的动作去目标进程内存空间申请内存并写内存,我在思考是否可以不用WriteProcessMemory函数呢?反正我的目的就是得到一个合理的param,并且这个param是在目标进程内存空间即可!
思考后,原来一切是这么容易啊,哈哈!乐了我半天~~~
举个例子:假设我是这样注入的:
QueueUserAPC((PAPCFUNC)LoadLibraryA, hThread, (ULONG_PTR)param) ;
我想让上面的param的内容是一个“xxx.dll”,就可以了,而且要求这个param是在目标进程内存空间
您想到了么?哈哈
答案

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值