db123 发表于 2024-4-3 21:50

AHeadLib.Net 用C#重写的dll劫持生成工具

本帖最后由 db123 于 2024-7-15 16:22 编辑

之前想用dll劫持的方式去学习一个软件,找了一圈发现了AHeadLib这个小工具,不过不管是论坛还是github上的工具其实都有各种各样的问题,主要有:
1. 不支持x64
2. 不稳定,崩溃
所以自己拿C#重新写了一个,基于 .NET Framework 4.7.2 和DevExpress,源代码和工具都放到了github上了,名字是:AHeadLib.Net
搜索该名字可以找到项目。

工具的特点就是直接为你生成打开就可以编译的C++ 项目,无论你选择x86还是x64都可以(需要Visual Studio 2022,如果没有,需要自行配置项目,参考生成的vcxproj修改即可)。
除了常规的函数跳转支持之外,还内置了一个简单的dynamic patch框架,通过在资源文件或者是外部dll同名配置文件中简单配置一下即可自动patch,无需额外代码,详细细节可以参考项目说明文档.


因为用到了DevExpress,所以包比较大,无法上传到论坛。所以百度网盘也传了一份:
链接: https://pan.baidu.com/s/1-I1KSWiB-HA6GXNLqQ7CMg?pwd=eh63 提取码: eh63

欢迎大家继续优化和改进。如有bug,欢迎提交Issues或者Pull Request。一些使用上的限制和测试用例可以在项目主页中找到。后续更新包就只发布在github了。

wtujoxk 发表于 2024-4-4 12:12

本帖最后由 wtujoxk 于 2024-4-4 12:17 编辑

Baymax、AheadLibEx都支持64位,并且都非常稳定,Baymax的功能大于AheadLibEx!
Baymax:https://www.52pojie.cn/thread-1879927-1-1.html
AheadLibEx:https://www.chinapyg.com/thread-146780-1-1.html

woaipojie2014 发表于 2024-5-16 17:26

测试过,针对1个程序员是没有问题的
如果一个软件中有2个exe可能就报错,比如两个exe都调用了hid.dll,但是宿主没有调用劫持的dll时就会报错,或者2个exe都需要劫持,但是劫持的dll不是同一个,也会报错。这里我觉得应该判断下,宿主是否加载了某dll?

Hou 发表于 2024-4-4 11:47

xjun大佬的AHeadLib不错,支持x64,就是很久没更新了

52PJ070 发表于 2024-4-4 14:31

wtujoxk 发表于 2024-4-4 12:12
Baymax、AheadLibEx都支持64位,并且都非常稳定,Baymax的功能大于AheadLibEx!
Baymax:https://www.52po ...

稳定最重要,感谢提供分享!

lml0126 发表于 2024-4-4 19:04

正需要,感谢分享~

Wolffyp 发表于 2024-4-4 19:36

可以研究研究下,谢谢分享!

abs9668 发表于 2024-4-5 09:07

非常感谢您的分享

gcode 发表于 2024-4-5 09:58

感谢分享,还有源码,可以研究下

jiqimaoer 发表于 2024-4-6 07:29

学习一下,谢谢分享了

87865723 发表于 2024-4-6 22:48

兄弟你好强
页: [1] 2 3
查看完整版本: AHeadLib.Net 用C#重写的dll劫持生成工具