首页
社区
课程
招聘
[求助]挂起方式CreateProcess时系统已经完成了什么
发表于: 2020-9-27 22:46 2236

[求助]挂起方式CreateProcess时系统已经完成了什么

2020-9-27 22:46
2236

楼主今天练习加密壳制作,课程中讲得步骤如下

 

在这里我在疑惑为什么不用贴dll,问了群里的大佬后知道了dll会在恢复进程后由系统贴进去

 

那么问题来了,在以挂起方式创建进程时,从开始调用CreateProcess到进程被挂起,系统到底已经完成了什么操作,还有什么操作是恢复后继续执行的.

 

比如 IAT 表是否在挂起前就已经绑定, 重定位表是否在挂起前就已修复,如果是恢复后执行的操作,是在恢复后重新读一遍ImageBuffer去取PE信息进行绑定修复等操作,还是在挂起前就已经读取了PE信息,只是还没开始进行操作

 

(因为如果是挂起前已经读了PE信息,那么贴进去的新PE数据就不会被读取,也就是说恢复后的操作仍按照原ImageBuffer中的pe信息进行操作,那么可能会出现问题)

 

以上问题询问群里大佬无果,论坛的各位大佬帮忙解释下~


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 1319
活跃值: (1960)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
主线程挂起保留了线程上下文(eip 什么的),恢复的时候 NtSetInformationProcess 修改下eip(oep)就行了。挂起前已经读了PE信息的,要求是和主程序pe公用一块。那就是恢复后重新读一遍ImageBuffer去取PE信息进行绑定修复等操作。解密壳最关键的技术点是重点修复导入表和重定位表。加密之前保存重定位表和导入表的指针。解密在从重定位表和导入表中修复。修复这两个就能跑存粹的exe了。要想dll还要修复tls,ralloc这种乱七八糟得表。
2020-9-28 11:01
0
雪    币: 918
活跃值: (1900)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
1进程创建的时候都是挂起的,只是用suspend方式启动就跳过恢复主线程的逻辑
2重定向工作在loadimage的时候完成
3执行的时候只看内存中的镜像信息,这也就是hook和热补能执行的原因

详细的你可以搜一下论坛里面讲解win7 createprocess的逻辑,xp这部分是在R3层做的,没有参考价值了
2020-9-28 11:02
0
游客
登录 | 注册 方可回帖
返回
//