首页 > 其他 > 详细

如何防止dll注入

时间:2015-10-29 06:05:12      阅读:282      评论:0      收藏:0      [点我收藏+]

不管LoadLibraryA,LoadLibraryW,LoadLibraryExA,LoadLibraryExW,所以只要hook LoadLibraryExW就可以监视所有的dll加载。

 

值得注意的是,win7 以上系统,LoadLibraryExW函数在KernelBase.dll中,kernel32中的只是个跳板函数。

 

还有一种利用dll的回调方法,会更优雅,下一次介绍,不需要hook任何函数。

简单的示例:

#pragma once

#include "../../../../ComAll/XHook.hpp"

namespace HookLoadLibraryW

{

static HookEnv env;

 

HMODULE WINAPI MyLoad(

__in const WCHAR* lpFileName,

__reserved HANDLE hFile,

__in DWORD dwFlags

)

{

wcout<<lpFileName<<endl;

return NULL;

}

 

 

 

static int32 Hook(){

InitHookEnv(env);

addr_t old=GetProcAddress(GetModuleHandleA("KernelBase.dll"),"LoadLibraryExW") ;

Hook(env,old,MyLoad);

return 0;

}

 

static int32 UnHook(){

UnHook(env);

return 0;

}

 

}

 

欢迎关注 windows驱动编程微信公众号,微信号:driverdevelop

技术分享

如何防止dll注入

原文:http://www.cnblogs.com/xujinping/p/4919179.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!