查看: 503|回复: 0

防游戏检测之易语言APC注入DLL技术

[复制链接]

3123

主题

3123

帖子

50

积分

超级版主

Rank: 8Rank: 8

积分
50
发表于 2021-7-31 13:42:11 | 显示全部楼层 |阅读模式
APC注入是什么原理?
首先我们得来了解下它是什么东西,才能更好的运用它,关于APC对于懂微软api函数使用的学员来说可能不陌生,新手估计没有接触过。
APC 注入的原理是利用当线程被唤醒时APC中的注册函数会被执行的机制,并以此去执行我们的DLL加载代码,进而完成DLL注入的目的,
其具体流程如下:
1.当EXE里某个线程执行到SleepEx() 或者 WaitForSingleObjectEx() 时,系统就会产生一个软中断(或者是Messagebox弹窗的时候不点OK的时候也能注入)。
2.当线程再次被唤醒时,此线程会首先执行APC队列中的被注册的函数。
3.利用QueueUserAPC()这个API可以在软中断时向线程的APC队列插入一个函数指针,如果给它插入的是Loadlibrary()执行函数的话,就能达到注入DLL的目的。

大至了解了下后就可以了,因为为了方便写辅助的学员注入游戏,我们模块里早已经提供了多种注入方式,本次的APC注入方式也不属于一种注入方式。
当然这里要说下,APC注入它分r0(可以使用NtQueueApcThread)层和r3层,这里我们先学习运用下r3层的APC注入,使用QueueUserApc。
毕竟内核驱动来进行注入涉及到系统方面,现在微软高版本系统对驱动加载都是要求比较严格的,
所以r3层(也就是应用层)能实现对游戏的注入,那尽量用应用层的,内核驱动方式的APC注入我们在后续模块更新了驱动后再来讲。

APC注入方式在我们独立团的 Game-EC 驱动模块 从8.5.2的驱动版本才加入的,
它的系统兼容方面:目前已经在xp,win7,win8,win10 32位/64位系统中测试过可用
使用的方法很简单(APC注入.exe 代码):


win10 64位 注入效果:


APC注入的好处:
这种方式注入的好处就是DLL注入到目标进程里后,用查看进程模块的工具比如:XT,PCHunter,等都查看不到它的存在,类似于我们模块里的内存注入一样!
如果游戏枚举自身进程模块来检测辅助DLL,是查不到我们的DLL的!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

快捷回复 【不要灌水喔,臭宝!】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则