在线程下一次被调度的时候,就会执行APC函数,APC有两种形式,由系统产生的APC称为内核模式APC,由应用程序产生的APC被称为用户模式APC
这里介绍一下应用程序的APC
APC是往线程中插入一个回调函数...MSDN说,要使用SleepEx,signalObjectAndWait.....等等这些函数才会触发
那么使用APC场合的注入就有了,
1.必须是多线程环境下
2.注入的程序必须会调用上面的那些同步对象...4.插入回调的时候,把插入的回调地址改为LoadLibrary,插入的参数我们使用VirtualAllocEx申请内存,并且写入进去
使用方法:
1.利用快照枚举所有的线程
2.写入远程内存,写入的是...这个程序啥也不干,就是调用等待,注意第二个参数给TRUE,第二个参数决定了你的APC是否调用
②.编写一个简单的DLL用作注入使用
直接生成一个简单的带有DllMain的入口的DLL即可.
?...,打开注入程序和被注入程序,被注入程序要点击按钮,让其执行SleepEX
?
DLL功能被执行了,我们用PCHunter看下被注入程序是否多了一个DLL
?