咨询一个关于远程注入的小问题! - C++ Builder / Windows SDK/API
参考地址:
http://www.vckbase.com/document/viewdoc/?id=1886
http://www.cnblogs.com/flying_bat/archive/2007/11/07/951872.html
http://www.codeproject.com/KB/threads/winspy.aspx
等等。
我的理解:
1、写一个DLL。这个我已经写好了,主要是为了保护我的一个进程。比如计算器,如果发现该计算器没有启动,就提示用户启动。如果启动了就跳过了。
这个我已经通过 应用程序加载 肯定没问题的。
并且我的这个DLL是在加载时,判断是是 DLL_PROCESS_ATTACH时直接启动。
2、以下是我的大致步骤:
A、找一个要注入的系统进程。
B、提升权限至SE_DEBUG。
C、打开这个进行
D、在目标中分配内存。
E、把DLL的全地址写到刚才分配的内存中。大小肯定可以,没问题的。
F、获得 LoadLibraryW的地址。
G、使用CreateRemoteThread,创建一个远程线程。
H、使用 waitForSingleObject,等待创建成功。
3、我每一个步骤都判断返回值,是没问题。
4、如果我不关闭和释放这个空间,每次注入,我就会发现那个进程每次会增加一定的内存占有量。
5、现在我注入完毕了,但是我的DLL怎么没起作用呢??是不是还需要一个启动什么的??谢谢了。
[解决办法]
顶一下
[解决办法]
timer是消息, 需要在被注入线程中截获WM_TIMER. 不如线程方便
[解决办法]
5、现在我注入完毕了,但是我的DLL怎么没起作用呢??是不是还需要一个启动什么的??谢谢了。
windows核心编程里说当DLL被LoadLibrary载入的时候会执行DllMain函数 但我一直没有成功过 - -!