首页
社区
课程
招聘
[原创]<<游戏外挂攻防艺术>>注入2.3节依赖可信进程注入
发表于: 2013-3-6 23:06 19815

[原创]<<游戏外挂攻防艺术>>注入2.3节依赖可信进程注入

2013-3-6 23:06
19815

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也不妥。
        优点:隐蔽性好,不易被分析和发现。

。。。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (15)
雪    币: 238
活跃值: (375)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
看起来还是针对XP吧.
这些技术用到WIN7 和WIN8都会有多少有问题.

把DLL注入后.实现目的其实LOADER就可以闪了. DLL 可以自己创建线程来退出.

以前给软件打补丁的时候 好像这样写过~~

~~ PS LZ 真快阿..都出书了~
2013-3-6 23:20
0
雪    币: 107
活跃值: (37)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
求电子书下载,或PDF
2013-3-6 23:26
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
1.sleep 35000ms....其实用个全局Event比Sleep好100倍的说~
2.虽然支持写书,但是卖书不是靠在论坛发帖子就能搞定的。
2013-3-7 02:30
0
雪    币: 256
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
目测,这本书 出版社会亏
2013-3-7 19:17
0
雪    币: 295
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
ssdt里 Open/Read/Write 3个钩子 一站,你这技巧就木用拉~~ 再说人家还会校验阿再校验,所以....
2013-3-7 21:10
0
雪    币: 228
活跃值: (115)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
7
当HOOK了LoadLibrary 这种做法俨然就是很**...
2013-3-11 07:19
0
雪    币: 496
活跃值: (286)
能力值: ( LV13,RANK:400 )
在线值:
发帖
回帖
粉丝
8
想法不错,能不能在注入的基础方法上进行创新?
2013-3-11 12:22
0
雪    币: 97697
活跃值: (200804)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
9
Thanks for share.
2013-3-11 13:58
0
雪    币: 8753
活跃值: (5215)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
cvcvxk 出本书,我一定买。
2013-3-11 19:07
0
雪    币: 276
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
这么弄TP不会察觉到自己保护的进程被注入了其他模块?
2013-3-13 11:19
0
雪    币: 461
活跃值: (65)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
12
有点多次一举了。。。
2013-3-13 14:32
0
雪    币: 154
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
竟然用OD调试services.exe进程,真是汗,拜托先好好研究windbg吧
2013-3-14 10:21
0
雪    币: 265
活跃值: (56)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
支持楼主,出书不易,看得出楼主想让思路通俗化,可惜有人更喜欢高深莫测那类,呵呵
2013-6-27 15:31
0
雪    币: 3110
活跃值: (143)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16
比较麻烦 QQ游戏的不用这么麻烦 直接内核注入 多省事 我是菜鸟 LZ是大牛 我错了
2013-10-8 01:27
0
雪    币: 222
活跃值: (185)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
17
竟然用OD调试services.exe进程,真是汗,拜托先好好研究windbg吧
2013-10-8 09:28
0
游客
登录 | 注册 方可回帖
返回
//