游戏搬砖脚本到底是什么?

QQ截图20240125214316.png


游戏外挂到底是什么?

其实市面上的脚本也好外挂也好,本质就是三种,分别是模拟类,内存类,封包类。今天给大家简单介绍一下。

第一种,模拟类。它是以按键精灵为代表的一类,它本质上不进入游戏内部,只是在外围通过识别游戏图片、文字等方式来模拟点击。所以一般简单的辅助类,用按键的比较多,因为开发方便,小白学学也可以入手。

按键挂一般分为前台按键和后台按键,其中前台按键是操作鼠标实现指针移动到指定位置进行点击,所以必须保持游戏窗口一直在前台。

而后台按键则不然,它采用窗口消息,例如WM_LBUTTONDOWN,向游戏窗口发送点击指令,从而实现窗口内部点击,那么这种模式,即使你窗口最小化也没有关系。

这种更适合做窗口多开情况下的点击,举个例子,在RGP游戏中,你点鼠标砍了怪一下,那么在按键系的处理中,就是通过图形识别出怪的位置,用鼠标左键在怪身上模拟点击,从而使得人物跑到怪身边挥刀一砍。

优点:简单易学,容易上手。缺点:对流程控制、稳定性不好,容易出问题

第二类是内存挂,介于按键和封包之间,通过OllyDebug、CE等诸多调试工具,对游戏的主程序以及载入的DLL进行动态追踪调试,一般称作找基址、找CALL。

其实就是找某个数值或者某个功能,例如在RGP游戏中,你点鼠标砍了怪一下,那么如果是内存挂,就首先要找怪物在内存中的数据,例如怪物的编号、怪物的坐标、怪物的血条等等数值,然后通过OD调试出打怪这个功能CALL所在的代码段。

当然都是反汇编的ASM代码,找到以后,通过CALL测试工具进行测试,看是否正常,如果对的,那就记录下来,最后整个外挂设计脚本流程调用各个不同的CALL,一般内存挂都会将主文件封装成DLL,然后用一切办法让游戏启动的时候加载起来,这样,内存挂就变成了游戏的一部分,都是内部调用,一般体现形式是游戏一启动以后,会多出一个外挂窗口,可以设置修改各种参数。

优点:响应速度快,稳定性高(控制好内存指针),容易利用游戏漏洞实现BT功能

缺点:学习难度高,需要对内存、堆栈、进程、线程、各种数据结构、C语言、ASM都有一定了解,而且外挂必须跟游戏窗口共存亡,无法单独生存,对多开数量有影响。

第三类是封包挂:是比较高端的一种模式,调试方式很多种,可以用封包截取软件(例如WPE)截取封包,或者还用OD,来bp send,拿到封包数据,一般封包数据都是16进行的字节。

同样的,拿砍怪来说,游戏在调用了砍怪CALL之后,他最终必须经过send方法,将结果发给服务器,而这个结果才是重中之重,封包就是分析这的,一旦破解了封包的数据结构,可以自己模拟封包以后,那么就OK了,完全不用依赖游戏客户端,自己写程序跟服务器连接发送封包,从登陆到打怪的一系列封包,不仅速度快,而且可以多开N多个窗口,因为不需要游戏渲染,只是纯字节的收发。

优点:速度快,可操作性更强,可以多开到不知道多少开。


The End