|
楼主 |
发表于 2011-6-12 09:29:46
|
显示全部楼层
本帖最后由 银河漫步 于 2011-6-12 09:31 编辑
) G( @ S* ^2 G- t( j4 h& z
& W4 X7 y2 p3 l* t就好像CE的那种指针$ ^" D: [- t2 @. E0 f
一个数据的地址是变动的& m) o% w( @# D, J
但是相对一个A地址的偏移量是不变的* o4 E4 M; B( y+ K6 Q3 X1 S( d
那么就需要定位这个A地址
- z$ U5 {$ T4 }而指向A地址的总是一段代码
; m" F0 n5 E6 GJMP类的/ X9 F7 H9 O2 V3 z4 `* q" v
那么这个代码的地址B就是一个指针1 R$ t. C2 ^: z |
就和模拟器的基地址是一个道理
8 I: N; i* G4 Q7 f6 Y
- }# o6 T8 ^9 h; N) `只是PC游戏通常不是一级指针
/ l2 K, f9 J( @ n. }2 t6 f是多级的6 t+ r7 C0 y" K7 l7 _3 H0 l
也就是代码地址B也不是固定的
: z$ r0 A+ S* G那么就需要寻址到指向这个代码地址B的的上一级JMP类代码地址C! o( U2 T" X6 { j1 M
如此循环) K' J, }) U0 ^/ T& w- }( h
一直找到一个固定的JMP类代码为止
7 N1 x* [# U+ f7 W, D2 l& b: W6 j @0 j1 P# V% T
目前我遇到过的最BT的游戏也就4级指针+ d; `" O, ]5 K6 {1 x/ U- }6 W
再多级的暂时还没看到过 |
|