获取特征码

发布于 2021-04-22  4 次阅读


这里简单科普一下什么是特征码!

简单来时就是机器码,我们看到的汇编代码会被转换成机器码,再进一步转换成二进制代码,由核心处理器处理

我们在ce内存视图里看到的,如下图:

想要定位基址,就要从机器码入手

csrss.exe+11BF504 - 48 8D 35 1ABB8BFF - lea rsi,[csrss.exe+A7B025] { (255) }

比如上面这段代码,通常地址和偏移是会变动的,所以我们再定位特征码的时候用??来代替一个字节

这里48 8D 35对应就是lea rsi 那么后面的1ABB8BFF对应就是地址的机器码了,我们定位特征码可以随意在目标基址周围选一段内存代码,选择开头,按住shift 选结尾行,即可选中多行,此时按Ctrl+C

这里我提供了两种复制特征码类型,上面Copy特征码会处理地址和偏移,但不会处理寄存器偏移,比如[rax+04]这里04就会保留,而下面的Copy特征码过滤地址偏移会处理所有数值,以下是两种方式结果对比:

csrss.exe+11BF5FB - 48 83 EC 28 - sub rsp,28 { 40 }
csrss.exe+11BF5FF - 48 8D BE 00B01B01 - lea rdi,[rsi+csrss.exe+DBB000]
csrss.exe+11BF606 - 8B 07 - mov eax,[rdi]
csrss.exe+11BF608 - 09 C0 - or eax,eax
csrss.exe+11BF60A - 74 4A - je csrss.exe+11BF656
csrss.exe+11BF60C - 8B 5F 04 - mov ebx,[rdi+04]
csrss.exe+11BF60F - 48 8D 8C 30 F8052801 - lea rcx,[rax+rsi+csrss.exe+E805F8]
csrss.exe+11BF617 - 48 01 F3 - add rbx,rsi
csrss.exe+11BF61A - 48 83 C7 08 - add rdi,08 { 8 }

以上为原型:

48 83 EC 28 48 8D BE ?? ?? ?? ?? 8B 07 09 C0 74 4A 8B 5F 04 48 8D 8C 30 ?? ?? ?? ?? 48 01 F3 48 83 C7 08

48 83 EC ?? 48 8D BE ?? ?? ?? ?? 8B 07 09 C0 74 4A 8B 5F ?? 48 8D 8C 30 ?? ?? ?? ?? 48 01 F3 48 83 C7 ??

所以你看懂了吗?特征定位对于游戏更新后寻找正确的基址是很重要的!

BY-晚风吻尽荷花叶


人間になるために生まれて、私はとても悲しいです