1.外挂只有运行的驱动时候会加载驱动吗
2.驱动病毒那些事(三)----APC注入
外挂只有运行的时候会加载驱动吗
不一定都需要。
1、注入外挂在运行时会加载驱动,源源码但不一定都需要外挂软件需要对游戏进程进行一定的码驱操作和干扰,修改游戏数据、动注突破游戏限制等,错误nginx 源码目录路径会利用驱动来提高其对游戏的驱动控制权和干扰程度。不是注入所有的外挂软件都需要加载驱动。有些外挂软件只是源源码通过内存修改、DLL注入、码驱窗口消息处理等方式来实现其功能,动注不需要使用驱动来干扰游戏进程。错误
2、驱动外挂,注入又叫开挂、源源码开外挂、辅助、早盘量指标源码第三方辅助软件,综合某些修改器的功能进行编程出的游戏修改器。
驱动病毒那些事(三)----APC注入
APC注入是DLL注入的一种方法,恶意软件可以利用异步过程调用(APC)控制另一个线程,通过将其附加到目标线程的APC队列来执行其自定义代码。主要讨论内核层级的APC注入。
在介绍APC注入之前,先了解一下APC中几个常见的文华财经的量化源码结构体。APC_KAPC_STATE,是内核中代表线程的数据结构的一部分。在KTHREAD结构体中,ApcState和SavedApcState字段是关键,它们都是_KAPC_STATE数据结构。ApcListHead是APC队列头,代表内核APC和用户APC。Process和KernelApcInProgress、万利蓝色源码教程KernelApcPending、UserApcPending,展示了线程所属进程、内核APC和用户APC的状态。
APCState和SavedApcState的关系:当一个线程A运行在进程B中时,A线程中所有的APC函数要访问的地址都属于进程B。系统提供ApcStatePointer与ApcStateIndex两个字段来方便寻址。ApcStateIndex的股票老鼠仓指标源码值(原ApcEnvironment和AttachedApcEnvironment)决定了指向ApcState或SavedApcState的指针。当ApcStateIndex为0时,指向ApcState;当线程处于挂靠状态,ApcStateIndex为1,指向SavedApcState。
Alertable标志位位于KTHREAD结构体中,为True时,代表线程处于可唤醒状态。只有当线程处于Alertable状态时,Usermode APC注入才能成功执行。为了在ring 3层APC注入dll,可以调用KeTestAlertThread(UserMode)使进程处于可唤醒状态。
KeInitializeApc用来初始化APC对象,KeInsertQueueApc将APC对象存放到目标线程的相应队列中。当要插入的线程为当前线程时,APC会立刻执行。
执行APC的时机:在从内核返回用户空间的途中,或线程切换后。KiDeliverApc函数负责投递APC,内部调用机制涉及判断IRQL和队列状态。内核模式和用户模式的APC执行逻辑略有不同,但都涉及KernelRoutine和NormalRoutine的处理。
测试方面,通过APC注入可以向指定线程内插入APC,结束线程。插入APC的关键在于定位到指定线程。主要思路包括通过进程名获取进程ID,进而获取线程ID和线程结构体,最后将PspExitThread(STATUS_SUCCESS)调用放在APC中执行。
运行效果需要通过实际测试验证。参考链接包括在线论坛、百度文库、博客等资源,详细介绍了APC注入的原理、实现方法及测试过程。