可被劫持的DLL判断

可被劫持的DLL判断

在尝试劫持一些DLL时发现存在很多问题,经过测试一个可以被劫持的DLL有如下特征:

1)不存在windows系统保护。

  其不在 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs] 注册表中。

  

 

 

2) 其dll是EXE程序首先加载的DLL,而不是依赖其他DLL加载的。(可以通过PE查看器查看)

  打个比方,比如A.exe加载B.dll,然后B.dll加载C.dll,此时你如果劫持C.dll,生成伪C.dll放在A.exe目录下,其C.dll加载时根据B.dll加载,这样你劫持无效。

3)该DLL确实被加载进内存中

  通过PE查看器,你发现有被加载的DLL,但当你查看进程内存时却发现并没有该DLL(可能被卸载),如果你想劫持该DLL,可能无效。

 

这知识单纯讨论最原始的DLL劫持条件,不存在对抗,如果劫持的DLL都不满足这几种条件,可以尝试远线程注入或直接修改PE文件来加载DLL。

 

  

posted @ 2020-01-02 11:18  OneTrainee  阅读(745)  评论(0编辑  收藏  举报