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

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

2022-5-12 07:45
8474

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

 

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

 

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

 

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

 

图片描述

 

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


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

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