热点推荐

查看48175 回复131 收起左侧

[学习交流] 学写外挂必看感悟一个外行游戏辅助作者的写挂经历

打印 上一主题 下一主题
  [复制链接]
神秘人士
楼主
神秘人士  发表于 2015-7-13 13:45:47 |只看大图 回帖奖励 |倒序浏览 |阅读模式
NBE微信公众?#25945;? border=
关注NBE好长一?#38382;?#38388;了看到前一?#38382;?#38388;有一个游戏辅助作者同行发的连载系列文章一个苦逼游戏辅助开发人员的自述真得是深有?#20889;?#25152;谓外行看热闹内行看?#35834;溃?#30475;看评论有人说他是在吹牛逼有人说他是靠自己想象力天马行?#31456;?#20889;我也只能是微微一笑呵呵因为我也算是个外行


今天我也来分享一下自己的历程吧是微微一笑还是呵呵都无怕所谓了

对于游戏辅助行业而言我属于外行我本身算得上比较老的一代程序员了赶上了2000年互联网泡沫的尾声在学校的时候就?#19981;?#25630;一点黑客?#24179;?#20160;么的但仅仅是出于兴趣爱好毕业之后一直从事软件开发相关的工作做过网络游戏开过互联网公司眨眼间在软件行?#36947;?#38754;混了十几年了兴趣原因经常混迹于当时的看雪学院小榕软件绿盟论坛等膜拜各路大神的时候也在默默的积累技术

最早准备写辅助是当时玩完美的游戏完美世界诛仙之类的网游现在的游戏辅助基本框架也都是在那个时候积累下来的因为搞传统软件研发养成的习惯辅助框架写的质量还算可以并且文档什么的也比较规范算是给现在的工作打下了比较好的基础很多东西都可以重用当时有一个本地的游戏工作室想让我给他们专职做辅助但是考虑到种种因素没?#20889;?#24212;后来辅助的开发进度也一?#26174;?#25302;最后也逐渐不好意思和他们联系了再后来工作越来越忙也就把这个事情放下了

再后来朋友的朋友找到我希望给他开发辅助当时有一搭没一搭的?#27169;?#22240;为自身收入还不错所以也就没有很上心再后来碍于朋友的面子加上对方一催再催只?#20040;?#24212;对方

对方是一个不算大的网络游戏工作室大约有60台E3+32G电脑主机在当时算是不错的配置了游戏工作室?#20064;A是一个?#27973;?#32874;明能干的小伙子

A从辅助代理商人?#25250;?#20080;的游戏辅助但是因为游戏工作室不大所以价格服务等方面都不能让A满意因为很久不碰辅助的东西了并?#19994;P币?#20570;的游戏J3我也没有玩过所以我让A给我了一份他正在用的辅助经过分析之后感觉能做于是开始动工

当时的J3是有宏接口的并?#39029;?#37329;思路主要围绕试炼副本和帮会钓鱼所?#38498;?#24515;功能很容易就完成了?#28909;A跑起来在当时J3已经是被很多游戏工作?#39029;?#20026;夕阳游戏了开服时间太长了但是A认为J3是点卡游戏生命周期本身就会相对较长并且如果出金思路正确可以在做上至少1年现在看当时A的思路是?#27973;?#27491;确的因为现在已经过去了一年半多了他?#19988;?#28982;还在围绕J3做

核心跑起来之后游戏工作室需要大量的人工去看机器并且因为J3自身的优化的问题单机的多开受到?#24605;?#22823;的限制围绕人工问题我又制作了控制台可以同时监控本机各个窗口的角色等级状态红蓝地图/位置背包金钱体精帮贡等一系?#34892;?#24687;这样游戏工作室员工只需要看一眼控制台就可以了解本机的所?#20889;?#21475;的挂机情况

围绕效率问题?#39029;?#24213;修改了挂机方式通过?#26723;?#28210;染帧数的方式把帧数?#26723;?#21040;了30秒一帧基本上算是解决了CPU占用过高的问题基本上前面提到的E3机器可以开48开没有什么压力这次的修改大约陆陆续续用了我半年的时间

?#38142;ˣ?#36741;助的整体框架已经和最初的设计天差地别了最初仅仅是要制作一个简单的插件通过修改游戏客户端的资?#31383;?#21152;载到客户端就可以了但是现在已经变成了一个主控台通过主控台自动批量启动自动登录支持卡位报警能够运行自定义脚本能够定时运行命令能够定时关闭客户端每周1周4停服维护然后针对客户?#22235;?#22815;进行锁屏能够进行游戏内自定义脚本调试录制等等等等

