yetmorecode/ghidra-lx-loader

GitHub: yetmorecode/ghidra-lx-loader

为 Ghidra 提供 LX/LE 可执行文件格式支持的加载扩展,实现对 OS/2、DOS4GW 及 VxD 等遗留二进制的逆向分析。

Stars: 78 | Forks: 13

# LX/LE 可执行文件格式的终极 Ghidra Loader 从[发布页面](https://github.com/yetmorecode/ghidra-lx-loader/releases)下载与您的 Ghidra 版本相匹配的 zip 文件,并通过 `File > Install extensions...` 进行安装 ## 功能 * 支持多种格式的 LE/LX 文件: * OS/2 LX 风格 * MSDOS DOS/16 LE 风格 * MSDOS DOS/4 LE 风格 * DOS32A sb.exe 解绑定的 LE/LX 风格 * Windows Virtual Device Driver (VxD) * 完整的 page-map 和 fixup (重定位) 支持 * 带有注释的完全类型化的 executable headers(以及其他映像数据) 或者,您可以为每个文件单独指定各种选项: * 手动覆盖 object 基地址和 segment selector(适合与调试器 / DOSBox 同步) * 将各种映像数据映射到 overlay: * 映射 MZ Header * 映射 LX Header * 映射 LX Loader Section * 映射 LX Fixup Section(完全类型化!) * 映射 LX Data Section(即未修改的 page 数据) * 为内存中的每个 fixup 创建标签 * 为内存中的每个 page 起始处创建标签 * 记录 fixup 统计信息 / 记录单个 fixup 类型 ## 测试环境 * F1 Manager Professional (F1.exe - DOS/4GW LE): https://www.mobygames.com/game/dos/f1-manager-professional * The Elder Scrolls Redguard (RGFX.exe - DOS/4GW LE): https://en.wikipedia.org/wiki/The_Elder_Scrolls_Adventures:_Redguard * X-Com: Apocalypse (UFO2P.EXE - DOS/16 LE 及解绑定的 LE 风格) * 使用 Open Watcom 编译的各种文件 (DOS32A LE) * 随机的 VxD 文件 ## 额外信息 ![选项](https://static.pigsec.cn/wp-content/uploads/repos/cas/64/643ee617bec49221668548d50e2ed5e8a47deea9d4cfa7eb436eafb4e6b159ef.png) ![选项](https://static.pigsec.cn/wp-content/uploads/repos/cas/d7/d74f70e9d1871f9a4d08035268910b4559ab9d5cf1ac1b2fb937561b423b8d23.png) ![选项](https://static.pigsec.cn/wp-content/uploads/repos/cas/0f/0f24b25be77c37a105666016d999816c4c7ad4fb79ee844c82beef3e67daa273.png) ## 手动覆盖基地址和 segment selector 可以指示 loader 手动覆盖 executable 的 object 的基地址和 selector。我用这个功能是为了向 Ghidra 提供与在 dosbox debugger 中发现的相同的内存布局和 segment selector。作为回报,我可以使用在 Ghidra 中找到的相同地址,在 debugger 等工具中设置断点。 要覆盖基地址,只需在字段中输入以逗号分隔的十六进制值列表: Loader 将相应地调整位置(以及 fixup!): ![新位置](https://static.pigsec.cn/wp-content/uploads/repos/cas/51/518b87c48d705fb40ae487040fff5bbd4ac6204ab43fdaf0450871d2d04a1940.png) ## 资源 * https://ghidra-sre.org/ * https://moddingwiki.shikadi.net/wiki/Linear_Executable_(LX/LE)_Format * https://github.com/yetmorecode/dos32a/blob/master/src/dos32a/loader.asm * https://github.com/open-watcom/open-watcom-v2/blob/master/bld/watcom/h/exeflat.h ## 反馈 如果您有任何反馈,请不要犹豫,直接提一个 issue。即使您在使用 loader 时没有遇到任何问题,我也很乐意听到您的使用感受 :)
标签:DOS4GW, Ghidra插件, JS文件枚举, LX/LE格式, OS/2, VxD, 云资产清单, 可执行文件解析, 域名枚举, 逆向工程