第61章:外挂原理

    第61章:外挂原理 (第2/3页)

    “那第二种呢?”孙轶民问。

    “另一种就比较高端了,技术含量也比较高。它可以解读游戏客户端接收到的数据,或者从客户端程序虚存中读取各种游戏数据,然后从这些数据中解译出各种游戏信息,比如角色当前的生命值,技能冷却状态,自己的增益或受控状态等等。然后根据这些信息,让程序操纵游戏角色随机应变,作出合适的动作或操作。举个简单的例子来说:辅助程序会判断自身角色的剩余生命值是否低于某个阈值,如果是,那么自动服用生命恢复药剂。”

    “那么辅助程序如何操纵角色动作?”孙问。

    “有些辅助程序可以伪造数据报发送给服务器,从而可以取代游戏的客户端直接操作角色行动。但是这种制作难度高,而且很容易被发现,一旦被发现角色就容易被封号。所以现在大多数的外挂都是通过向游戏客户端发送模拟的按键信息的方式来驱动角色的动作,也就是说,客户端必须存在。这种操作方式从本质上不属于非法操作,因此比较难被监测到。”

    “那你们是如何防范这些辅助程序作弊的呢?”孙轶民用右手柱起脑袋,望着老赵,好奇的问。

    对此,老赵耐心的解释了一番:“对于第二种,最关键的措施就是对于传输的数据进行加密了,加密方式越高级越安全。就现在而言,基本上没人能够破解这种传输方式的,所以,这种外挂的制作难度非常高。对于第一种的话,只能从客户端着手,让客户端程序检测收到的按键信息是否虚构,但这个其实很难预防,因为聪明的程序员完全可以把窗口消息模拟的真假难辨。不过我们还有另外一种方法,那就是扫描客户端所在电脑的进程列表,找出市面上常见的那种按键外挂的进程名称,上报给服务器就行了。”

    “加密?难道以前的游戏都是明码传输数据的?”孙问。

    “嗯。以前的网游数据传送方式基本不加密,或者加密方式非常简单,很容易被人破解,所以导致辅助程序泛滥。但现在情况不一样了。它在数据传输方面采用了更复杂更强壮的加密方式,因此你想通过解读数据报来获取游戏数值是难上加难,更别说想通过程序向服务器发送模拟的游戏数据了。”

    “正如你刚才提到的,除了解读客户端接收到的数据包,还可以通过锁定关键游戏数据的虚存地址来获取游戏数据啊?”孙轶民脱口而出。

    “虚存中存储的游戏数据也是经过加密转换的,不知道加密方式和密码,你根本就没办法去分析,还谈什么锁定内存地址?”老赵笑道。

    孙轶民愕然。思索良久,又想到了一点,问道:“其实除了解读数据报和分析虚存地址,还有一种方法也可以获取数据,那就是通过子窗口句柄。比如说,我想让程序获取我的角色身上携带的金币数量,那么我可以先锁定包裹界面的子窗口句柄,然后通过句柄号调用API函数,就可以获取此子窗口上的任何数据。不是么?”

    “呵呵,你能想到的,我们反外挂部门都想到

    (本章未完,请点击下一页继续阅读)