一切看上去那么美好我都深深的为自己的伟大创举而内牛满面

然而2014年暑假期间相信做J3的朋?#35759;?#19981;会忘记J3开?#21363;?#38754;积封停那?#38382;?#38388;基本上起一批封一批起了就封再起再封A和他朋友的游戏工作室损失惨重那?#38382;?#38388;也恰巧碰上我的工作也很忙只能晚上熬夜调试找问题找方案基本上那?#38382;?#38388;每天只能睡三四个小时其余的时间要么做公司的事情要么在调试辅助

整整2个月的时间处于?#35272;?#30340;边缘因为?#29616;?#30561;眠不足上下班路上开车半个月三?#38382;?#25925;其中有两次发生在4天内也就是刚从4S店把车提出来的第二天就又来了一?#38382;?#25925;所幸都是?#23614;?#21644;追尾事故也没?#20449;?#19978;对方是豪车前后两个保险杠都?#36824;?#20102;喷漆也免不了

期间不?#25346;?#27425;想要放弃毕竟自己的工作收入也不错加上这么多年的打拼也算是?#29575;?#26080;忧了真没有必要这么拼命了然而A和他朋友的游戏工作室已经都切换到了我的辅助我有退路他们却没有退路

思量再三只能坚?#24103;?#32456;于通过分析客户端和网络封包找到了J3上报的检测数据找到了规则就很简单了APIHook把异常部分跳过去就OK了对于无法跳过的规则简单?#30452;?#30340;重启客户端重登录即可毕竟无法处理的几?#26102;Ƚ系停?#22909;几天才能碰到一次终于经过几次调整之后总算是稳定了

美美的睡了两三个周之后问题又来了J3又开始进行无节操的封停了检查之后发现客户端的检测规则没有变化那么问题只能是出在服务器端了因为在座APIHook的时候我已经对本机硬件序列号MAC地址局域网IP等信息都做了处理那么服务器?#22235;?#22815;检测的只能是公网IP了应该是通过类似于对网吧IP段做白名单个人的同一个IP如果同时登录的客户端过多的话就会进入封停判定我让A去尝试同IP登录上限同时开始考虑应对方案

因为A的机器前边是48开或者多的挂到50开而Windows自身?#32622;?#26377;机制能够对多个网卡进行可定制的分流所以这个多IP的方案又让我犯了难
考虑再三我让A直接使用市面上的IP代理软件先跑起来跑了大概有2个周的时候A告诉我还会有封停初步考虑IP代理可能会一个IP卖给多个游戏工作室从而导?#36335;?#20572;问题

?#38142;ˣ?#27809;有退路和借口的我又开始了漫漫的熬夜的日子其?#21040;?#20915;方案?#25346;?#31616;单我自制了个路由器的ROM让路由器充当代理服务器然后在本地使用LSP劫持了通讯的函数通过自己写的代理客户端完成通讯通讯时按照配置选取通过那个代理服务器通讯虽然各种不完美但总算是能够稳定的跑起来了

测试没有问题之后A和他的朋友们开始批量采购定制的路由批量拉网线据说光A自己就新增了近600条网线

A的游戏工作室规模越来越大管理也越来越复?#21360;?#22312;完成了定制路由之后休息了没几天的我?#30452;A要求想办法?#26723;?#20154;工

没办法顾客就是上帝

于是我又制作了网络控制台可以监控多台机器上的角色同时能够进行一些简单的维护工作像重启客户端发送命令什么的都可以在网络控制台上又是一个多月的熬夜终于算是稳定运行了?#38142;ˣA的160多台机器只需要3个员工就可以轻松维护时不时还能休个假聚个餐什么的

而我因为长时间的熬夜身体被?#29616;?#36879;支头晕耳鸣神经衰弱腰椎和颈椎也都出现了问题?#29616;?#30340;一次左手拿了一杯水硬生生的给抖的洒了一地死活没法送到嘴里当时正好快年底了从公司请了年假带着老婆孩子省内逛了一圈玩了大概半个月身体才逐渐好了一点

休整回来后陆陆续续完善了一些功能像11?#36335;?#26356;新后出售需要确认4?#36335;?#29256;本更新后神行的过图问题等等都是一些小的调整比较大的改动是做了自动合成萤石的功能后来合成萤石不需要跑洗炼台了?#21015;?#33510;苦做的半仙罗盘试炼台寻路什么的也就都没有什么用处了

