用于一键生成自动注入的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,以空洞骑士 这个游戏为例子.这是游戏目录原始状态.


Www.Yge.me博客图片

 

2, 因为游戏进程会调用声音DLL,我们用系统的AudioSes.dll作为演示.

 

关于某个程序调用了那些DLL可以使用SPY+之类的工具查看.

百度"彗星小助手"  或者下载我 文章尾部提供的 [PEViewer]工具


Www.Yge.me博客图片

 

3, 将AudioSes.dll拖动到我的[DLL自动劫持生成器]软件,会自动识别导出表. 点击 [生成DLL]按钮,选择保存位置.

注:只有拥有导出表的DLL才适合劫持注入.


Www.Yge.me博客图片

4,将导出的DLL和demo,三个文件,一起放入空洞骑士游戏目录


Www.Yge.me博客图片


Www.Yge.me博客图片

 

5,运行空洞骑士进程,弹出提示框表示注入成功


Www.Yge.me博客图片

 

 

使用方法二

对于方法一有个缺陷,就是如果目标程序调用某个DLL文件是在程序当前目录,或者使用了绝对路径指向某个DLL文件.

那么通过在程序目录放入我们的DLL就无效了.

那么这是时候就需要直接替换指向的DLL文件,程序不想调用你的DLL也不行.

 

注意:替换系统目录的DLL文件有一定的风险,一般不推荐替换系统目录文件.

 

 

1,还是用空洞骑士为例子. 游戏目录有个UnityPlayer.dll ,我将演示替换这个DLL文件实现注入.

因为这个DLL已经在游戏目录,如果我们放入我们同名DLL文件方法已经行不通了.

 

2,我首先在游戏目录里建立一个名字re的文件夹. (名字随意,但是不要用中文或者标点符号)

然后将UnityPlayer.dll 剪贴 (CTRL +X )到re 文件夹.

一方面是备份这个文件,另外一方面就算劫持也得调用原来DLL.

Www.Yge.me博客图片

 


Www.Yge.me博客图片

 

3,打开re目录.将UnityPlayer.dll拖动到生成器.并且生成DLL文件


Www.Yge.me博客图片

 

4,将生成的DLL文件和DEMO一起3个文件一起放在空洞骑士游戏根目录


Www.Yge.me博客图片

 

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本身就有一定的风险.本软件导致某些不可预测结果,本人概不负责.

 

软件下载

DLL自动劫持生成器:

链接: https://pan.baidu.com/s/16LI-ZGzmdBlyk3QeziStvA

密码: uwg7

 

[新] 1.2 版本 DLL自动劫持生成器:

链接: https://pan.baidu.com/s/1jJ2g2MkpCqPBk1jFr-rLuQ

提取码: 7uc8

 

 

PEViewer(用于查看某个进程调用的DLL):

链接: https://pan.baidu.com/s/1_luvEeQJqwf0rqg7vTmzVw

密码: 9ppp