You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在带-g编译的x86-64架构C目标文件中查找指定字符串?

从x86-64带调试信息的C目标文件中查找指定字符串的方法

你正在练习逆向工程C目标文件,现有一段C代码生成的、编译时添加了-g调试选项的x86-64目标文件,要从中找到text_to_compare字符串,可以用以下几种直接的方法:

方法1:使用strings命令快速过滤

strings工具可以直接提取二进制文件中的可打印字符串,结合grep精准定位目标:

strings your_target_file.o | grep "text_to_compare"

执行后会直接输出包含目标字符串的行,快速确认它的存在。

方法2:用objdump查看只读数据段

目标字符串会被存放在只读数据段(.rodata),用objdump解析该段内容:

objdump -s -j .rodata your_target_file.o
  • -s:显示指定段的内容(十六进制+ASCII格式)
  • -j .rodata:指定仅查看只读数据段

输出结果里能直接看到text_to_compare的ASCII内容和对应的十六进制偏移。

由于编译时加了-g调试选项,也可以通过调试信息定位:

objdump -g your_target_file.o | grep "text_to_compare"

调试信息中会关联字符串的符号信息,同样能快速定位。

方法3:用readelf解析ELF字符串表

x86-64目标文件属于ELF格式,readelf可以直接打印只读数据段的字符串内容:

readelf -p .rodata your_target_file.o

-p参数会以易读的格式输出指定段的字符串,直接就能找到text_to_compare。

内容的提问来源于stack exchange,提问作者Said Hamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 08:05:29