|

楼主 |
发表于 2011-6-12 09:29:46
|
显示全部楼层
本帖最后由 银河漫步 于 2011-6-12 09:31 编辑 & z3 k) ^$ {& u
* m1 K+ ^5 ^* {' N$ F6 Z: m# |
就好像CE的那种指针
+ j" D9 G7 v, r; G一个数据的地址是变动的+ ^% N( q. R9 p5 Y# }
但是相对一个A地址的偏移量是不变的
5 x; H }' z3 x4 G* ?. v那么就需要定位这个A地址) s. ]( K( T! @1 n
而指向A地址的总是一段代码8 ]( ^: @6 m) L' s# B; ]5 o: U) g
JMP类的5 z0 P1 T- M+ [! h: z& [: p
那么这个代码的地址B就是一个指针5 {' ^/ i* C+ K0 O: W0 C
就和模拟器的基地址是一个道理' m; z. u* F3 W7 ^0 B6 b; B) ]
7 i1 \) d* b2 I8 I/ F
只是PC游戏通常不是一级指针
4 w9 M8 `! V3 W! I7 \是多级的
( `& ^2 Z' o- q也就是代码地址B也不是固定的- j, }( Y- D1 v5 w
那么就需要寻址到指向这个代码地址B的的上一级JMP类代码地址C2 y8 U, d9 w: V7 I( h& z
如此循环
$ D- ~* \1 y7 q. P* C) A: q一直找到一个固定的JMP类代码为止) t6 c, x r9 G5 b( [( u& P. \
; T+ {1 m1 a* l1 O目前我遇到过的最BT的游戏也就4级指针
6 V! n$ }( p9 g再多级的暂时还没看到过 |
|