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

标签:
ceod找天龙背包数组游戏 |
分类: 外挂理论实战 |
CE加OD找天龙八部背包数组新法
今天闲着没事,做一个用CE挂OD找天龙背包数组的小教程,如果有说错的地方,请大家在论坛上指出来。
好了,直接进入游戏,我们先打开背包看一下里面有什么东西
现在我们先来找第一个栏里的物品数,背包显示第一栏的物品数量是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
好了,是正确的,这个教程就写到这里吧,希望以后可以跟大家共同的交流
搜索结果显示出来好多个
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
现在可以找到一个地址,说明程序定义物品数量这个变量的数据类型是字节型的,我们可以看出来,记录这个数据值的内存地址是
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_95e836e5b4fa5e3.jpg?14
在这里可以说明一下,其实我个人觉得
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_871e56f54d4fac3.jpg?49
下断后,我们切换进入游戏,选择物品或是改变物品数量,这时游戏断了下来
根据汇编代码可以看得到
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_44d5f677cb9f018.jpg?39
找到了一个地址,地址是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
游戏断下来了,可以看得出来
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_70ae6298c0b5447.jpg?42
好了,可以看到出现了二个地址,我们来找第一个,如果第一个找不出来的话,再找第二个地址,以此类推
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
mov ecx dword ptr [edi+eax]
edi=[ecx*4]
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
这时大家可以在寄存器窗口看到
刚才我们讲到数组了,我们找出eax=028caab0 ecx=0
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
可以看得出
http://www.ghoffice.com/bbs/attachment/Fid_100/100_7886_d912bdb4cac3af0.jpg?48
一样找出来三个地址,其中前二个都是绿色的,有可能前二个都是基址,我们先把二个都点下来,一个一个来试
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
在可以看到到基址出来了
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
同样也出来了一个基址
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
好了,是正确的,这个教程就写到这里吧,希望以后可以跟大家共同的交流