傀儡进程原理及调试

本文详细介绍了傀儡进程的创建过程,包括挂起进程、内存分配与恶意代码注入等步骤,并提供了如何从内存中dump傀儡进程及修复dump文件使其能够正常运行的方法。

傀儡进程创建过程:

(1) CreateProcess一个进程,并挂起,即向dwCreationFlags 参数传入CREATE_SUSPENDED;

(2) GetThreadContext获取挂起进程CONTEXT,其中,EAX为进程入口点地址,EBX指向进程PEB;

(3) ZwUnmapViewOfSection卸载挂起进程内存空间数据;

(4) VirtualAlloc分配内存空间;

(5) WriteProcessMemory将恶意代码写入分配的内存;

(6) SetThreadContext设置挂起进程状态;

(6) ResumeThread唤醒进程运行。

傀儡进程是恶意软件隐藏自身代码的常用方式,在调式过程中,若遇到傀儡进程,需要将创建的子进程数据从内存中dump出来,作为PE文件单独调试,dump的时机为ResumeThead调用之前,此时傀儡进程内存数据已经完全写入,进程还未正式开始运行。

若dump后文件无法运行,OD加载失败,则需要做如下修复:

(1) FileAlignment值修改为SectionAlignment值;

(2) 所有section的Raw Address值修改为Virtual Address.


参考:

http://www.programlife.NET/puppet-process-memory-dump.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值