[自制软件] DLL自动劫持生成器
文章目录
用于一键生成自动注入的DLL文件.
更新
2021年9月下旬,更新1.3版本
解决X64下DLL重定向问题.
2019年5月18日更新至1.2版本.
改使用DELPHI xe 10.2编译,里面链接库文件也是10.2版本的.
修复原来导出函数过多编译失败的问题.
修复原来导出函数含有特殊符号编译失败的问题.
修复原来DLL文件有下划线导致编译失败的问题.
原理
DLL自动注入的原理我前面博文里简单说过.就是程序调用DLL的时候如果没有指定DLL目录,那么会优先从程序同目录搜索,如果同目录没有那么就从系统目录里面搜索.
如果我们在程序目录放一个我们自己做的DLL.那么程序会优先调用我们这个DLL.
相同功能前面有个 aheadlib 软件. 作者不详,我也没用过.因为它只生成VC源码,要自己编译.而且我也不会vc.
而我这个是直接生成DLL文件,直接编译好了.而且我的软件支持导出64位DLL.
使用方法有两种.
使用方法一
适用大部分程序.
1,以空洞骑士 这个游戏为例子.这是游戏目录原始状态.
2, 因为游戏进程会调用声音DLL,我们用系统的AudioSes.dll作为演示.
关于某个程序调用了那些DLL可以使用SPY+之类的工具查看.
百度"彗星小助手" 或者下载我 文章尾部提供的 [PEViewer]工具
3, 将AudioSes.dll拖动到我的[DLL自动劫持生成器]软件,会自动识别导出表. 点击 [生成DLL]按钮,选择保存位置.
注:只有拥有导出表的DLL才适合劫持注入.
4,将导出的DLL和demo,三个文件,一起放入空洞骑士游戏目录
5,运行空洞骑士进程,弹出提示框表示注入成功
使用方法二
对于方法一有个缺陷,就是如果目标程序调用某个DLL文件是在程序当前目录,或者使用了绝对路径指向某个DLL文件.
那么通过在程序目录放入我们的DLL就无效了.
那么这是时候就需要直接替换指向的DLL文件,程序不想调用你的DLL也不行.
注意:替换系统目录的DLL文件有一定的风险,一般不推荐替换系统目录文件.
1,还是用空洞骑士为例子. 游戏目录有个UnityPlayer.dll ,我将演示替换这个DLL文件实现注入.
因为这个DLL已经在游戏目录,如果我们放入我们同名DLL文件方法已经行不通了.
2,我首先在游戏目录里建立一个名字re的文件夹. (名字随意,但是不要用中文或者标点符号)
然后将UnityPlayer.dll 剪贴 (CTRL +X )到re 文件夹.
一方面是备份这个文件,另外一方面就算劫持也得调用原来DLL.
3,打开re目录.将UnityPlayer.dll拖动到生成器.并且生成DLL文件
4,将生成的DLL文件和DEMO一起3个文件一起放在空洞骑士游戏根目录
5,运行空洞骑士就会弹出提示框,表示劫持注入成功
补充说明
1,本软件为DLEPHI xe2 DLEPHI xe10.2编写. 直接编译未加壳. 可以直接获取资源文件, 里面包括 生成DLL源代码, 以及 32, 64位 DLEPHI xe2 DLEPHI xe10.2 编译+链接器.
2,本软件PE头部解析代码是拿cheat engine 的部分源代码,所以可能有部分查毒娱乐软件可能会报hacktools.
3,导出的DLL不是100%劫持成功.这个和目标的调用方式有关系.
4,仅限个人研究,请勿转载,请勿将软件用于非法用途.
5,劫持dll本身就有一定的风险.本软件导致某些不可预测结果,本人概不负责.
下载
最新
1.3
链接: https://pan.baidu.com/s/1f8uxDhwEx-sDO5nWyqFt_A
提取码: aesh
辅助工具
PEViewer(用于查看某个进程调用的DLL):
链接: https://pan.baidu.com/s/1_luvEeQJqwf0rqg7vTmzVw
密码: 9ppp
失效
1.0
DLL劫持生成器:
链接: https://pan.baidu.com/s/16LI-ZGzmdBlyk3QeziStvA
密码: uwg7
1.2
链接: https://pan.baidu.com/s/1jJ2g2MkpCqPBk1jFr-rLuQ
提取码: 7uc8