首页
论坛
课程
招聘
[原创]EasyAnticheat的内存特征算法
2021-6-10 13:40 8621

[原创]EasyAnticheat的内存特征算法

2021-6-10 13:40
8621

anticheat一般都会有内存扫描的操作,来与数据库中的非法程序进行对比。

在进行扫描前,ac会先判断地址是否正确

判断是否是用户态的可读地址

如果没问题,则进行内存特征的操作


根据这个这个表,很容易知道这是hde的反汇编引擎,和crc的哈希

具体步骤:

  1. eac先根据获取当前附加进程的架构x86,还是x64

  2. 接着开始循环遍历内存块,直到找到特定机器码起始的地址

可以看到,x64是寻找sub rsp,xxxx /push rbp或者mov rbp,rsp 。x86则是寻找push ebp /mov ebp,esp


3.如果找不到,则+0x10个字节继续寻找。如果找到了,先计算当前指令的crc(x64 4个字节,x86 3个字节,这里crc的初始值是0),接着开始遍历下面的内存

从上面找到地址来看,判断架构,x先用hde尝试获取指令长度,如果反汇编成功,64则判断是否是否0x48或0x0f开头,则crc 2个字节,否则只crc一个字节。x86同理,直到碰到inst_filter中的opcode为止,输出看一下


碰到这些opcode则结束循环,并把计算的crc保存到全局数组中


下面来仿写这个算法试试,对ntdll的.text段进行提取特征



第五届安全开发者峰会(SDC 2021)10月23日上海召开!限时2.5折门票(含自助午餐1份)

收藏
点赞4
打赏
分享
最新回复 (7)
雪    币: 125
活跃值: 活跃值 (331)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
qdjytony 活跃值 2021-6-10 13:47
2
0
单总NB!
雪    币: 2431
活跃值: 活跃值 (661)
能力值: ( LV3,RANK:10 )
在线值:
发帖
回帖
粉丝
のばら 活跃值 2021-6-10 21:25
3
0
板凳
雪    币: 4745
活跃值: 活跃值 (2187)
能力值: ( LV7,RANK:150 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 活跃值 1 2021-6-11 10:46
4
0
单总 最近帖子更新的有点勤快~ 

yyds
雪    币: 597
活跃值: 活跃值 (894)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
小希希 活跃值 2021-6-17 11:20
6
0
感谢分享
雪    币: 211
活跃值: 活跃值 (67)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
黄枫叶 活跃值 2021-7-25 22:12
7
0
单总,还记得QQ上的我吗??
雪    币: 1966
活跃值: 活跃值 (589)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
杰克王 活跃值 2021-7-27 09:20
8
0
单总 牛皮
游客
登录 | 注册 方可回帖
返回