本帖最后由 jasson29 于 2026-10-2 07:10 PM 编辑
一、背景 使用魔蜂编写魔兽脚本的过程中,一直希望解锁高级函数能力,实现脚本全自动化运行。NI插件虽然自带全套高级函数,但使用麻烦,必须手动打开软件、完成进程注入,还要设置全局,才能在魔蜂内直接便捷使用,一直想能高级函数调用,但因缺乏研究思路、加上重度懒癌患者,该想法长期被搁置。 中秋假期期间,偶然浏览论坛发现,大佬发布的‘自定义接口插件在2026年9月17日完成重大更新’,高级函数自由调用,售价太高我决定寻找免费替代方案。 通过B站哈基米魔蜂教学视频看到到魔蜂高级解锁工具跟于传统Lua解锁方式不一样,它直接向WOW游戏进程注入高级函数,功能逻辑与付费自定义接口高度相似。这让我重拾此前的想法。 我无任何魔兽高级函数实现、逆向开发、注入开发的基础经验,确定核心思路:依托NI插件的函数逻辑,逆向提取NI高级函数源码,再通过注入技术,将提取的函数注入到wow中,封装适配到魔蜂插件中。 二、逆向 ni.dll:获取官方标准函数源码 1. ni.dll 内存脱壳与镜像提取 原始磁盘目录下的 ni.dll 为加密文件,文件熵值极高、无标准MZ文件头,无法直接静态分析,必须等待其注入WOW游戏进程后,从内存中dump完整文件。同时,NI插件采用手动映射加载 + Themida加密隐藏机制,模块不会挂载到系统PEB模块链中。常规进程工具无法检索加载痕迹,我先使用Process Hacker查看WOW注入后的进程信息(要导出dump文件出来后可能用的上),完全无法找到 ni.dll 加载记录,最终采用 pe-sieve 工具进行内存扫描脱壳,执行指令:/imp 3 /data 2/shellc 3,成功扫描进程内存,导出脱壳后的完整干净镜像文件:ni_unpacked_clean2.dll提供后续静态逆向分析基础文件。 2. IDA静态分析与Lua API批量导出 使用IDA工具对脱壳后的 ni_unpacked_clean2.dll 进行全量静态分析。通过检索内存代码段,筛选出player.stopmoving 等所有NI内置Lua脚本封装代码片段,结合注册表逆向交叉定位,精准锁定全部42个Lua API函数。 为批量、规范化导出函数源码,基于Python + capstone编写自动化解析脚本,对42个Lua API逐一完成反汇编处理,将所有函数源码、封装逻辑批量存档,生成 ni_api_*.txt系列源码文件完成基础函数api的提取。 三、依托开源项目实现注入 在github找到开源项目 awesome_wotlk 作为核心开发骨架。此该开源项目已封装成熟的魔兽脚本开发核心能力,包含完整的补丁注入链路、引擎函数表适配、Lua C函数注册机制,可直接复用基础框架逻辑。 基于该开源框架,将前文逆向导出的全部NI Lua API源码,通过C++代码重新实现、适配封装,集成至 awesome_wotlk 项目中,改造编译后形成独立可用的高级函数注入项目。 四、适配WBE魔蜂插件:搭建Lua封装调用层 参考NI插件原生的Lua函数封装、调用、适配逻辑,对已集成的高级函数进行WBE魔蜂插件的函数迁移,让所有注入的api函数在魔蜂插件直接识别封装,彻底实现魔蜂内便捷使用自动化高级函数的需求。 五、总结 作为一个重度懒癌患者,hook 我不懂、C++ 我不会写、逆向是什么我更不会、汇编这种上古语言我已经还给老师了,我只会移动鼠标点几下复制粘贴,基本我就干了几件事下载了 ida 软件、awesome_wotlk 项目源码、给ai提供 Ni 文件与插件、wbe 魔蜂插件,剩下的编码、环境软件安装统统交给 AI,做的我只能把我有限时间用来躺平。解锁注入有风险。 整体时间消耗9月29号-30号每天2小时逆向+注入完成,到10月1号 4小时多完成魔蜂插件的封装迁移测试, 配个图
|