移动或复制shellcode是shellcode注入中的第二步,相对于第一步和第二步它的重要性没有那么高,杀软也不会在这里投入过多的关注,究其原因是我们可以自实现逐字节复制,AV/EDR想监控都无从下手。
在本节中我只介绍最基本也最常用的几个方法,分别是 RtlMoveMemory
、memcpy
、逐字节复制
⚠注意:
在shellcode注入中一定要分清是注入本进程还是远程进程。
这里并不讨论使用Nt或Zw类型的API,也不讨论系统调用。
官方文档:
RtlMoveMemory
:函数可以将源内存块的内容复制到目标内存块。这也是在windows编程,特别是免杀中用的比较多的一个函数,相对来说免杀效果差一点。
语法
官方文档:
memcpy
将shellcode复制到指定内存区域。
语法
由于逐字节复制实在太过简单,直接看代码吧