全都知道了
  • {[item.content]}
    拒绝 同意 拒绝 同意 重新认证 知道了 {[item.infoDateTime | formatTime]}
Theevilspirit/DllHijack_Test 私有库 公有库 {[ repoInfo.group_name ]}
{[ repoInfo.project.good ]}
Browse Source

Initial commit

master
Theevilspirit 12 months ago
parent
commit
bb6098846f
  1. 8
      README.md

8
README.md

@ -12,7 +12,7 @@
本文选取劫持的程序是从网上随便下的一个程序“360文件粉碎机独立版.exe”,我们使用 PEview.exe 查看改程序的导入表,主要是看有程序需要导入哪些DLL文件。
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/8f6c4de1c513e429aab34be2aeda35a5.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/8f6c4de1c513e429aab34be2aeda35a5.writebug)
观察导入的DLL,类似KERNEL32.DLL、USER32.DLL等受系统保护的重要DLL,劫持难度比较大,所以,我们选择VERSION.DLL。至于,判断是不是受系统保护的DLL,可以查看注册表里面的键值,里面的DLL都是系统保护的,加载路径固定:
@ -22,17 +22,17 @@ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\knowndlls
然后,确定劫持的DLL文件之后,我们使用 AheadLib 工具来生成DLL劫持代码:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/9c4fbd4e61606ddb52a8d1b5b6a46a58.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/9c4fbd4e61606ddb52a8d1b5b6a46a58.writebug)
接着,新建一个DLL工程,把AheadLib工具生成的代码拷贝到DLL工程中,同时,我们在DLL的入口点函数DllMain中增加一行弹窗代码,这样可以提示我们DLL劫持成功。然后编译链接,生成DLL文件。这个我们自己编译生成的DLL文件,就可以把DLL名称改成“VERSION.DLL”,放到和“360文件粉碎机独立版.exe”程序在同一目录下,运行程序,则会加载同一目录下的“VERSION.DLL”。
为了验证DLL程序是否能成功劫持,我们把改名后的“VERSION.DLL”和“360文件粉碎机独立版.exe”放在桌面,然后,运行程序,这是,成功弹窗:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/cc3b44453298ce94a7b7b3ef9d32a9fa.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/cc3b44453298ce94a7b7b3ef9d32a9fa.writebug)
我们使用 Process Explorer 工具查看下“360文件粉碎机独立版.exe”进程加载的DLL情况:
![](http://www.write-bug.com/myres/static/uploads/2021/10/19/1b7ca3819105215b8bbefe0bd7228b74.writebug)
![](http://www.writebug.com/myres/static/uploads/2021/10/19/1b7ca3819105215b8bbefe0bd7228b74.writebug)
可以看到,我们自己的version.dll成功被加载,而且还加载了系统的version.dll。之所以会加载系统的version.dll文件,是因为我们自己的DLL文件中,会加载version.dll文件。

Loading…
Cancel
Save

© 2021 WRITE BUG

备案号 京ICP备16025663号-5

© 2021 WRITE BUG
备案号: 京ICP备16025663号-5