vineeththomasalex/dll-visualizer

GitHub: vineeththomasalex/dll-visualizer

一个在浏览器中本地解析并可视化 Windows PE 二进制文件内存布局、头部字段、导入导出表、PDB 符号和反汇编的纯前端工具。

Stars: 0 | Forks: 0

# DLL 可视化工具 **[在线体验 →](https://vineeththomasalex.github.io/dll-visualizer/)** 透视 Windows 二进制文件。拖入 `.dll`、`.exe` 或 `.sys` 文件,即可获得 Windows 加载器将在内存中构建的精确布局——颜色编码的节区、每一个头部字段的详细解释、按实际用途分组的导入与导出表、资源树以及实时的反汇编。 所有操作均在你的浏览器中本地完成。无上传,无服务器,无遥测。 ![DLL Visualizer](https://static.pigsec.cn/wp-content/uploads/repos/cas/66/660676c02c0033841fc8a5987623a3ac871304b4bab53b8ddc96a24aac149f98.png) ## 功能介绍 **内存映射** —— 将映像渲染为一个按比例缩放的整体区块。每个节区都是一个根据其虚拟占用空间缩放的条带,数据目录表则作为条纹覆盖层绘制在其上。在*虚拟*布局(加载器构建的结构)和*文件*布局(磁盘上的实际结构)之间切换,以准确查看对齐填充、Authenticode 签名以及任何附加数据所在的具体位置。支持按内容、页面权限或字节熵重新着色,并可筛选出仅可执行、可写、可丢弃或零填充的区域。 **头部解析** —— 详尽解析 DOS 头、Rich 头、COFF 头、可选头、全部 16 个数据目录、加载配置、调试目录、TLS 以及证书表的每一个字段,提供文件偏移量、解码后的值,以及关于加载器如何处理该字段的通俗说明。特征字段和 DllCharacteristics 会逐位进行拆解说明。 **导入与导出** —— 导入表按模块*和*用途(文件 I/O、注册表、网络、加密、进程控制、ETW、NT 原生 API 等)分组,并为每个函数提供 IAT 插槽位置。导出表显示序号、RVA 以及任何转发字符串。延迟加载的模块会被特别标记出来。 **资源** —— 完整的三级“类型 → 名称 → 语言”树,以及一个经过正确解析的 `VS_VERSIONINFO` 块。 **符号** —— 拖入匹配的 `.pdb` 文件,应用会在浏览器中直接解析 MSF 容器、DBI 流和公共符号记录,然后将 PDB 的 GUID 和 Age 与映像的调试目录进行核对,让你确信这些符号确实属于当前版本。同时也支持 Linker `.map` 文件。 **反汇编** —— Capstone 被编译为 WebAssembly 并进行懒加载,从入口点、TLS 回调、导出表以及你的 PDB 符号处开始提取执行。分支目标会标注匹配的名称,并且支持点击以跳转跟踪。 **安全态势** —— 解析 ASLR、DEP、CFG、SafeSEH、高熵 VA、签名以及 W+X 检测,并特别指出存在风险的组合,而不仅仅是列出它们。 **十六进制视图** —— 可视化的十六进制查看器,其偏移量颜色与文件布局映射保持一致,让你始终清楚自己当前处于哪个数据结构中。 ## 支持的格式 支持 x86、x64、ARM 和 ARM64 架构的 PE32 和 PE32+ 格式,包括 .NET 程序集(解码 COR20 头和 CLI 元数据流)。支持对 x86、x64、ARM 和 ARM64 映像进行反汇编。 ## 本地运行 ``` npm install npm run dev ``` 然后打开 http://localhost:5173/dll-visualizer/。 ``` npm run build # type-check + production build into dist/ npm run lint # eslint npm test # playwright end-to-end tests npm run deploy # publish dist/ to the gh-pages branch ``` ### 测试夹具 `npm run fixtures` 会使用 MSVC 构建一个小型原生 DLL(包含其 PDB 和 MAP 文件),并将一个系统 DLL 复制到 `tests/fixtures/` 目录中。该文件夹已被 git 忽略 —— 不会向此代码库提交任何 Windows 系统二进制文件。如果缺少夹具,端到端测试将自动跳过。 ## 工作原理 | 模块 | 位置 | | --- | --- | | PE / PE32+ 解析器 | `src/pe/parser.ts` | | 熵分析 | `src/pe/entropy.ts` | | PDB (MSF) + MAP 读取器 | `src/symbols/pdb.ts` | | Capstone 封装器 | `src/disasm/disasm.ts` | | 应用中显示的说明 | `src/knowledge/glossary.ts` | PE 解析器是完全根据 PE/COFF 规范从零开始编写的 —— 不依赖任何二进制解析库。整个解析过程均采用防御性编程:每个目录都在一个保护块内进行解析,该保护块会记录警告而不是抛出异常,因此即使是截断的或故意篡改的畸形映像,也会尽可能多地渲染出其内容。 ## 技术栈 React 19 · TypeScript · Vite · [capstone-wasm](https://github.com/CzBiX/disasm-web) · Playwright ## 许可证 MIT
标签:Mutation, PE文件解析, Wayback Machine, 云安全监控, 云资产清单, 反汇编, 可视化, 浏览器端, 特征检测, 自动化攻击, 逆向工程, 静态分析