Neatbo.

PE 导入声明不能证明 Windows 可加载

先区分声明模块、有限选中文件匹配与操作系统 loader 决定,再判断导入清单能否回答部署排错问题。

依赖提问包含几个不同问题

开发者可先需要原生文件所声明的 DLL 名称,再决定收集哪些文件;Dmitry 的原问题明确要求不加载 DLL。静态交付有用,但无法单独回答操作系统能否找到、信任并执行程序。

导入表给出模块与名称/序号 thunk;有限选中文件比较只补一个 basename 和机器声明;运行时 loader 又有自己的环境和策略。把三层混为一谈,会使正确清单导向错误的部署结论。

沿有限伴随文件例子推演

root.exe 声明 HELPER.DLL。只选 root.exe,not-selected 描述本次集合;加入唯一同机器 helper.dll,经 ASCII 折叠得到 selected-declaration;再加 HELPER.DLL 则歧义;x86 root 配唯一 x64 helper 则机器不符。

即使唯一名称/机器匹配,导出、版本、签名或递归依赖仍可能不适合。本清单不读取这些结果;原始声明和原件 SHA 是交给下一步排查的事实。

区分三层证据
层次本工具给出剩余问题
PE 声明普通/延迟模块、名称/hint/序号及原地址运行时如何使用声明?
有限选中匹配名称/机器状态与原件索引导出及版本满足实际要求吗?
Windows loader没有提供 loader 结果环境、API-set host、搜索与信任策略是什么?

API-set 名称不是寻找同名文件的指令

API-set 使用虚拟合同名称,由系统映射 host。未选入同名文件不证明 DLL 缺失,同名选中二进制也不能取代系统映射;报告保留声明,不默猜 host DLL。

普通与延迟导入是同一清单任务内不同声明。有限范围只在 PE32 接受旧 VA 延迟数据;PE32+ 旧 VA 原子拒绝。工具不执行 delay-load helper,也不预测延迟导入是否会被调用。

完整且有范围地交接

长模块预览或复制摘要可能按合同省略声明。完整两成员 ZIP 才含所有 JSON 原件/描述符/thunk 字段和公式安全 CSV 符号行;无符号描述符仍在 JSON。完整数据须同时满足输入、结构与32MiB 报告预算。

许多 thunk 复用一个长名称,报告仍会扩张得远大于文件。生成器在保留更多符号前计入不可少的 JSON/CSV 出现,再完整测量终态报告;不因此降低已准入容量。

  • 使用原件 SHA 与完整 ZIP 作可复核交付。
  • 按字面解释状态:不把未选中改写为缺失,不把名称匹配改写为加载成功。
  • 无导入结果与不支持范围应明确,不替换成猜测导入。
  • 错误或取消后修正输入,重新生成清单;没有部分 ZIP。

参考资料

本分类工具使用说明

展开工具,查看操作步骤、可调选项和支持范围,再直接进入工作区。

原生 PE 导入声明检查读取本地 x86 PE32 或 x64 PE32+ 的普通与延迟导入,保留名称/序号和原件哈希,导出完整 JSON 与公式安全 CSV ZIP。

检查导入声明,无须加载 DLL 或运行 EXE。选中文件匹配只比较有限名称和机器声明;进一步排查时应读取完整 ZIP。

操作步骤

  1. 选择需要查看声明的本地原生 PE 文件;原字节不变。
  2. 运行清单,查看普通/延迟模块、符号数与有限选中文件状态。
  3. 下载 pe-imports.zip,按原件 SHA 阅读每个 JSON 声明和全部 CSV 符号行。
  4. 真实加载、API-set、导出或信任问题另用有授权且适合的 Windows 工具核查。

能力与限制

  • 1–100 个本地文件,每个最多20MiB、合计80MiB;每份1–96 个 section,全组最多10,000 个导入描述符和100,000 个导入符号。各预算同时适用。
  • 仅原生 x86 PE32、x64 PE32+,RVA 表须唯一映射到实际文件字节。CLR、其他机器与没有原 lookup 的 bound-only 导入不支持。延迟导入支持 PE32 RVA/旧 VA、PE32+ RVA;PE32+ 旧 VA 不支持。
  • 导入模块/符号名称为可打印 ASCII ASCIIZ,最多4,096 字节。选中文件名须为无路径分隔符的可打印 ASCII basename。按名导入 RVA thunk 限31 位;核对序号保留位、头/section 边界、表终止符和目录声明。
  • 只在选中 basename 之间做 ASCII 大小写折叠。not-selected 表示未选入同名文件;selected-declaration 表示唯一选中名称/机器声明匹配。同名歧义和机器不符单列。状态不证明导出符号、信任、DLL 可用性或 Windows 加载结果。
  • API-set 名称是由系统映射的虚拟合同,不保证磁盘有同名 DLL。工具不搜索系统、不映射 API-set host、不递归解析依赖、不抓取文件、不加载 DLL、不执行代码,也不进行签名或信任审计。
  • pe-imports.zip 恰含 pe-imports.json、pe-imports.csv 两成员。完整报告合计最多32MiB;固定 STORE 头增加232 字节。34MiB ZIP 守卫受报告预算支配,不是另一项可单独达到的容量轴;复用长名称会在报告扩展前计费。
  • JSON 保留每份原件 SHA/字节数、section、描述符、raw thunk、名称/hint/序号与选中文件状态。CSV 含全部导入符号行;无符号的描述符和没有导入的文件仍在 JSON 明示。CSV 防护公式前缀,JSON 原名称保持不变。
  • 界面预览前200 个模块声明,长单元格显示前2,000 个 UTF-16 单位。JSON 至多20,000 个 UTF-16 单位时完整复制,更长时复制明确摘要;ZIP 始终保留完整 JSON/CSV。畸形、不支持、超限或取消均无部分 ZIP。
打开原生 PE 导入声明检查 →
原生 PE 导入声明检查