1、jc02.JPG(29.84 K)输入教学软件上 给出的数字 进行搜索。jc03.JPG(47.18 K)得到一个地址,黑色的,说明是动态地址。所谓动态地址,就是这个址是会变的,比如说在游戏中存放人物血的数值的地址,每次变换角色或者重新登录甚至变换一下场景,都会发生变化。那么,通过读写这个地址来得到人物的血量值,就无法实现,变一下就找不到了。现在我们就是要来分析这个地址是怎么来的。双击一下这个地址,添加到下面的地址栏,然后右键点击这个地址,“找出是什么改写了这个地址”jc04.JPG(57.06 K)按一下教学软件上的按键“Change Value”改变数值。好了,出来一行代码,正是这行代码在
2、改写这个地址里的数值。jc05.JPG(21.45 K)双击这行,看详细信息,CE提示要寻找的指针可能是“d7780”jc06.JPG(37.82 K)我们点 新的搜索,选中16进制,数值是“d7780”,结果出来了,还是黑色的。同样的方法 把它添加到下面地址栏,但现在起我们要“找出是什么访问了这个地址”jc07.JPG(53.05 K)重复这一步的操作,直到搜索到的地址是绿色的为止,绿色的地址,表示是基址,不再会发生变化。现在回过来梳理一下这个过程,原来我们一开始找到的那个地址,是经过这4次变化得来的。jc08.JPG(114.38 K)这个是基址,这里是用一个模块加偏移表示的。jc09.J
3、PG(11.44 K)我们在CE上,点“手工加入地址”,钩选“指针”,按“Add Offset”,添加成有4级偏移的指针,最底下方框中输入基址(模块名+偏移),逐级往上每次的偏移量。jc10.JPG(24.60 K)好了,指针地址添加好了。jc11.JPG(61.73 K)现在测试一下,按教学软件上的“Change pointer”改变指针,看一下我们 分析出来的这个指针是不是准确同步变化。同时也可以看到,改变指针以后,前面找出来的那些动态地址,全都没用了。jc12.JPG(73.21 K)上面,简要说了用分析法 查找多级指针的方法,说得比较粗略,网上类似的教程也较多,大家可以去找找参考一下。
4、现在这里要讲讲第二办法:扫描法相对来说,CE教程上的指针地址,是比较简单的,让我们这些未入门的人 也三下五除二 找到了,在实际各类游戏中,大多数时候可没这么简单,更多的需要点汇编的功力,特别是,有的时候进行第二步,“找出是什么在访问这个地址”,一个地址也搜索不到,如果要分析代码吧,能力有限,怎么办,这就可以用到第二种办法,扫描指针,关于这个方法,网上很多教程都是一句话带过,以为大家都是大侠,这点小事不值得一提,唉,的确 就差一层窗户纸,我也有一阵子 很糊涂,冥想很久才明白,好了,废话不说了,进入正题第一步是同分析法一样的,先的到这个动态地址。然后注意,这里要做的是“扫描目标地址指针”jc13.
5、JPG(46.33 K)2013-1-23 14:52:49多数情况下,我们只需要CE默认值进行搜索就可以了,就是要设一下扫描指针的深度,级数少 扫描的时间就少,我一般都是从4级开始扫描,扫描4级指针真的花不了多少时间,4级找不到就再扫5级,再6级。7级。再高8级、10级,恐怕搜索几天几夜也搜索不完,大家看着办吧。jc14.JPG(35.03 K)这里要选择一下,存放扫描的结果文件名和目录位置,建议放到空间相对较大的磁盘分区上,扫描级数高的时候,占用磁盘空间是相当可观的。jc15.JPG(28.86 K)第一次结果出来了,接下来需要做的是清理错误的数据,最终得到我们想要的。jc16.JPG(9
6、4.82 K)在教程软件上按“Change pointer”改变一下指针,重复第一步操作,得到一个新的动态地址。在实际的游戏中实现这一步的动作就是重新登录一下游戏,甚至是关闭游戏客户端重新开启或者只是简单地改变一下场景等等,要根据游戏的实际情况来确定。jc17.JPG(56.49 K)我们把再次查找到的地址,输入进去重新扫描,注意:最好新建一个文件存放扫描结果,避免有的时候 因操作失误破坏已有的数据文件,这样出错了还可以返回重新来过。jc18.JPG(19.45 K)结果出来了,就1个指针,双击一下,添加到地址中。扫描任务完成了。是不是很简单啊,一点都不用分析汇编。前面说了 教程的指针是简单的
7、,扫描一下 就出来了,实际游戏中扫描操作可能要进行多次才能得到比较准确的指针,指针也可能不止1个,有很多,比如说,现在大型游戏中的模块很多,不同的模块名加不同的偏移,都是不同的指针,但大家只要看,各级指针的偏移量是不是相同的,如果全部相同,那就说明其实是同一个指针,只是说基址的地址相对于各个模块的位置不同而已。jc19.JPG(20.37 K)也有的时候,扫描几次以后,一个指针也没找到,那就悲剧了,可能一:需要扫描更高级别的指针。解决办法:花时间继续扫描吧。可能二:链表式结构的指针(可能是这个意思吧,我也不太明白),不适合扫描。解决办法,请汇编功力比你我高的人,帮你分析代码吧。或者你努力学习,自己成为高手、大侠以后,再来帮我解决这个问题。 =顺便说一下,找到指针以后,在TC中 怎么用:方法是调用大漠插件,如读取存数值的函数:value = dm.ReadInt(hwnd, +2b2aec+5c+16+0+20, 0)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1