如何解决解析`objdump -dj .text <binary>` 结果
我有一组 ELF 格式的二进制文件。我正在尝试检索源代码并将其与程序集进行比较,以便更好地了解编译过程。
现在我可以基于伟大的解决方案 here 反汇编 ELF,它使用以下命令
objdump -dj .text <binary>
并输出看起来像的东西
00000000004035ed <version_etc>:
4035ed: 48 81 ec d8 00 00 00 sub $0xd8,%rsp
4035f4: 4c 89 44 24 40 mov %r8,0x40(%rsp)
4035f9: 4c 89 4c 24 48 mov %r9,0x48(%rsp)
4035fe: 84 c0 test %al,%al
403600: 74 37 je 403639 <version_etc+0x4c>
403602: 0f 29 44 24 50 movaps %xmm0,0x50(%rsp)
403607: 0f 29 4c 24 60 movaps %xmm1,0x60(%rsp)
40360c: 0f 29 54 24 70 movaps %xmm2,0x70(%rsp)
403611: 0f 29 9c 24 80 00 00 movaps %xmm3,0x80(%rsp)
...
因此我将尝试检索源代码树中的 version_etc.c
文件并将其与此程序集片段进行比较。
我知道前两列和后两列之间有一些对应关系。但是,我对前两列不太感兴趣。
我想知道是否有任何工具可以帮助我将最后两列提取为字符串并将其与标题配对(在示例中为 version_etc
)。>
我知道我可以简单地编写一个使用正则表达式或类似的脚本来做到这一点,但这很容易出错(极端情况等),如果我能用一些更有原则的方法来做就太好了这个提取。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。