-
-
[原创]<<游戏外挂攻防艺术>>注入2.3节依赖可信进程注入
-
2013-3-6 23:06
19016
-
[原创]<<游戏外挂攻防艺术>>注入2.3节依赖可信进程注入
2.3 依赖可信进程注入
为了躲避反外挂系统的扫描和分析人员的分析,有时候,依赖可信任第三方进程进行的转注入,可能会取得比较好的效果。曾经有一款加载方式比较新颖的外挂,就是采用这种方式来实现注入的。现在,就让我们通过分析这款外挂的加载方式来谈谈转注入。
我们都知道,services.exe进程是Windows系统重要的组成部分,它管理着服务的启动和停止,同时,它也是许多木马关注的宿主。在这里补充一点:木马不是用户主动使用的,而是被动接受的,但外挂是用户主动使用的,所以,木马不仅要突破安全厂商的防御,还要突破游戏厂商的防御。从突破技术上看,木马还是比外挂考虑的多,使用外挂的用户往往也会为了运行外挂程序而暂停使用安全厂商的产品,这是造成游戏木马泛滥的一个原因。
现在,让我们回到services.exe进程上来。不知道有没有读者用OllyDbg调试过services.exe进程。如果你调试过的话,那要恭喜你了——幸运的则附加不上,不幸运的则是你的机器弹出一个对话框,告诉你距离关机还有多长时间。所以,通过木马和外挂找services.exe进程还是很明智的选择——因为services.exe不易调试、权限高、隐蔽性好。
假设外挂进程为Bot.exe,外挂主模块为FQ.dll,游戏进程为Game.exe,这种转注入的步骤如下。
(1)Bot.exe调用WriteProcessMemory和CreateRemoteThread函数,采用远线程注入方式将FQ.dll注入services.exe进程。Bot.exe调用Sleep(35000) 函数,使自己进入睡眠状态。
(2)services.exe中的FQ.dll调用CreateToolhelp32Sanpshot和Process32Next来遍历进程,判断Game.exe进程是否启动。如果Game.exe启动成功,就采用远线程或其他方式将FQ.dll注入Game.exe进程;如果未发现Game.exe启动,则继续循环遍历。
(3)Bot.exe进程睡眠状态结束,开始第4步。补充一句:按照常理,35000ms已经足够services.exe进程中的FQ.dll实现对Game.exe进程的注入了。
(4)Bot.exe调用CreateToolhelp32Sanpshot和Process32Next来遍历进程,寻找services.exe进程。找到该进程后,遍历其中的模块,找到FQ.dll。
(5)Bot.exe进程通过调用CreateRemoteThread远线程调用FreeLibrary,将services.exe中的FQ.dll从services.exe进程中卸载。
经过上面这巧妙的5步操作,FQ.dll悄无声息地先从Bot.exe进入services.exe,然后进入Game.exe。services.exe进程在整个注入过程中只起中转作用。
图2-2用简化的形式描述了转加载的过程。
图2-2 转加载流程简化图
缺点:遍历进程的方法需要改进,防止被假进程所迷惑,且显式调用API也不妥。
优点:隐蔽性好,不易被分析和发现。
。。。
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法