回答

收藏

以微薄经验献上:各类游戏辅助揭秘及浅见

玩家杂谈 玩家杂谈 11 人阅读 | 0 人回复 | 2025-05-29

坦白讲,我犹豫了很久。因为在这个游戏工作室的领域里,我不过是一个历经两年挑战的新手。面对各种游戏防封、防检测和资金提现的途径,我如同身处云雾之中,自以为能够掌控一切。然而,就如同大海中的一朵浪花,虽然短暂地掀起了波澜,最终还是归于平静。人性的贪婪与愤怒或许正是在这波折多变的变迁中滋生蔓延,因此,尽管我仅有高中学历,我还是坚定地选择了成为作者的后盾。



历经两年伏伏不起,为了NBE游戏论坛那令人厌恶的邀请码,我投稿了一篇心得,凭借我有限的见识,愿与大家分享其中的曲折。

对于游戏辅助,个人见解大致分为3个类别:

(一):在图色领域,我们常用的工具包括按键精灵、TC和大漠插件。接下来,我将逐一为大家详细介绍。

按键精灵,这个名字可以说是家喻户晓了。曾经,一位80年代的游戏爱好者向我提起,他接触的第一个游戏辅助工具就是自己用按键精灵制作的。这个工具的功能很简单,就是在魔兽世界游戏中不停地进行点击操作。作为图色工具的先驱,虽然它的功能并非最为强大,但无疑是一款操作简便、界面简洁的工具。无论是脚本录制功能(可以录制鼠标操作,之后重复执行),还是中文界面、帮助文档,以及0基础快速开发、封装函数的便捷调用,都给人留下了深刻的印象。然而,事物总有正反两面,作为图色工具的开发者,游戏公司对其中各种函数调用并不陌生,而鼠标键盘的模拟仅仅是利用Windows消息方式,对于大部分直接读取IO端口的游戏来说,发送的消息根本不会被处理。此外,截图功能也仅仅是Windows画图中常用的屏幕截取,面对当前游戏公司采取的各种防护措施,显得力不从心。

这款开发工具,我个人认为它最大的特点可能就是支持中文编写代码了;其界面设计上完全参照了微软的VS,而函数的封装方式则与按键精灵相似。不过,试用了几日后,我便放弃了它,至于其更详细的原理,我并不了解。

大漠插件,这个名字相信大家都不陌生,它是一款功能强大的工具。作为Windows的COM组件,它能在多种编程语言中得到应用,并且兼容性极佳。支持COM组件是评估一种编程语言是否成熟的基本标准之一(个人看法)。大漠插件持续更新中(目前已是6.+版本),作者也因此赚得盆满钵满,估计资产至少千万以上。我个人只使用过3.1233这个免费版,与按键精灵相比,大漠插件更像是一只藏于深山的苍狼,其隐蔽的调用方式、网络验证会员功能、代码的加密处理,以及多样的调用方式,都让人感到眼花缭乱。总体来说,它分为两种模式:一种是Windows(GDI)模式,与按键精灵类似,通过发送消息来处理;另一种是dx模式,在此模式下,大漠插件会挂钩游戏的DirectX函数(这是游戏画面绚丽、响应迅速的根本原因),将鼠标键盘操作直接发送到挂钩的DirectX函数中,因此绑定的窗口无法接收玩家自己的按键。

总结:这类辅助工具主要通过捕捉当前显示在屏幕上的图像,与待查找的图片进行比对,以此来确定下一步的操作。随后,它们会发送键盘或鼠标指令至游戏,以模拟玩家的实际操作,从而实现玩家不愿公开的目标。

(二):内存类,代表工具:易语言,C/C++

易语言,若按键精灵令游戏公司皱眉,那么易语言恐怕会让他们陷入极度的困扰。若你询问我这是什么,那我就来揭晓答案,它是一款连360安全卫士都将其封禁的软件——早期的360文件粉碎器据说便是易语言所开发,不论你信与否,我是不信的。这是一款做坏事的人数远超做好事的软件,提及其名,人们便联想到游戏中的Wg,是中国人编写的,一种能够全中文编译和运行的编程语言。

尽管源自C语言,尽管运行速度较慢,尽管未获传统认可,然而,它象征着一种创新,一种成长,一种有助于小学生、初中生和高中生更轻松地接受和学习的编程平台。我不确定多少年后中国能否诞生一款纯粹属于中国的编程语言,但我坚信,当这款语言被载入史册之际,其中必然会有篇章专门记载易语言的贡献。或许,这正是孔子所说的“举而措之天下之民,谓之事业”的最佳诠释。

