帖子原地址为:http://www.mengwuji.net/thread-6765-1-1.html
看起来相当简单.结果踩进去以后全都是坑
32位下完工代码地址:http://git.oschina.net/ockdieso/nahequdongzhurudll
只是对哪个帖子做一些补充
NTSTATUS Register_Load_Image()
{
NTSTATUS status = PsSetLoadImageNotifyRoutine(Load_Image);
return status;
}
注册回调
然后先看下原文的步骤
1.判断当前LoadImageNotify加载的dll名字是System32(SysWOW64)\\ntdll.dll
2.ObOpenObjectByPointer打开一个ProcessHandle
3.KeStackAttachProcess切到被注入的进程的地址空间去,
4.遍历导出表取ntdll!ZwTestAlert的地址(win10取ntdll!LdrGetProcedureAddressForCaller)
5.取ntdll!NtProtectVirtualMemory的地址
前四步都是一样的.至于这个NtProtectVirtualMemory的函数地址.我没有取
因为暂时不考虑还原.这个Test函数实际上我都不知道他什么时候才去调用
按照我的想法....这个函数估计一辈子也就跑一次吧?
不过为了实现功能.这些东西后续补上也不是问题
6.KeUnstackDetachProc