昨天朋友发来一个三国小游戏,让我找金币的基地址

1723171121661

本以为会一帆风顺,结果还是花了好长时间,才找到一个地址,改动会使得金币变化

1723171428568

费劲千辛万苦,终于找到了这个地址,但是很遗憾,这玩意是黑色的,也就是说明这个地址是会变动的,属于堆栈地址。很明显,这个就要去找指针。

凭借我三脚猫的功夫,之前在CE教程学的,我觉得徒手找

首先我去查找是啥玩意改变了这个地址

1723171513658

成功找到这三个值,点进去发现,它们改的地址都是

1723171569075

1723171602501

于是我非常自信的去搜索是哪一块内存存了这个0x351F15C

1723171672499

扫出来有俩,然后再分别去找究竟是什么地址访问了这个地址

果然出了意外,击杀完怪物,迟迟等不到有地址访问

1723171764894

后来我仔细琢磨了一下,很有可能是因为(举个例子)

1
2
3
4
mov [edi+0x55],ecx

add edi,0x55
mov [edi],ecx

这玩意,导致我搜索访问不到

所以这回我们就要启用CE的一个强大功能,就是

1723171972440

点开后,点击显示高级选项,我觉得为了防止有些游戏偏移不对齐,所以我选择把 地址必须是32位(4字节)对齐取消掉,以免有些地址找不到,然后最大级别改为8(也是为了防止极端情况吧),小游戏应该够了

1723172029973

然后选择一个目录保存扫描出来的结果

1723172159433

这一大堆便是结果,但是很多,我们如何进行筛选呢?

1723172197901

首先我们需要关闭游戏,重新找到金币的地址

于是我又废了老大劲,找到了游戏的地址

重新对这个地址进行指针扫描

1723172525352

这回我们不需要进行扫描了,我们只需要进行对比即可

1723172602089

然后开始过滤

1723172642572

填上我们的找到的新地址

1723172676141

又或者填上我们找到新的地址里面存的值(选择要查找的数值)

1723172747019

然后可以发现少了好多,但是仍然残留不少,这时候就继续重复刚刚的步骤吧

1723172783575