分析游戏外挂样本的9大诀窍
原创
已于 2022-06-20 10:40:20 修改
·
5.6k 阅读
·
7
·
14
·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
文章标签:
#安全
#c++
于 2020-12-22 15:14:02 首次发布
安全
同时被 3 个专栏收录
71 篇文章
订阅专栏
游戏安全
19 篇文章
订阅专栏
笔记
9 篇文章
订阅专栏
本文介绍了一种外挂分析的方法,包括使用工具如pchunter和IDA进行代码对比,hookDeviceIOControl来跟踪通信数据,利用spy++监控游戏消息,以及对外挂EXE模块的静态分析等。这些方法有助于理解外挂的工作原理。
分析外挂需要考虑是否修改了代码,数据,是否有模块注入。可以用pchunter中dump外挂运行前后的代码段来判断。如果发现外挂有驱动文件,那么就把驱动文件dump出来,用ida静态分析下,如果发现有大量的读写操作。驱动文件肯定会和应用层进行通信,我们可以hook DeviceIOControl来打印通信的数据。外挂无注入模块,猜测通过跨进程读写内存,修改代码或模拟协议实现。使用netpeeker网络抓包工具,观察外挂网络收发包情况,发现并没有大量发包过程,猜测可能通过跨进程读写实现或修改代码实现。从驱动通信入手,对deviceiocontrol下断点,得到通信对象。开启外挂后,用spy++监控游戏内消息模拟,在键鼠未操作情况下,接受到大量的模拟按键模拟消息:来验证是否是模拟外挂。还要分析下进程的钩子。通过分析游戏的文件来分析反外挂的机制。在IDA中没有常规的入口代码,IDA并不能直接分析出程序的流程图。因此可以认定,xxxx.exe是经过保护的。如果工具被检测到的话,可以用多个版本进行测试看会不会还有问题,检测的一般都是窗口文字或者特征码,进程名称模块名称。修改ntdll的DbgBreakPoint以及DbgUserBreakPoint,将原先的Int 3修改为NOP。将这两个函数NOP掉之后,调试器没有办法直接附加上。分析外挂EXE模块,观察其注入过程。运行外挂EXE后DUMP进行静态分析。模拟类型的外挂,可以用spy++工具来监控游戏主窗口的消息,SPY++ 还可以监视进程的消息。