C语言,堪称传奇,言简意赅。它让我不禁联想到18世纪的一句名言,"在欧洲,曾有六大强国崛起:英国的大不列颠、法国、俄罗斯、奥匈帝国、普鲁士以及罗斯柴尔德家族!"。

内存运作机制涉及读取游戏进程中的各类信息,诸如角色生命值、位置坐标、怪物名称以及好友关系等,以此作为决策依据,确定接下来的操作。这些操作包括移动、使用道具(包括技能在内的特殊道具)以及与游戏中的物体互动(如击杀怪物)。在游戏开发商的原始代码中,这些操作对应一系列待执行的函数。我们的任务就是定位这些函数的具体位置(即函数的地址),从而能够调用它们。调用函数的过程本质上是通过执行名为“CALL”的汇编指令来实现的,因此寻找函数位置的过程也被称为寻找CALL,即找到相应的CALL调用指令。

概括而言,这类内存辅助工具主要通过获取游戏内的数据信息,进而确定此刻应执行何种动作,并调用游戏自带的相应功能函数来重复执行该动作。

(三):脱机类,又名封包类,代表工具:易语言,C/C++

我们参与的网络游戏,必须与游戏公司的服务器建立连接以实现数据交流。服务器中储存了我们的各项信息,包括血量、位置坐标以及金币等。为何要同时保留本地和服务器两份数据呢?这是为了防止玩家擅自修改本地客户端的数据,从而实现作弊行为。当存在两份数据时,游戏系统可以对比并以此为准,对本地数据进行更新。至于为什么要保存坐标,原因在于……

服务器能够掌握每位玩家的具体位置信息,据此判定你的游戏角色所处的具体方位,这样做有助于它向其他玩家展示你的角色所在。遇到这个问题了,我们这里是如何将数据传递至服务器的呢?这就需要借助封包技术。简单来说,就像是游戏将你的生命值或是你的操作等以特定格式进行封装(其中包含游戏公司的地址,以便确定数据发送的目的地,以及你的本地地址,用于接收对方发送的数据),经过这样封装后的数据就被称为封包。

概括来说,这类辅助工具主要通过截取玩家发出的各种数据包,其中不仅包含血量等基础数据,还涉及移动、交易物品、攻击怪物等玩家行为信息(试想,若不与服务器数据进行对比,玩家移动时岂不是能瞬间移动一大段距离)。我们模仿这些封包的发送过程,生成虚假的封包并发送出去,从而实现操控游戏角色的效果。

综合分析这三大类辅助工具的利弊,若从制作难度的高低角度进行区分,则封包类辅助的难度最低,其次是内存类,而图色类辅助的难度则相对较高。

进行封包分析前,必须先截取游戏发送的封包数据,这意味着你必须亲自执行这一步骤,才能了解封包的具体结构。同时,多数封包都经过加密处理,你还需要找到解密的方法。稍有差错,就可能导致分析结果完全错误。游戏对于封包的发送位置设有严格的监控,因为一旦你完全解析了某款游戏的封包,你就能实现一个极为强大的功能——无需打开游戏客户端,就能操控游戏。这听起来令人不寒而栗。当然,游戏公司会在客户端中加入各种验证机制,以防止出现一台电脑仅凭网络优势就能轻松破解数千个账号的情况。

内存类辅助通常已足够应对多数场景,然而,此类辅助需访问游戏数据,调用游戏内函数。鉴于Windows系统进程独立且相互独立,如何在辅助程序中读取其他游戏进程的数据成为一大难题。通常有两条途径:一是将辅助程序制作成DLL文件,注入目标进程,使其如同游戏的一条延伸手臂,轻松获取核心信息;二是采用挂载方式,将辅助进程附着于游戏之上,如同成为游戏的直系亲属,虽需一番周折,但终究能够窥见核心内容。

我打算开发图色类辅助工具,其出发点在于,鉴于现有的两种封号机制要么过于严苛,要么制作难度极高,因此我选择了一条不同的路径。我不会成为你的儿子,也不会成为你的臂膀,更不会触碰你的任何物品。你的游戏若要让玩家操作,画面信息理应显示在屏幕上。于是,我通过截取屏幕显示来获取你的游戏画面。同时,若要让玩家体验游戏,就必须获取他们的按键和鼠标操作。至于玩家操作的具体位置,我会在那里虚拟出一些假操作,等你来取。根据封号严重程度的划分,封包的难度大于内存,而图色类的难度又高于封包。

