当前位置: 首页 > news >正文

dumpbin 用法详解

dumpbin 用法详解:DLL / EXE 结构分析必备工具

在 Windows 平台做 C/C++、逆向工程、DLL 调试、PE 文件分析 时,dumpbin 是一个极其重要但经常被低估的工具

本文将系统介绍:

  • dumpbin 是什么
  • 如何安装 & 使用
  • 常用参数详解
  • 如何导出 .data / .rdata / .text 等段信息
  • 实际使用场景(逆向 / 排错 / 构建分析)

适合:
Windows 开发者 / 逆向分析 / DLL 调试 / 系统工程师


一、dumpbin 是什么?

dumpbin.exeMicrosoft Visual Studio 自带的 PE/COFF 文件分析工具,主要用于:

  • 查看 EXE / DLL 的内部结构
  • 分析 导出函数 / 导入函数
  • 查看 段(Section)信息
  • 查看 符号表、重定位表
  • 判断 32 位 / 64 位、依赖库、入口点

本质上:

dumpbin = 官方版 PE 文件解析器


二、dumpbin 在哪里?如何使用?

1、 dumpbin 的位置

一般位于(以 VS2022 为例):

C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\<版本号>\bin\Hostx64\x64\dumpbin.exe

如果你不想每次敲全路径,推荐:

  • 使用 “x64 Native Tools Command Prompt for VS”
  • 或把该目录加入 PATH

2、 基本用法格式

dumpbin [选项] 文件名

例如:

dumpbin /headers test.dll
dumpbin /headers test.dll > fileName.txt,可以将结果导出到文本文件中

三、最常用的 dumpbin 参数(重点)

1、 /headers —— 查看 PE 头 & 段信息(最常用)

dumpbin /headers test.dll

