|
|

楼主 |
发表于 2011-6-12 09:29:46
|
显示全部楼层
本帖最后由 银河漫步 于 2011-6-12 09:31 编辑 6 ?( u6 z! Z: C# _# _5 t* @! T
2 C3 N% g8 G% U; E" k J3 C5 r
就好像CE的那种指针
+ q N& a# C: q4 e- ~( }一个数据的地址是变动的& ]# ^6 ]* `1 U! t
但是相对一个A地址的偏移量是不变的
, d/ ~; X6 Y& s+ T" h那么就需要定位这个A地址
" `. U3 x2 M+ j- `5 _+ z2 E+ z& `而指向A地址的总是一段代码# d/ @# x, N* u% j4 ?! `7 B
JMP类的
7 M) `' X9 T4 @4 ~2 r2 J那么这个代码的地址B就是一个指针: D# r, S7 ^8 i, D, ?
就和模拟器的基地址是一个道理. N8 s: h! D0 _9 J6 c4 \0 k, d
, ^1 A- Q6 K5 E
只是PC游戏通常不是一级指针7 x2 N. @7 v, G" w0 ?; o/ T# w
是多级的( H q! X" U% P& d7 _
也就是代码地址B也不是固定的" H! ?( e4 r7 s5 y
那么就需要寻址到指向这个代码地址B的的上一级JMP类代码地址C2 ^+ Q1 p2 @5 ?
如此循环: Q8 i3 `0 U2 b4 {1 z# {
一直找到一个固定的JMP类代码为止
6 A5 U: ~0 {0 A. E6 J5 N7 N, Z/ ~! l% X3 ?3 m M
目前我遇到过的最BT的游戏也就4级指针6 @) a' K1 p0 i1 G" l! {3 Z
再多级的暂时还没看到过 |
|