od 查找特征码和特征码模糊搜索教程

特征码的作用

特征码的作用是用来定位一段特殊的汇编代码,一般用作定位有偏移量的汇编代码,因为如果你破解了一个文件,但是他更新以后,里面文件的汇编指令偏移量会改变.所以需要用他附近的汇编指令当做特征码来定位.看下面的例子详细说明
先看下面汇编代码

地址             16进制指令    汇编指令
768FACB7    29FD            sub ebp,edi
768FACB9    0300            add eax,dword ptr ds:[eax]
768FACBB    91              xchg eax,ecx
768FACBC    f3:0300         rep add eax,dword ptr ds:[eax]
768FACBF    2A4A 00         sub cl,byte ptr ds:[edx]
768FACC2    009408 1C005348 add byte ptr ds:[eax+ecx+0x4853001C],dl

上面6行代码中,最后一行代码 add byte ptr ds:[eax+ecx+0x4853001C],dl,这里面有个偏移量 [eax+ecx+0x4853001C],这段话意思是把数据段eax + ecx + 0x4853001C 这段内存取一个字节长度,取出其中的值 + dl,再存入到这个字节中.
但是如果程序更新以后,例如这个exe文件版本升级以后,这个偏移量+0x4853001C,可能会改变,可能会变成 +0x12345678.那么假设我们用c++修改这段内存:[eax+ecx+0x4853001C],例如这段内存是人物血量,那么因为更新以后,这个内存就不再是人物血量了,因为偏移量改变了.
我们要如何知道新的血量地址的偏移量,就需要借助上面5行代码,作为特种码,然后搜索他们的位置,从而找出第6行的代码.这样我们通过第6行代码就知道新的人物血量的偏移量是多少了.

查找这个特征码方法有2个

查找多行汇编代码

sub ebp,edi
add eax,dword ptr ds:[eax]
xchg eax,ecx
rep add eax,dword ptr ds:[eax]
sub cl,byte ptr ds:[edx]

把这5行汇编代码复制出来,然后在od中 ,右键Search for 然后 Sequence of commands .快捷键ctrl + s ,查找多行汇编指令
在这里插入图片描述
然后把这5行代码粘贴进去
在这里插入图片描述
再点击find就会找到这5行代码,然后下面的代码就是我们要找的偏移量

通过十六进制数查找特征码

把上面5行汇编指令前面的 十六进制 数字复制组合到一起

29FD
0300
91  
f3:0300
2A4A 00

然后去掉换行组合到一起就是特征码
29FD030091f303002A4A00

然后od中右键Search for 查找 再选择Binary string 二进制字符串 ,快捷键ctrl+b,如下图
在这里插入图片描述

然后把上面的29FD030091f303002A4A00 复制进去,如下图
在这里插入图片描述
就会找到这5行汇编代码,如下图:
在这里插入图片描述

模糊搜索特征码

如果好几行汇编当中,也带偏移量,那么这些偏移量也是不确定的,可以用?? 问号代替,如下,我把第3,4位和最后2位换成了?问号,代表这4个位不确定具体的汇编指令
29??030091f303002A4A??
把他用上面的ctrl+b复制进去,如下图,一样可以找到这5行汇编指令
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值