加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

CE+OD找天龙背包数组新法【已重新编辑为图文教程】转载

(2012-09-29 18:02:46)
标签:

ceod找天龙背包数组

游戏

分类: 外挂理论实战
CEOD找天龙八部背包数组新法  
 
今天闲着没事,做一个用CEOD找天龙背包数组的小教程,如果有说错的地方,请大家在论坛上指出来。  
好了,直接进入游戏,我们先打开背包看一下里面有什么东西
 
 
现在我们先来找第一个栏里的物品数,背包显示第一栏的物品数量是13,我们打开CE 挂接游戏进程,我们先来搜索13 数据类型我们先用4字节的。
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_46a67bde0f9f336.jpg?31  
 
 
搜索结果显示出来好多个  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_d881814c09fd5cb.jpg?36   
 
 
 
现在我们把背包物品的数量改变一下,我们先改成11个。 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_20fce4a767c6cb2.jpg?22   
 
我们再直接搜11 其实也可以搜索减少的数值,但是我觉得麻烦一点而已
  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_c26aeaf0cbe3d90.jpg?31    
 
搜索完了,出来了三个地址,我们再改变一下数值,看看有没有结果。
  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_a8b29a892f113be.jpg?23    
 
现在再搜索13 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_4bc65bb95d40c90.jpg?27   
 
大家可以看到,这样是找不到,我们换一种类型再来试试看  
 
 
 
我们先直接用1字节的数据类型来试试  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_7491266bee4786c.jpg?30   
 
搜索结果出来了,可以看到搜索出来了好多个。
  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_b162848755593b2.jpg?39    
 
 
 
现在我们再把物品的数量改成11,再搜索一下。 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_85263121238866b.jpg?37   
 
现在可以找到一个地址,说明程序定义物品数量这个变量的数据类型是字节型的,我们可以看出来,记录这个数据值的内存地址是
 06F2985C  
好了,现在我们换OD上场,先打开OD载入游戏,并让游戏运行后,在命令栏内输入 dd 06F2985C并回车
  
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_95e836e5b4fa5e3.jpg?14   
 
 
在这里可以说明一下,其实我个人觉得  db 06F2985C 这个命令也是可以的,只不过用db 命令需要选择前四个数值再下断点而已 用法跟dd命令差不多 ,我还是先用DD命令。  
 
我们接着说,下完dd命令后,下硬件访问断点 其实这个游戏下内存访问断点也是可以的,关于用什么方法下断要根据具体游戏而言,有时候不同的游戏要下不同类型的断点。  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_871e56f54d4fac3.jpg?49   
 
 
 
 
 
下断后,我们切换进入游戏,选择物品或是改变物品数量,这时游戏断了下来  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_8f81d3ff422ac8d.jpg?35  
 
 
 
 
根据汇编代码可以看得到 mov al [ecx+3c] ecx=06f29820  
 
好了,我们先清除硬件访问断点,清除后让游戏运行起来,防止游戏长时间断下来挂掉。
  
 
现在我们转到CE去找一下这个地址
 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_44d5f677cb9f018.jpg?39   
 
 
 
 
 
找到了一个地址,地址是09db9804  
我们换OD上,在OD的命令栏里打上 dd 09db9804 并回车下硬件访问断点
  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_8c1f1f88de87b7a.jpg?46   
 
下断后,我们切换游戏,选择物品,这时游戏断下来,如果断不下来可以改变一下物品数量,以后切换游戏不再重复以上内容。  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_7ed464d49c35ab6.jpg?25    
 
 
 
游戏断下来了,可以看得出来  mov ecx [esi+14]  esi=09db97f0  
好了,我们切换CE来再来找这一个地址
 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_70ae6298c0b5447.jpg?42   
 
 
 
好了,可以看到出现了二个地址,我们来找第一个,如果第一个找不出来的话,再找第二个地址,以此类推  
我们换OD 断这个地址
 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_72f463c21e511e5.jpg?55   
 
 
 
下断后,切换游戏,OD断下  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_f1f7a4d1641dfc2.jpg?38   
 
 
 
大家可以看一下这段汇编代码  
 
lea  edi  ptr [ecx*4]  
mov ecx dword ptr [edi+eax]  
我们来整理一下
  
edi=[ecx*4]  
所以说,这里出现了数组了,[[ecx*4]+eax] 所以说,在这里大家要注意一下看代码  并且 eax=028caab0  但是我们还要找出ecx的值,在这里,大家不要看断下来寄存器ecx的值,因为这里的ecx的值是不对的,我们要重新下断,直接在上一句 lea edi [ecx*4] 这里下F2断点
  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_babe66d25be2d18.jpg?32    
 
 
 
取消硬件断下后,让游戏运行,然后再切换游戏,选择物品,OD断下游戏  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_fbd152402e9d53f.jpg?37   
 
 
 
这时大家可以在寄存器窗口看到 ecx=0 说明是物品的位置,也就是第一栏的位置  
好了,我们接着讲  
 
刚才我们讲到数组了,我们找出eax=028caab0 ecx=0 我换用ce来找eax的地址  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_5288b91b7449ba7.jpg?44   
 
 
 
好了,找到了一个地址,我们换OD 下断  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_1743e68d92f779d.jpg?61   
 
 
 
下断后,切换游戏,选择物品或是改变物品数量,游戏断下  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_931ee8714d2f098.jpg?49    
 
 
 
可以看得出  mov eax [esi+380] esi=02902cc8 再换ce来找地址,大家不要烦啊  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_d912bdb4cac3af0.jpg?48   
 
 
 
一样找出来三个地址,其中前二个都是绿色的,有可能前二个都是基址,我们先把二个都点下来,一个一个来试 我们先试第一个 转入OD下断  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_c65d822219da06f.jpg?65   
 
 
 
切换游戏,游戏断下  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_0b55f57fe704baf.jpg?24   
 
 
 
在可以看到到基址出来了 mov ecx [6669b8]  
 
好了,第一个基址出来了,我们进行一下验证
  
打开CE我们来进行一下验证 我们把基址和偏移都输入进去后  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_9e5c9f463007e91.jpg?19   
 
 
 
 
 
出现了这样的数值,明显和我们要找的数值不同,然到这错了吗?  
 
刚才出来的结果和我们的要的结果不相同,因为开始用CE找地址的时候用的是字节类型,现在我们把类型改成字节类型。  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_cefaaeed987f399.jpg?20   
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_59cef3afa87cbba.jpg?58   
 
 
 
 
 
现在第一个基址出来了,我们再来找第二个绿色的地址,看他是不是也是基址,有可能一个游戏的背包数组基址不止1个基址,我们多试一下。  
 
我们来下第二个地址的断点  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_6db83641f4664d0.jpg?66   
 
 
 
 
 
下断后,切换游戏,选物品后,游戏断了下来  
 
现在我们来看一下  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_c4200335a9a9f9e.jpg?23   
 
 
同样也出来了一个基址 mov eax [666d20]  
 
我们来测试一下看看是不是正确的
 
 
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_bf8840a1fe0768e.jpg?59   
 
 
 
好了,大家可以看得到,二个地址都是正确的,我们现在再打开背包看一下  
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_e74a6657650653c.jpg?39   
 
 
 
好了,是正确的,这个教程就写到这里吧,希望以后可以跟大家共同的交流  
 
 
 
 
 
 
 
 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有