共轭箱(cobins):一个开源的游戏辅助工具开发平台

什么是共轭箱(cobins)?

共轭箱(cobins),是一个开源的游戏辅助工具和反向工程开发平台,适用于网络游戏(也可应用于单机游戏)辅助工具的开发。平台提供了开发游戏辅助工具的一套免费、完整的开发包(SDK)供您使用。该开发包在试图构建一个优秀的开发模型的基础上,提供了丰富友好的API (应用编程接口)和实用的工具。基于这个平台,你能够更容易更快捷的开发你自己的游戏辅助工具。

共轭箱的代码经过之前多个版本的迭代,架构和设计逐渐走向成熟,目前已经在github上开发其全部源码:

https://github.com/stefangao/Cobins_Windows

下图是共轭箱的组件架构:

什么是游戏辅助工具

现在的网络游戏多是基于互联网的客户∕服务器模式,服务器程序运行在游戏服务器上,游戏的设计者在其中创造一个庞大的游戏空间,各地的玩家可以通过运行在自己电脑上的客户端程序同时登录到游戏中,他们共同进入到这个虚拟游戏空间中,会相逢,会聊天,会结交,会结仇,当他们置身其中,仿佛感到这里就是一个大的社会,大的江湖。

游戏辅助工具的产生实际上是伴随广大玩家的需求产生的。现在的网络游戏充斥着太多的单调重复的游戏情节,例如打怪升级,你有没有计算过打死一个怪至少需要几次鼠标点击?移动位置,选怪,施放技能,加血补气,捡包裹等等都需要你的手工操作。如果是100个怪,1000个怪,10000个怪,你需要做多少次这样的索然无味的重复操作。很多玩家希望把更多的时间投入到游戏本身的情节中,希望游戏给自己带来的更多的快乐更好的体验,而不是把青春都浪费在鼠标键盘上。在这个背景下,游戏辅助工具就应运而生了。

游戏辅助工具按实现原理划分,可分为几类:

  • 模拟鼠标键盘
    这是最早期的游戏辅助工具。一般只需要设置时间间隔,时间一到它就会按照既定的程序点击鼠标或按键。这种工具因为不采集游戏的任何数据,所以可以称之为“瞎子”工具。
  • 采集屏幕颜色
    这种外挂在第一种基础上提高了一步。它可以通过Win32的GUI接口,获取屏幕上的某个点的颜色,从而在一定程度上获得游戏人物的当前状态。例如:可以通过采集血条位置的屏幕颜色,获得人物的当前血量,辅助工具根据当前的血量生成补血的策略。这种辅助工具也有它的缺点,
    (1)没在游戏界面上显示的状态无法获取。
    (2)即便在界面上显示的数据,有时因为屏幕的颜色十分复杂且无规律,也很难获得该状态数据。
    (3)需要游戏窗口前台运行,且不能被其他程序的窗口覆盖。
  • 截获和修改游戏封包
    网络游戏的服务器和客户端是按照一定通信协议、交换封包来达到传递信息的目的。如果能截获游戏封包,分析出封包的结构和含义,就能按照某种需求做相应修改。因为服务器和客户端之间通信的任何数据都是通过封包传递的,理论上,如果能理解每个封包的含义,是可以通过这种方法写出任何辅助工具的,甚至可以自己开发出一个游戏客户端。
  • 读写游戏内存
    通过一些工具,如:Cheat Engine,获得某些游戏数据的地址,通过对地址的读取,就可以获得相应的游戏数据的值。
    这种方法的难点在于获得存储某一数据的基址,基址一般就是程序的全局变量或静态变量的地址。在很多情况下,这些数据要从基址经过很多次偏移才能获得。另外即便是基址,当游戏客户端版本升级时,也可能会发生变化。
  • 其它方法
    除了以上几种方法外,通过对Win32 API加钩,捕获游戏GUI或引擎函数等,也可获得游戏状态和数据。只要不断钻研还有很多方法等待你的发现。
     

共轭箱能帮你做什么?

游戏辅助工具需要控制另外一个进程(游戏程序)的运行,这种特殊性使得开发游戏辅助工具与开发一般的程序不同。同时在游戏辅助工具的开发中常用到的一些技术,如截获网络封包,动态库注入,Hook API, 游戏进程与辅助工具进程的通信和同步,以及游戏辅助工具的状态控制等,对一般的游戏玩家甚至某些开发者都是十分陌生和困难的。共轭箱正是为了解决这一问题,通过它,希望更多的游戏玩家加入到开发游戏辅助工具的队伍里来。

共轭箱开发平台构建了一个优秀的开发模型,使得它具有模块化、可复用、可装配和可扩展等特点。它把很多辅助工具常用的一些技术封装后集成到开发平台中,使得开发者不需要再关心这些技术的实现细节,甚至有些技术在共轭箱平台中对开发者是完全透明的,他们只需要把精力放在对游戏本身的分析和辅助工具逻辑的构建中。而不需要花太多时间和精力在辅助工具的技术实现上。

对共轭箱开发人员的要求

共轭箱的代码由C/C++编写,平台所提供的API也是C或C++的接口。所有示例程序使用的开发工具都是Visual Studio 2017,其工程文件只能在Visual Studio中打开,如果VS版本不同,使用前可能需要做相应的转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

峻峰飞阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值