运行到今年?#23637;航ڣA又找到我说出金效率随着金价的?#26723;停?#38656;要调整了否则游戏工作室开始没有利润了

于是乎又一次开启熬夜模式比较凑巧的是公司也恰好在这时开始一个重要项目的合作前期的准备工作交给我来完成熬夜熬夜再熬夜

经过把试炼和钓鱼功能完全推翻重写终于能够做到5000分装备的号平均4分30秒左右试炼通过全部用来打试炼的话每天大概能打330封到350封信配合每晚的钓鱼活动只需要极少量的副本就能把精力完全消耗光

就在前几天新版本更新后五行石合成界面变了不能合成五行石了又进行?#24605;?#21333;的调整

?#33267;?#24635;总也算是在游戏辅助这个圈子里做?#24605;?#24180;了

这是一个?#29616;?#36879;支体力精力的工作在这几年里身体每况愈下到现在已经算得上是浑身是病了如果按照投入产出比来说的话也没?#20889;?#23478;想象的那么划算我现在的工作每年能拿个小20万加上年底分红也能有个10几20万吧并?#19968;?#26412;上每年都能够上一个台阶而写游戏辅助付出的要比工作更多虽然看上去一年也能有个几十万的收入但是真的是太累太累了

我有的时候就在想如果我拿写游戏辅助的这些精力放在工作上或者再重新创业应该不会比现在做辅助收益少但是无奈上了这条船游戏工作室一帮人还在指望着我只能再坚持一?#38382;?#38388;了

大约2个月前我也和A也进行了一次长?#27169;?#34429;然没有直接说不想开新项目了但我告诉他应?#27599;?#34385;一下双项目并行不要把宝全押在J3上面了我真的累了

我估计J3再做1年应该没?#20889;?#38382;题但是J3结束之后我不想再继续写辅助了毕?#25346;?#32769;大不小了体力和精力?#20960;?#19981;上了游戏辅助这个行业还是年轻人的天下

对于想入行的在NBE徘徊的年轻人我想说这个行业其实没?#24515;?#20040;难同?#24065;?#27809;?#24515;?#20040;美好技术层面如果要开发精品的话还是?#27599;C/C++来支撑如果是需要赶暴利期的话那就随意了什么开发快用什么像什么E语言什么的虽然我没有学过但是可以肯定它学起来很容易入门很简单网上?#20889;?#25209;的教程

但是想要做好辅助外挂还是需要有比较全面的知识的?#28909;?#24120;见的系统API什么的肯定是要熟悉的而如果是注入式的内挂的话各种注入方式各种Hook技术也是必须要会的?#28909;?#25105;的这个辅助算不上完美也算不上?#30475;?#37324;面用到的技术我简单的把想到的罗列一下

一套自己的网络框架能够处理客户端和控制台之间的各种消息通讯同?#24065;?#29992;在了单机控制台和网络控制台之间的通讯上

一套自己的Hook引擎用于在关键点挂接?#28909;?#24103;数优化反和?#36710;取?#36825;里面采用的方式有Jmp跳转方式的inline-hook调试中?#24076;?#21253;括int3中断和硬件中?#24076;?#20854;他的还?#24515;?#23384;访问中?#31995;x?#20026;了配合上下文信息的获取还有调用堆栈的处理等

一套自己的DLL加载器通过DLL加载器彻底隐藏注入的DLL避免被扫描到

一套自己的资源打包解包管理将一些文本脚本?#20219;?#20214;进?#20889;?#21253;处理提高?#24179;?#38376;槛

一套自己的特征码扫描引擎能够根据特征码自动扫描出exe和dll里面的基址偏移等信息减少游戏新版本更新后的基址查找工作量通过它?#19968;?#26412;上能够做到开服前更新基址

一套自己实现的socket代理客户端能够改变制定进程的网络访问路径

一套基于lua语言的脚本引擎能够解析并执行自定义命令及其?#38382;?#24102;有分支循?#36820;?#29305;性同时能够自定义变量自定义函数等

暂?#26412;?#24819;到这些有的内容写的时间也比较久远了很多东西都需要翻文档或者代码才能想起来了

如果有别的出路的话先考虑去工作吧这个行业的艰辛超过你的想象虽然我走的算是一路顺风顺水但是这些和A的支?#24103;?#22825;时地利都分不开

不要小看一个简单的辅助软件要知道辅助对于Bug的容忍度要?#23545;?#20302;于普通的项目软件要知道一旦游戏辅助商业化之后同时运行的数量?#32479;中?#26102;间都?#23545;?#22823;于普通的商业软件