游戏中的数据包数量极为庞大,每秒可达数十到数百甚至上千个。当我幸运地找到了所需的功能数据包并成功解析时,心中不禁暗自欢喜。哎呀,我一台电脑就能轻松管理几千个账号啊,从此财富滚滚而来,似乎要迎娶白富美,攀登人生巅峰。然而,未曾想,游戏公司的人并非等闲之辈。在几百个数据包中,有1、2、3、4甚至更多个数据包必须与此次数据包一同发送。若未能发送,那可真是让人痛哭流涕。原本以为能大展宏图,却闹得家庭破碎,我这样一个平凡无奇的人,从此与女神无缘。

在内存方面,我们之前讨论了两种策略,然而,这款游戏似乎已经拥有了双臂,却意外地又多出了一臂,这实在是不合常理啊......

图色类问题,对策在下,方针在上,难道你要绕过我直接去寻找Windows系统?我打算先探寻一番,将关键之处都植入我的钩子,确保你的程序必须经过我的审查,届时我会检查其安全性,看是否有任何不轨行为,根据运行稳定性来划分,优先级为封包、内存、图色。

封包类之所以被称为脱机类,原因在于其稳定性极高,即便游戏过程中出现崩溃,也不会引发错误。此外,游戏公司对封包的发送方式、内容的调整非常罕见。一旦你成功找到一种封包,便能够长时间稳定运行。它具有速度快、体积小、出错率低的特点,让你在享受游戏的同时,还能自由地处理其他事务。

游戏一旦获取到数据,由于它是一个庞大的程序,通常不会轻易进行重新编译(不进行编译意味着不会改变基址)。即便需要进行一些细微的调整或添加新功能,也只是在各个DLL模块中进行修改,便于日后快速定位到游戏的小改动位置。届时,只需在源代码中对数据进行修改即可。此外,读取游戏数据和调用游戏函数的准确性非常高。例如,当你需要在血量低于100时进行加血,或者需要移动到220,112的坐标时,出错的可能性极低。只要辅助编写者的逻辑正确无误,内存类辅助几乎可以实现零人工干预。通过一个总控制台,可以管理多个机器的子辅助,而子辅助则负责管理每个进程的游戏。

图色类辅助工具的评价分歧较大,原因在于制作这类辅助工具的作者所需具备的知识和经验,其重要性并不亚于对内存和封包的理解(切勿误以为仅凭几个月学习按键精灵或大漠工具就能胜任)。首先,作者必须具备出色的流程控制技巧,并精通众多算法。图色算法的掌握程度并不逊色于对内存的运用,若想实现高精度,关键在于算法本身的强大。那么,何为算法呢?它指的是计算的方法。在游戏中,屏幕显示的是一张图片,而你需要寻找的也是一张图片。问题在于,如何在众多信息中迅速定位所需查找的点?当遇到相同信息、遮挡物或动态图片时,又该如何应对?这些问题,从专业角度来说,被称为机器视觉。那么,什么是机器视觉呢?若擎天柱能准确区分大黄蜂与威震天,那便算得上是机器视觉的体现。诚然,作为辅助工具,无需如此高超的技术,但至少得对游戏有基本的了解。比如,得学习游戏如何渲染画面,模型如何呈现,这些知识有何用?用于优化黑屏效果,处理游戏模型的变换。当然,这些技能也是不可或缺的。

恩,总体来看,文章的核心内容大致如前所述,我寄希望于这篇投稿能够获得NBE论坛的邀请资格。我自认才疏学浅,所写内容可能只是个人的一些浅见,不确定其准确性或影响力。文字表达或许不够精炼,内容也略显单薄,缺乏创新。我只能反复查阅资料,力求无误,仅希望能起到抛砖引玉的效果,期待阅读到各位高手和资深人士的佳作。此外,我还想分享一首喜欢的词章,一并附上。

微命仅三尺,身为书生。无门可求报国,空等终军之弱冠;心怀壮志,向往宗悫之豪迈。弃官归隐,于百岁中舍去冠带;侍奉双亲,千里之外尽忠职守。非谢家之才子,却与孟氏之佳邻为伍。他日步入家门,得以与贤者论道;今日手捧衣襟,欣喜跃入龙门。若遇杨意,抚凌云而自叹;若逢钟期,奏流水亦无憾。唉!胜地难常存,盛宴难再逢;兰亭已逝,梓泽成墟。离别之际,我有幸在盛大的宴会中受到恩宠;登高吟咏,我期待着各位文豪的佳作。我敢于倾尽我微薄的心意,恭敬地写下这篇简短的序言;每一句都成诗,四句诗都已完整。请各位挥洒才情,如同潘岳的潘江水,陆机的陆海云涌吧!
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则