也许您听说过 DLL 劫持技术,但您还没有尝试过 DLL 劫持技术。 DLL劫持技术的原理是:
由于输入表只包含 DLL 名称而不包含其路径名,加载程序必须在磁盘上搜索 DLL 文件。首先,它会尝试从当前程序所在的目录加载 DLL。如果没有找到,则在Windows系统目录中查找,最后在环境变量中列出的每个目录中查找。利用这个特性,首先伪造一个与系统同名的DLL,提供相同的输出表,每个输出函数都转为真正的系统DLL。程序调用系统DLL时,会先调用当前目录下的假DLL,完成相关功能后,会跳转到与系统DLL同名的函数处执行。这个过程用系统DLL被劫持的形象来描述
观察导入的DLL,如KERNEL32.DLL、USER32.DLL等受系统保护的重要DLL,比较难劫持,所以我们选择VERSION.DLL。至于判断是否是系统保护的DLL,可以查看注册表中的key值。里面的DLL受系统保护,加载路径是固定的:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\knowndlls
编码实现
现在,我给出入口点的version.dll劫持部分的代码,其余代码使用AheadLib工具生成,我只是在入口点处为弹窗添加了一行代码。
// 入口函数
BOOL WINAPI DllMain(HMODULE hModule, DWORD dwReason, PVOID pvReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hModule);
::MessageBox(NULL, "I am Demon", "CDIY", MB_OK);
return Load();
}
else if (dwReason == DLL_PROCESS_DETACH)
{
Free();
}
return TRUE;
}
qq的劫持dll选用
新建一个vs dll项目,然后将.cpp的代码复制进去,并加上<windows.h>和<stdlib.h>头文件
然后在入口函数的地方填上一个弹出计算器的语句
将原dll文件改名为之前在软件里面复制的名字libuvOrg.dll,并把我们生成的dll文件复制进去
点击QQ.exe即可弹出calc.exe
博主真是太厉害了!!!
想想你的文章写的特别好https://www.jiwenlaw.com/
怎么收藏这篇文章?
想想你的文章写的特别好https://www.237fa.com/
看的我热血沸腾啊https://www.ea55.com/
不错不错,我喜欢看 www.jiwenlaw.com
文章的确不错啊https://www.cscnn.com/
真棒!
真棒!
真好呢
《影子》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/126073.html
《你是我的命运2005》爱情片高清在线免费观看:https://www.jgz518.com/xingkong/27998.html
《德云社德云五队小开箱庆典南京站2020》大陆综艺高清在线免费观看:https://www.jgz518.com/xingkong/55232.html