叶子的家

~●    ~●  ~●          ~●   ~●~●                           ○
    离成功还很远,距离长着叻,Fighting!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

我的第一个全后台CALL外挂-功夫世界外挂

Posted on 2007-09-21 16:01  绿叶  阅读(12434)  评论(135编辑  收藏  举报

* 外挂进入测试阶段,在此查看外挂下载信息:
http://www.cnblogs.com/wj/archive/2007/10/10/GongFuCheaterRelease.html


花了三个星期的空余时间写下此挂,目的是为了锻炼一下汇编方面的知识,怎么跟踪,反跟踪,调试等。整个挂用C#编写,全部实现的游戏功能都是通过直接Call游戏函数实现,所以可以说是完全后台的。其实我写代码的时间并不算很多,我把大部分时间放在代码的重构上面,就自己看起来的代码感觉挺满意,就此贴图以表纪念。


(原图:http://www.cnblogs.com/images/cnblogs_com/wj/106886/o_GFWord.JPG)
在外挂的主界面中,双击NPC名称即自动行走到相应的NPC位置(位置是你当前按刷新时NPC的位置),双击背包可以直接使用物品。挂机功能经我调试后已经非常之完善。还有就是自动捡东西的功能,已经完全可以代替游戏中用元宝买的“捡垃圾猪”。在设计定点打怪挂机机器人逻辑时候,很难避免多线程的问题,比如补血线程和寻怪线程之间的通讯,补血线程发现要打坐回复,就通知打怪线程停止打怪,然后打坐,血满了再通知继续打怪。后来经过一番改造,已经很完满的解决这个技术问题,我再对游戏中的各个模块进行了封装,如果要开发另外一个游戏的外挂,可重用性是非常之高的。如果做过外挂的人都知道,需要内存数据的基址,然而这些数据在游戏升级时会变动,所以以后对付游戏升级可以用特征码的方法寻找基址。在我的程序中,所有内存地址数据,包括他们之间的依赖关系都是可配置的,程序会根据配置的数据,自动计算表达式的值,并可以指定数据是否缓存等。所以在对付游戏升级造成的内存地址数据变化有一定的弹性,现在我在处理中的问题是如何更有效的对付Call地址的变化,现在这部分我是hard code程序里面的,将来我想把他都全部变成可配置话,这样灵活度就非常之高了。以后会发更多的自动化机器人,比如自动采集


一个游戏的好坏,除开这个游戏本身的内涵之外,另外一个最大问题就是代理商。对于《大航海时代Online》的倒闭,我感到非常遗憾。