使用AheadLib生成DLL劫持代码

程序加载DLL会有一个优先级顺序,其中,最先加载的是同一目录下的DLL,DLL劫持的原理是在程序的同目录下放一个自己写的DLL,让程序将我们伪造的DLL加载进去,然后在我们的DLL里调用真正DLL的函数。

借助 AheadLib 工具我们可以很方便的伪造DLL。比如,我们想劫持user32.dll,只需将user32.dll的路径填入,然后生成CPP代码。

使用AheadLib生成DLL劫持代码
看一下生成的代码,由于user32.dll里面函数很多,有1213个,所以代码非常长。
使用AheadLib生成DLL劫持代码

接下来,创建一个DLL项目,将代码放进去编译,设置项目编码为多字节字符集,关闭预编译选项,即生成了一个伪造的user32.dll。

使用AheadLib生成DLL劫持代码
我们可以在DllMain里添加想要的功能。

使用AheadLib生成DLL劫持代码
我发现在WIN10似乎没办法劫持user32.dll,程序加载的还是 C:\Windows\SysWOW64\user32.dll

可以试试劫持别的dll,方法是一样的。