=======================
为什么要设立?
因为游戏更新基址,较大的偏移会变化,为了方便,
所以设立OD死码,方便快速获取游戏更新后的相关数据。
=======================
什么是OD汇编死码与OD二进制死码?
OD汇编死码指的就是OD反汇编中游戏更新后也不变的汇编。
OD二进制死码指的就是OD反汇编中游戏更新后也不变的二进制。
=======================
如何设立OD汇编死码?
条件:最多8条汇编,因为OD里ctrl+s搜的时候最多只能8条
哪些汇编不能用于OD死码:call 内存地址
jz/jnz/je(等跳转语句) 内存地址
moveax,[ecx+0abc] 偏移abc比较大的不可以。
moveax,[esp+30] 汇编里有ESP堆栈寄存器的不可以,后面跟的偏移+30会变化
举例:
LEA EAX,DWORD PTR SS:[ESP+10]
LEA ECX,DWORD PTR SS:[ESP+40]
LEA EDX,DWORD PTR SS:[ESP+4]
PUSH ESI
PUSH EDI
PUSH EAX
=======================
如何设立OD二进制死码?
根据上面不能用于死码的情况来设立二进制死码:
具体设立是:OD中选中一块汇编,右键-二进制-二进制复制。
快捷键:ctrl+b
举例:
0077B832 |. 56 PUSH ESI
0077B833 |. 57 PUSH EDI
0077B834 |. 50 PUSH EAX
0077B835 |. 8B8424 D0000000 MOV EAX,DWORD PTR SS:[ESP+D0]
0077B83C |. 51 PUSH ECX
0077B83D |. 52 PUSH EDX
0077B83E |. 50 PUSH EAX
0077B83F |. E8 0C9B1200 CALL elementc.008A5350
56 57 50 8B 84 24 D0 00 00 00 51 52 50 E80C 9B 12 00
56 57 50 8B 84 24 ?? 00 00 00 51 52 50 E8?? ?? ?? ??
=======================
原文始发于微信公众号(汇编语言):如何对汇编设立不变OD汇编死码与二进制死码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论