你会看到:

  • PE 类型(PE32 / PE32+)
  • ImageBase
  • EntryPoint
  • Section 列表(.text / .data / .rdata / .reloc

示例输出片段:

SECTION HEADER #1
.text name
virtual size: 00023A10
raw data size: 00024000SECTION HEADER #2
.data name
virtual size: 00001234
raw data size: 00004000

判断 DLL 是否有 .data 段、大小是多少,首选这个命令


2、 /summary —— 快速查看各段大小(非常直观)

dumpbin /summary test.dll

输出示例:

Summary4000 .data
F000 .rdata
4000 .reloc
24000 .text

这个命令非常适合:

  • 快速判断是否有 .data
  • 估算代码 / 数据占比
  • 对比不同版本 DLL 的变化

3、 /exports —— 查看 DLL 导出函数

dumpbin /exports test.dll
# 可以将结果导出到文本文件中
dumpbin /exports test.dll > fileName.txt

你可以看到:

  • 导出函数名
  • 序号(ordinal)
  • RVA

常用于:

  • COM / DLL 接口分析
  • 判断是否是 C 接口 or C++ 接口
  • 配合 GetProcAddress

4、 /imports —— 查看依赖的 DLL & API

dumpbin /imports test.dll

输出示例:

KERNEL32.dllCreateFileWReadFileWriteFileADVAPI32.dllRegOpenKeyExW

非常适合:

  • 判断程序是否使用注册表
  • 是否涉及加密 / 文件 / 网络
  • 排查部署环境缺 DLL 的问题

5、 /dependents —— 快速查看依赖 DLL

dumpbin /dependents test.exe

/imports 更粗粒度,适合:

  • 判断缺不缺运行库
  • 快速定位启动失败原因

6、 /symbols —— 查看符号表(调试/逆向)

dumpbin /symbols test.obj

通常用于:

  • obj / lib 分析
  • 带调试符号的构建产物

四、如何“导出 .data 段”?(重点澄清)

错误做法(常见误区)

很多人会尝试:

dumpbin /rawdata:.data test.dll

然后得到错误:

LINK : fatal error LNK1117: 选项“rawdata:.data”中的语法错误

原因:

  • dumpbin 并不能直接“导出某个段的二进制内容”
  • /rawdata 只能用于查看,不是导出

正确思路

1、 用 dumpbin 确认 .data 段是否存在 & 大小

dumpbin /headers test.dll

记下:

  • .dataVirtualAddress
  • .dataSizeOfRawData

2、 用专业工具导出

推荐组合方案:

工具 用途
dumpbin 查看结构、偏移
PE-bear / CFF Explorer 可视化导出段
IDA / Ghidra 精确分析 data 符号
HxD / 010Editor 手工切段

dumpbin 的定位是“结构分析”,不是“数据导出”工具


五、典型实战场景

场景 1:逆向 DLL,确认是否有关键常量

dumpbin /summary target.dll

如果 .data / .rdata 很大:

高概率有 字符串、Key、表驱动数据


场景 2:排查 DLL 无法加载

dumpbin /dependents target.dll

看是不是缺 VC 运行库 / 第三方 DLL


场景 3:分析是否使用注册表 / 文件 / 网络

dumpbin /imports target.dll

搜索:

  • RegOpenKey
  • CreateFile
  • WinHttp
  • Crypt*

场景 4:判断 32 / 64 位不匹配

dumpbin /headers target.dll
  • PE32 → 32 位
  • PE32+ → 64 位
    在这里插入图片描述
http://www.jsqmd.com/news/92608/

相关文章:

  • 大萨达
  • C / C++ 调用 DLL 的几种常见方法
  • 为什么一定要做博客
  • 探秘开源CUDA库:从Thrust、CUB、cuBLAS汲取设计模式精髓
  • C / C++ 调用 DLL 的几种常见方法(详解 + 示例)
  • CUDA内核反汇编实战:用cuobjdump解锁SASS指令的奥秘
  • 2025专业的厂房降温企业TOP5权威推荐:靠谱制造商甄选指 - 工业品牌热点
  • 重庆GEOAI搜索推广哪个软件好
  • 2025年燃木壁炉生产厂家排行榜,靠谱的燃木壁炉厂家推荐 - 工业推荐榜
  • OptiScaler游戏画质优化工具深度解析
  • 2025年PP板水箱厂家年度推荐排行榜,看看哪家技术专业? - mypinpai
  • Android 屏幕参数的理解
  • Umami主题定制实战:从默认界面到个性化数据看板
  • 【保姆级教程】手把手教你开发第一个Web3全栈应用:从Solidity合约到React前端,这一篇就够了!
  • GraphRAG+DeepSearch实战:可解释可推理的智能问答系统完整实现与B端落地指南!
  • 2025年杭州AIGEO搜索引擎优化师服务机构排行榜,五大专 - myqiye
  • 详细介绍:docker安装MoneyPrinterTurbo,实现文本转视频的本地私有化部署
  • 【硬核深扒】彻底搞懂以太坊账户抽象(ERC-4337):告别助记词,Web3大规模落地的最后一块拼图 (为什么V神都在推?一文讲透“智能合约钱包”背后的技术原理与未来)
  • Express.js架构详解:从中间件机制到企业级应用实践
  • 为中小技术转移机构选择知识产权智能运营平台,需要关注哪些核心要点?
  • 基于SSM的一站式酒店管理系统
  • 【雅思】王陆听力语料库11.4
  • Actix Web架构详解:高性能Rust Web框架的设计哲学与核心机制
  • 11、深入了解 Linux 根文件系统
  • LangChain vs Dify:大模型应用开发工具选择指南,看完就会用!
  • 揭秘程序员的核心能力:为什么说技术架构只是冰山一角?深度解析程序员的真正竞争力!
  • 12、Linux系统关键组件与工具详解
  • 【OpenHarmony】轻量级公共基础库commonlibrary_utils_lite
  • 13、深入了解最小根文件系统与Yocto项目开发
  • 三个月告别CRUD!从Java开发到AI大模型工程师,我的极限转型攻略!