正是因为长时间大批量的运行程序的任?#31283;毕?#37117;会被放大?#28909;?#35797;炼中的推石头关卡有百分之一的几率会失败那么在A的游戏工作室里面160台机器同时运行就相当于同时运行7000多个窗口每个窗口每天大?#32426;?#20851;320次其中推石头关卡出现的几率是4/9也就是所有的机器里面推石头关卡会出现近100万次失败大约1万次如果?#30475;问?#36133;增加通关时间2.5分钟的话相当于为整个游戏工作室浪费了25000分钟这相当于单号打试炼通关5500次游戏工作室的利润就这么被浪费了

可能会有童鞋?#23460;ɣ热J3能不能做能做的话利润太低什么的做过童鞋的可以帮?#19968;?#24212;一下我没有做过游戏工作室没有概念我只能给出几个基本的数据

钓鱼进行?#24605;?#36895;基本上鱼儿上钩那个消息一到就开始了下一次甩杆动作了省掉了收杆动作具体的钓鱼?#38382;?#25105;没有统计

试炼之地只打第一层4500分装备大约4分40秒5000分装备大约4分30秒6000分装备大约4分20秒这都是比较保守的数字

每条网线跑8个窗口A那边的网费比较便宜每条线每个月30左右

游戏工作室需要员工3人加上A自己出货交易

基本上能够做到平价炼号不赚不亏(脚本+满级号组队带有工具配合)

声明我不卖辅助不带队不收?#38477;ܣ?#25105;只是一个外行游戏辅助外挂作者今天与各位写辅助的同行分享一下自己的经历而已身心俱疲?#25226;?#19981;搭后语见谅就说这些吧诸君见?#22987;?#26234;有意见使劲拍砖



您好您暂时不能浏览帖子的全部内容请 登录 | 没有帐号 立即注册QQ登录
良心17 坑货
  • TA的每日心情
    开心
    2017-4-21 18:29
  • 签?#25945;?#25968;: 26 天

    [LV.4]?#32423;?#30475;看III

    推荐
    发表于 2015-7-13 20:49:50 | 只看该作者
    NBE微信公众?#25945;? border=
    虽然我不懂但是我全都看完了要是现在的辅助作者?#24049;?#20320;一样认真那什么游戏出一个死一个妥妥的感谢那些没用的辅助让很多游戏还活着
    回复 支持 1 反对 0

    使用道具 举报

  • TA的每日心情
    奋斗
    5 天前
  • 签?#25945;?#25968;: 598 天

    [LV.9]以坛为家II

    板凳
    发表于 2015-7-13 14:14:31 | 只看该作者
    NBE微信公众?#25945;? border=
    好高大上的样子

    我只会做点易啊按键精灵这种入门级的东西
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-4-17 19:21
  • 签?#25945;?#25968;: 18 天

    [LV.4]?#32423;?#30475;看III

    地板
    发表于 2015-7-13 14:41:43 | 只看该作者
    才是真正的内部啊对于我这种机器少的苦逼来说想开卡也开不到用市场挂真是死路一条大神求加qq:22313793能跟着开几张卡三四荣幸啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-6-19 07:54
  • 签?#25945;?#25968;: 108 天

    [LV.6]常住?#29992;II

    5#
    发表于 2015-7-13 14:59:39 | 只看该作者
    好高大上的样子
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-4-3 12:36
  • 签?#25945;?#25968;: 402 天

    [LV.9]以坛为家II

    6#
    发表于 2015-7-13 17:39:14 | 只看该作者
    这就是一个消费肉体的行业啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-11-22 20:37
  • 签?#25945;?#25968;: 568 天

    [LV.9]以坛为家II

    7#
    发表于 2015-7-13 21:22:14 | 只看该作者
    看完了大工作室表面风光风险更大小工作室看似赚钱少但风险小
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2019-1-25 22:59
  • 签?#25945;?#25968;: 241 天

    [LV.8]以坛为家I

    8#
    发表于 2015-7-14 08:49:47 | 只看该作者
    我也好像没看懂不过也算见识了一个大哥大神谢谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-11-30 20:17
  • 签?#25945;?#25968;: 302 天

    [LV.8]以坛为家I

    9#
    发表于 2015-7-14 09:55:54 | 只看该作者
    好高大上的样子

    我只会做点易啊按键精灵这种入门级的东西
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    快速回复 返回顶部 返回列表
    й