如何成为一名“外挂作者” 这是一门很大很注重实践的技术

2016-12-14 2058
我列举一下成为一个全能大神所需的知识:首先,汇编的基础知识必须过硬,有良好的逆向经验。
了解常用的数据结构(因为游戏的背包或者怪物之类的多用二叉树或者数组, 连基本的数据结构都不懂……那玩个蛋)了解API,R3(Native API),R0(内核),Socket。熟悉一门编程语言(只会汇编也可以)如果你能把上述的学精,就有成为大神(外挂类)的潜质。
如果是对编译原理比较了解的基友,应该就知道。
一个静态函数是一个固定的CALL,一个struct的结构内容都是用偏移可以算出来所有成员的。所以逆向游戏客户端,分析出游戏中的某些功能函数的地址,再加以分析出所传递的参数,模拟调用。这样一个简单的功能就完成了。
当然,这中间还牵扯到其他不少的东西, 比如说必须熟悉结构,
举个栗子:当你看到一个参数他的内存形式如下:
0x12345678:111111100
x1234567C:111111100
x12345680:11111114
这样的玩意,就很快可以联想到这是一个数组,还是一个vector。
这些除了要有逆向的功底以外,还需要有“逆向游戏的经验”, 因为游戏的参数都那德行,万变不离其宗。
除此之外, 游戏现在都有防多开的干涉。
在不谈驱动保护的前提下, 你需要熟悉Window的工作机制,特别是互斥的工作原理,当然,现在游戏保护不止是互斥判断多开,比如说进程路径重复,类名,窗口名,互斥,内存映射,判断文件是否存在等等之类的……所以你至少要把那本Window核心编程给看熟。
这方面的书籍, 我也没有太多的介绍, 现在有不少人是熟悉逆向,而不会过多的编程的“外挂作者”。 
他们都并非靠对编译原理的理解去逆向游戏数据,而且靠“经验”去逆向游戏数据。
总的来说,我看他们都是在网上找教程看下,再加以练习,就能达到这个水准了。
那么接下来再讲讲编程这块。
因为需要稳定不需要过多的人工量去看的挂机,所以你需要写得非常“智能”,简化操作流程,还要把角色的伤害跟玩家相提并论, 此过程听起来很简单, 操作起来非常麻烦。
首先多线程你要懂吧? 
比如说你必须无时无刻都在判断人物Hp低于某个程度就得啃药了吧?
总不能每写一句代码就写if判断一次血量吧?还有某些全局数组或者vector之类的多线程操作,比较基础的互斥啊,临界区之类的你要用吧?总而言之,多线程这块就是麻烦!
这类书籍我也就不班门弄斧了,想必各种大神的推荐应该更有力。
接下去还需要懂Native API。 就是俗称的R3. 亦是巨硬没公开的API, 需要用这层去隐藏自己的DLL,防止游戏的检测。 还有多开之类的,一般都在这层完成的。
你需要懂一点PE文件格式,把大部分的Native API的运行方法,调用方式给弄懂。
还需要懂Socket网络编程.
因为 你需要怎么“验证”自己,达到给工作室收费的目的,还有你需要怎么“验证”自己,达到防止被别人破解的目的当然,牵扯到socket了,我是看了,会socket的,大部分都会数据库操作的。要嘛是MSSQL,要嘛是MySQL。 
这个方便查询和管理。(这个数据库对写挂木有硬性要求)socket无非就是粘包之类的,超时之类的判断。 
赶脚不需要学到很深。当然,如果你还要弄脱机挂,底层的TCP协议是必须会的。还有加密和解密算法得杠杠的,逆向功底也要杠杠的。我想下,编程这块应该就剩下个脚本了吧? 
会一门脚本语言这个应该很easy。还有应该懂一点算法, 比如说A*, dijkstra,之类的。剩下就是Window内核了,就是俗称的R0,驱动层。……就先写到这里了……以后想多了再补充。游戏项目、游戏工作室辅助工具、游戏防封技巧,专业玩家网游戏工作室联盟,是网游工作室必选网站。
免责声明:部分内容转自其他媒体,转载目的在于为游戏工作室传递更多信息,如因作品内容、版权和其他问题请 联系客服