好友
阅读权限10
听众
最后登录1970-1-1
|
假如我们要提取超级模块的一个子程序的特征码的话
我通常都是在子程序头部写个 置入代码({144,144,144,144,144}) //五个nop
然后进OD,ctrl+b搜索 90 90 90 90 90
然后就找到他了
然后再提取特征码
说到怎么提取特征码
其实很简单
只要随便找段代码 //注意,那些代码有三个要求 “call 常量 绝对地址不行,要使用通配符 ' ?? ' ”
假如我找到这么段代码
mov eax, 0x00000001
mov dword ptr [0x004A90E0], 0x00000001
push eax
call 0x05264CFE
然后二进制代码就是
B8 01 00 00 00 C7 05 E0 90 4A 00 01 00 00 00 50 E8 21 7D 47 00
首先 mov eax, 0x00000001 这句代码不是call 常量 绝对地址,是死代码,没问题
然后 mov dword ptr [0x004A90E0], 0x00000001 这个地方有个绝对地址, 不行,要换成通配符
即 C7 05 E0 90 4A 00 要换成 C7 05 ?? ?? ?? ?? 01 00 00 00
然后push eax 也没问题
而第四句是个call,也要换成通配符
即 E8 F9 4C 26 05 换成 E8 ?? ?? ?? ?? //E8代表call
//温馨提示,换成通配符的都是地址 比如 C7 05 E0 90 4A 00 里的 E0 90 4A 00 就是代表 004A90E0(C7代表mov)
然后最终换下来就是 B8 01 00 00 00 C7 05 ?? ?? ?? ?? 01 00 00 00 00 50 E8 ?? ?? ?? ??
你学会如何提取特征码了吗?
by:Gentry Afeng
|
免费评分
-
查看全部评分
|
发帖前要善用【论坛搜索】功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。 |
|
|
|
|