其实内存找基址没什么神奇的 你小时候用过金山游侠修改过吗单机游戏吗??用过你就会噢! 首先 我们打开CE加载游戏。
进入游戏查看当前血量
3961 我们搜索整数型3961 这时。会出现很多个结果。因为内存里面3961的地方可不止血量
所以我们要再次搜索一次
我们把学弄满
好了 现在是4005血量
我们输入数值4005点击再次搜索。可以搜索到这其中改变成4005的数值出来
现在就只有一个地址了噢!这个地址就是我们的内存映像地址。 但是还不是我们要找的基址 这个地址我们只要重新开游戏 这个地址就失效了 这是为什么呢?其实 找到的这个地址 就像是我们写程序的 局部变量 而局部变量在内存所存在的位置是随机变动的运行程序了才随机给你分配 而全局变量才是不变的固定的!所以我们要找到这个地址是如何分配的 我们双击这个地址他会到下面来 然后我们点击右键选择“查找访问该地址的代码”
然后我们去游戏里做一下跟血量有关的动作
比如打坐之类的
他会促发到这个地址
然后我们会看到这么一段代码
moveax,[ecx+0adc] 这是什么意思呢? 这就是第一层偏移
这句话的意思是
把[ECX+0adc]中这个地址的值
传递给Eax 而Eax就是我们的血量
[ECX+0adc]就是我们找到血量的地址
6EF0B31C 第一层偏移0ADC 所以我们要跟一下看ECX又是怎么来的 我们双击该行代码
看到这个地方! Mov ecx,[esi+04] Mov eax,[ecx+0adc] 我们看上一句 ECX的又值是[ESI+4]传递进来的 所以我们现在已经知道 第二层偏移为 +4 然后我们现在又要跟ESI是怎么来的呢?我们看一下
ESI=6e20aa00我们直接去CE搜索这个地址 看看有啥地方存放我们需要的这个地址的
我们是16进制的数据记得打钩Hex 然后我们开始搜索
感动的绿色基址出来了
我们的基址是 00A06864 然后我们刚才说的 第一层偏移是0ADC 第二层偏移是04 这是我们逆回去 找出来的所以得反过来哦 我们验证一下 00A06864]+04]+0adc是否为血量的值
我们手动添加地址
我们打钩后添加偏移指针
第一层4 第二层0adc 然后点击确定
看到血量
说明
你成功了
恭喜你!
你找对咯!慢慢练习会让你炉火纯青! 然后 我们怎么用TC写出来读取这个值的呢? 已附上TC读血量内存源码示例 跟CE工具 By:野猪 |