发布于:2017-5-8 17:00 | 215572次阅读 作者: 管理员 | 原作者: TP | 来自: 原创
相关信息: 游戏版本:4.0.7.0 外挂版本:3.8.9.0 功能描述: 指定玩家无限弹框进行炸房 分析思路: 1. 初步分析 文件结构十分简单,只有单独一个exe文件,PEID分析后有较多壳保护 IDA分析不友好 OD附加后直接退出 1. 外挂登录流程分析及反调试初步绕过 通过上述OD附加直接退出,证明外挂对dbgbreak做了手脚 恢复后OD继续附加,仍然退出,猜测有其他检测 用Processmonitor进行检测,启动Processmonitor后程序退出,需要重启 改用hook验证方式,对几处常见的反调试检测API hook分析,最终定位到外挂有单独检测线程 根据线程ID直接将对应线程挂起,恢复掉DbgBreakPoint/DbgUiRemoteBreakin/DbgUserBreakPoint hook,OD附加,此时程序未退出 点击登录后,程序崩溃,猜测在登录按钮中做了检测和反调,继续监控API 发现在主线程中有检测函数 修改对应判断跳转,或直接用OD反反调试插件,附加后程序仍然退出,猜测有其他校验 对窗口是否有检测,则选取HOOK的API有EnumWindows,GetWindowTextA,GetWindowTextW等常见获取控件标题的API 修改掉对应窗口校验点击登录正常 此时整个登录流程已可正常分析 1. 外挂注入: 分析外挂描述的线程注入,对进程创建相关检测API hook后,发现有大量的进程遍历函数调用 自己实现一个假demo,将进程名修改为qqx51_game.exe,将窗口改为QQ炫舞,则可成功欺骗外挂进行假注入 由上述验证可发现外挂通过进程遍历后判断来感知QQ炫舞进程的创建,但是对线程注入,外挂并未调用到关键的API,对CreateRemoteThread/CreateThread,ZwAllocateVirtualMemory,ZwProtectVirtualMemory,NtCreateThread,NtQueueAPCThread,RtlCreateUserThread等函数hook,均为检测到有相关调用,同时未发现有其他可疑注入方式,猜测有可能实现了部分关键函数的自加载,对关键函数hook分析 确定上述猜想,进一步跟进,发现外挂调用了LdrLoadDll将外挂模块Yx2.dll加载 1. Dll分析 PEID分析,简单UPX加壳 直接脱壳后dll加入vmp保护 脱壳前后dll大小简单增加 外挂将dll注入游戏后分析,发现游戏内仍然为压缩可,阅读性差,pchunter定位到发现Yx2.dll被恢复到脱壳前,进一步分析,发现当前文件夹还有一个Ymz2.dll,对比Ymz2与Yx2完全一致,猜测外挂用了Ymz2去检验和修复Yx2dll,直接将这两处dll替换后脱壳后的,在使用外挂,则发现外挂未还原dll 1. 外挂功能分析 结合外挂逻辑,对关键函数下断,未发现有call函数调用,则考虑外挂主动构造数据包,对send函数下断,发现send点被hook 在外挂开启后,结合协议包ID做出过滤,定位到弹框类协议,并做堆栈回溯,定位到外挂模块中 进一步跟进分析,确认数据包构造过程 跟进到send函数,发送外挂即将这段数据调用send发送出去 至此外挂大体原理已经分析清楚
|
最新评论
发表评论