首页
社区
课程
招聘
[原创]奇思妙想!找出进程模块的CRC检测线程
2022-5-12 07:45 7677

[原创]奇思妙想!找出进程模块的CRC检测线程

2022-5-12 07:45
7677

先说两种找CRC检测的两种常见方式:
第一种:利用VT的读,执行分离
第二种:调试目标进程,然后利用硬件断点

 

我所用的方法是第二种方式的变种,第二种方法不好的地方是需要调试目标进程,这样是会被对面的反调试检测的.

 

图片描述
如图,一个PE文件的代码段开始一般在是0x1000.那么PE头信息所在的0-0xfff的内存是不会被进程执行的,而CRC检测肯定会把这一段给一起检测.

 

那么久引出我所说的方法,把PE头的PTE设置为无效状态,然后接管异常处理.在异常中处理,如果是被修改的进程的目标内存,记录下线程信息并且恢复PTE为有效状态.(此方法需要过PG)

 

图片描述

 

该方法我在我写的工具中实现并且测试过,可以正确的找到CRC线程信息.


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞1
打赏
分享
最新回复 (4)
雪    币: 248
活跃值: (3779)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
luskyc 2022-5-12 13:20
2
0
本质上这跟第一种VT的读,执行分离是一样的
都是先触发页面异常,只是VT硬件接管做得更底层也更隐藏,lz是软件接管
雪    币: 6115
活跃值: (4041)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 1 2022-5-18 21:52
3
0
有没有一种可能,它就是通解?
雪    币: 189
活跃值: (138)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wangjietx 2022-5-24 23:57
4
0
VT的读,执行分离靠什么来执行?很多CRC线程并不扫PE头
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
0x4D5A 2022-6-5 13:19
5
0
EPT  r3很好检测
游客
登录 | 注册 方可回帖
返回