OllyDBG使用教程

Home / Article MrLee 2015-11-18 4382

OLLYDBG

是一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手,己代替SoftICE成为当今最为流行的调试解密工具了。同时还支持插件扩展功能,是目前最强大的调试工具。
在前一篇中说到了CE的使用,要掌握核心数据和算法还必须结合OllyDBG一起调试,用OllyDBG可以查看所有的数据和函数断点。进入正题,打开传奇SF,然后打开OD,我这里是我自己修改过的OD版本,有一些常用的插件,下载地址:  Ollydbg.7z  .
点击文件附加到进程中,再按F9(运行程序)如下图

QQ截图20151117153128


然后按CTRL+G或者右键菜单-转到,输入我们在前一篇找到的基址624688,然后就跳到上图的地址了。

QQ截图20151117153204


然后右键点击数据窗口第一行,

QQ图片20151117153605

,数据中窗口跟随,如下图:

QQ截图20151117153638


就进入到了06F8A0C0内存地址了,我们双击第一栏的06F8A0C0会自动变成地址+偏移的显示模式(再次双击还原原来的显示模式)。如图:

QQ截图20151117153900


注意看:偏移24和28处,值分别是C2和13F,这是16进制的,换成10进制就是194和319,再看游戏里面的人物坐标

QQ截图20151117153918

,咦!就是人物的坐标嘛!现在我们来看看偏移量8处的地址,右键点数据中窗口跟随进入这个地址查看里面有啥,不过发现这块地址进入之后都是0,也就是暂时还未放东西。我们按‘-’键返回上层或者右键

QQ截图20151118205012


选择转到,然后上一个。然后我们来找下等级吧,看看游戏里面的人物36级,这是10进制的,换作16进制的话就是24,我们来找下偏移量多少是24呢?往下滑到28C处看到一个$+28C    >00000024这个值是24.验证一下,换个角色试试就行了。这个游戏里面的切换OD需要返回到基址那里,上面找到的那个。因为基址指向的内存地址会随着游戏的角色死亡,小退变换。
以上我实测结果28C并不是真正的等级地址,$+27C    >00050024才是。因为这个的字节高位是游戏的等级,我通过重新建一个角色,从1~10级测试而来。这个等级的值肯定有人置疑了,这明明是00050024啊,并不是00000024啊。其实不然,基本上我们玩的游戏,只要是有等级的话,肯定是定义的是1个字节或者2个字节,比如原来早前的游戏定义一个字节足矣了,一个字节255级呢。有多少游戏有255级呢?做个传奇SF的人应该知道,传奇最新版本中,最高等级是65535,这其实就是2个字节的最大值。等级就取2个字节,2个字节刚才是0024,前面的0005是其它的值里面的。

QQ截图20151118212526


至于游戏内存外挂开发还需要学习很多,我这里就不继续往下写了。主要是多实践,找规律。像传奇挂机的挂,其实就是找到人物攻击目标中的内存变量,然后再找到附近的怪的ID,把这个ID直接赋值给人物攻击变量,人物就会自动去攻击了。

本文链接:https://www.it72.com/6975.htm

推荐阅读
最新回复 (0)
返回