最近在浏览一个网络论坛,看到一个吃鸡外挂软件刺激战场下载量很高。出于对游戏外挂样本的敏感和逆向关注,我从论坛下载了一个样本,对游戏外挂样本进行逆向练习,深入功能分析和还原破解,主要从外挂样本的功能表现、样本的基本属性、样本的实现功能和样本的验证功能破解。
基本属性(对这些未知软件的分析必须在虚拟机环境中进行)
启动游戏助手小样后,表面上看,功能真的很强大。视角、距离、血显、自瞄都是玩家想用游戏助手的痛点。但是这个游戏的所有辅助功能都实现了吗?有这么厉害吗?
结合Exeinfo PE和pchunter工具可以得到样品基本属性的结果。
这个示例是由Easy Language开发的(WTWindow类名是Easy Language独有的),是一个没有任何外壳检查和节信息保护的普通示例。
点击样片开启辅助功能时,提示您需要获取注册码并激活样片的功能,才能正常使用样片的功能。
点击获取注册码按钮,会弹出扫描支付的对话框,但是对话框是空白色的。通过逆向分析,结论是样本开发者的服务器已经过期,没有进行备案登记,所以样本未能通过http通信向服务器请求支付二维码图片,所以弹出的支付对话框是空白色界面。
逆向破解程序的某个功能点,主要需要通过强大的ollydbg工具做动态调试,其他工具如IDA、procmon、pchunter等主要作为逆向分析破解的辅助点和参考点。
分析简单语言样本的常见切入点
从字符串开始通过函数断点MessageBoxA 的下层对话框断点 下层断点是通过搜索易语言按钮的事件特征码(ff55fc5e895df4)得到的。 注册码的破解过程步骤
综合以上方法分析,扫描二维码支付,可以获得正确的转账号码,从而获得正确的激活码。正确的调拨订单编号直接写在代码中进行判断,检查代码是否正确的方式是以两位数为单位检查票据编号。验证无误后,此时会弹出激活码字符串正确的消息。
通过输入先前获得激活码串的信息,可以激活辅助软件。此时再次点击打开辅助功能,你会发现可以有正确的对话框提示。(通过测试验证分析,不存在所谓的修改游戏客户端数据作弊的功能)
(钩子技术应用于插件示例)
1。实现钩子技术所需的三个系统函数
2。全局钩子注入的实现步骤
1.调用SetWindowsHookEXA设置安装钩子(可以根据需要设置不同类型的钩子)
2.实现钩子的回调函数,然后在回调函数中调用CallNextHookEx。
3.调用UnhookWindowsHookExA卸载挂钩。
该辅助样本实现的功能
这个吃鸡示例实现安装了两个钩子,主要用于监视对话框和CBT程序的输入事件。没有钩子技术实现游戏客户端的进程注入模块。
监控对话框输入事件实现安装当前线程WH_MSGFILTER钩子
钩子的回调函数:主要用于监控对话框的输入事件。
监控CBT应用程序为当前线程安装WH_CBT钩子
CBT钩子回调函数的实现
需要【游戏反转】学习资料的同学可以在转发后关注后台私信【游戏反转】
可以免费获得。一定要关注+转发
总结基于以上分析,可以明确的得出结论,助理作者有很多开发弹出对话框的功能,但实际有效的功能微乎其微。它只是一个对话框显示的框架过程。事实上,这个样本是一个没有实际功能的辅助工具,只是为了愚弄小白。
作为常规游戏助手软件,一般要求具备网络认证、注入和内存读写功能。
在游戏中购买和使用游戏助手软件是一个相对不明智的选择。毕竟双向危险系数很高。它只要一使用游戏助手,就一定会面临被配音的风险。第二,购买游戏辅助工具容易上当受骗。