WOW外挂编写教程---进阶版

WOW外挂编写教程---进阶版前一贴入门篇主要写的是感性知识,哪怕没接触过程序设计的人,只要用金山游侠,CE(cheat engine)之类的软件就可以将贴内提到的内容实践一下。但是仅仅了解这些远远不够。正如有人回贴说用按键精灵就可以轻松的实现仿键盘输入功能。而接下来遇到的最大问题就是该输入什么,在什么时候输入,如何知道游戏内人物的状态以及周围的情况。上贴教了一个查找游戏内容的方法,通过不停的改变游戏内容来查找改变的数据,最终确定某个内存地址具体对应游戏内的状态值。但是这个方法只适用于静态地址,可以查到人的位置,面对方向等等。但是在2.3版里很多数据是动态存储的,比如HP,通过内存查找软件可以很轻松的找到HP地址(方法在入门篇里已经有介绍),但是你会发现,重新启动一下游戏,或者是重要登录一下账号选择一下人物,这个地址就失效了。每次上游戏,可能都要重新查找,这样一来编写商业外挂就变得很困难。你不可能让客户每次都手动查找地址然后输入。然后用过助手的都知道,运行助手软件后不需要任何动作,程序就会根据游戏的内容自动发送命令,而且非常精确,包括血少时吃红,魔少时吃蓝。那又是怎么做到的呢?呵呵,这里我就这部分内容作一个简单介绍。以下内容可能并不针对所有人,看懂以下内容的提前是你需要有一定的汇编和内存指令数据存储知识,当然,涉及的内容很浅显,如果你愿意花一点时间google,那么最多一天时间,你就能读懂并且顺利的应用这些方法。同时,你需要一些工具,这里我列出来,在网上都能够找到.1.ollydbg,这个东西是搞破解必备家伙,替代工具可以是softice,当然,如果你会用softice,那么这篇东西也不用看了.2.tsearch/cheat engine/金山游侠,这些是内存查找利器,推荐cheat engine,非常好用。如果对内存不熟的话,可以用金山游侠,界面很友好。友情提示一下,cheat engine 会被WOW客户端主动侦测到,并且提示这个软件可能会危害计算机安全,会问你是不是要终止WOW程序,这时候不用管,选“无论如何都运行WOW”。为了安全起见,在使用这个软件的时候,最好找一台独立的机器,独立的IP,使用测试账号登录WOW,避免连累无辜  UID42914 帖子813 精华0 积分0 金钱914 G 注册时间2007-4-1 最后登录2008-3-6 查看详细资料 引用 使用道具 报告 回复 TOP  ht37 骑士中尉 精华0 金钱914 G 注册时间2007-4-1 个人空间 发短消息 加为好友 当前离线  沙发 大 中 小 发表于 2007-12-11 22:01  只看该作者 先复习一下内存数据的查找方法,我们需要查找的内存数据分为两类,一类是显性数据,比如HP,MP,这些值我们都可以看到,如果他们发生变化,我们可以知道具体的值,因此查找这部分数据是很容易。比如第一级HP是80,我们在运行内存查找软件,在WOW的程序里找80这个值,然后去打怪,让血减少,因为血减得很快,可能我们输入某个确定的值查找的时候,血又减少了,因此我们要用到的功能是查找“变更值”,也就是说,查找和上次结果不同的值。这样几次下来,可以确定某个地址,这时你仔细观察一下,这个地址就是对应血量的。显性数据查找起来是很快的,一般只需要几分钟。另一类是隐性数据,比如人物的位置,是处于战斗状态等等,这些数据我们都看不到,也不知道具体对应的值是什么,这时候就需要用模糊查询,这里就cheat engine举个例子:第一次查找时选"unknow value",可以会找到几亿个地址,然后在游戏内改变你想查找的状态,比如原来是非战斗状态,现在进入战斗状态再找一次,找的数据类型为“changed value",然后再恢复为非战斗状态,再查一次“changed value",然后在不改变战斗状态的情况下,查一次“unchanged value",如此反复多次。因为是模糊查询,最终可能会有多个地址跟着你的战斗状态一起变,这个时候就需要你一个个自己判断了,是否某个地址只出现两种值即对应两种状态。现在我们假设你已经能够把需要的动态数据都找出来。然后接下来遇到就是写外挂时最大的问题,如何准确读取每次运行都会改变地址的数据。  UID42914 帖子813 精华0 积分0 金钱914 G 注册时间2007-4-1 最后登录2008-3-6 查看详细资料 引用 使用道具 报告 回复 TOP  ht37 骑士中尉 精华0 金钱914 G 注册时间2007-4-1 个人空间 发短消息 加为好友 当前离线  板凳 大 中 小 发表于 2007-12-11 22:29  只看该作者 现在就轮到ollydbg出场了,先运行wow,登录选完人物进入游戏,因为WOW在登录时会进行文件校验,如果这时已经在ollydbg下过断点的话会发生校验出错提示版本问题登录不了游戏的情况运行ollydbg->打开file菜单->点击attach项->在弹出的菜单内选中world of warcraft ,双击或者点右下方的attach按钮选完之后ollydbg就会载入wow程序,可能会比较多,在截入完之后会自动暂停wow程序,这时候你要迅速点击工具条里的运行钮或者按F9,这时再回到WOW程序看看有没有死机,如果没死的话进入下面的程序,如果死掉的话就重新来一次,加快你按F9的速度选择view菜单->选择memory项(也可以直接用alt+m)->弹出程序的内存清单,假设我们在上面找到了HP的存储地址为110FE3C(这是一个十六进制的数字,用来表示内存,如果你不知道十六进制是什么意思,那么请google"十六进制"),现在我们要做的是在清单内找到这个值,注意,这个内存清单显示的是程序占用的内存段,如下表所示,我们找的是HP地址所对应的内存值段,注意,因为WOW暂时在维护,因此无法登录游戏查找具体数值,下面这个表是我为了表述方便而修改过的,实际可能有所不同,但查找方法相同复制内容到
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值