问题标签 [objdump]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
661 浏览

c++ - C/C++ 内存占用,每个源文件

在 C 编程中,有没有办法确定单个源代码文件对最终内存占用的贡献是多少?

让我们假设一个由源文件test1.ctest2.ctest3.c等组成的简单 C 程序。环境是 Linux 和编译器gcc

使用objdumpreadelf可以看到总占用空间以及二进制文件如何分布在.text.data.bss段中。但是是否可以查看每个test1.c生成多少二进制代码,每个test2.c生成多少等?

0 投票
2 回答
5833 浏览

visual-studio - objdump ELF 和 Windows

我对这个主题相当陌生,即 ELF 和任何与 Linux 相关的东西。我正在尝试编写一个 ELF 文件,并且希望在 WinXP 上进行。

我的问题是,这可以用包括编译的 MS Visual Studio 来完成吗?据我了解,ELF 文件无法在 Windows 操作系统上编译。好吧,至少这是我的谷歌研究发现的。我必须设置 Linux 操作系统并在那里编译吗?

我可以使用 objdumo(GNU binutils 的一部分)来分析 WindowsXP 上的任何 ELF 文件吗?

非常感谢任何帮助和链接。

0 投票
1 回答
8983 浏览

c - 如何让 objdump -D 在 Windows 中只显示特定功能?

我想显示特定功能的机器代码。例如,在 Linux 中,我会输入:

Windows 中的等价物是什么?

0 投票
4 回答
72312 浏览

linux - 将 objdump 用于 ARM 架构:反汇编为 ARM

我有一个目标文件,正在尝试反汇编它。当我使用:

我得到一个文件格式为elf64-x86-64.

我想把它拆成ARM,我该怎么做呢?

0 投票
1 回答
1714 浏览

c - 如何查找外部函数定义

我正在编译一个大项目。这个项目正在使用共享库,尤其是 lapack 的。

对于给定的函数,我想确定系统在哪个共享库中找到它。

这里的 nm 输出:

正如预期的那样, dpotrf_ 是未定义的。

这是 objdump 的结果:

所以objdump找点东西!是否有任何选项可以显示它在哪个共享库中找到它?或者另一个程序来做到这一点?

0 投票
2 回答
4108 浏览

c - 使用 Objdump 的结果构建控制流图

我正在尝试构建通过调用 objdump -d 返回的装配结果的控制流图。目前我想出的最好的方法是将结果的每一行放入一个链表中,并将每一行的内存地址、操作码和操作数分开。我依靠 objdump 结果的常规性质将它们分开(内存地址是代表每一行的字符串中的字符 2 到字符 7)。

完成此操作后,我将启动实际的 CFG 指令。CFG 中的每个节点都拥有一个起始和结束内存地址、一个指向前一个基本块的指针以及指向任何子基本块的指针。然后,我将检查 objdump 结果并将操作码与 x86_64 中所有控制流操作码的数组进行比较。如果操作码是控制流,我将地址记录为基本块的结尾,并根据操作码添加两个子指针(条件操作码)或一个(调用或返回)。

我正在用 C 语言实现它,它似乎可以工作,但感觉非常脆弱。有没有人有任何建议,或者我没有考虑到的任何事情?

感谢您抽时间阅读!

编辑:

这个想法是使用它来比较 DynamoRIO 生成的系统调用的堆栈跟踪与目标二进制文件的预期 CFG,我希望像这样构建它会促进这一点。我没有重新使用可用的东西,因为 A) 我并没有真正考虑过它和 B) 我需要将图表转换为可用的数据结构,以便我可以进行路径比较。我将查看您所排的页面上的一些实用程序,感谢您为我指明了正确的方向。感谢您的评论,我真的很感激!

0 投票
8 回答
35851 浏览

linux - 如何反汇编、修改然后重新组装 Linux 可执行文件?

无论如何这可以做到吗?我使用了 objdump ,但这不会产生我所知道的任何汇编程序都可以接受的汇编输出。我希望能够更改可执行文件中的指令,然后再对其进行测试。

0 投票
1 回答
1238 浏览

assembly - 使用 objdump 时确定寄存器值

所以我正在尝试使用 objdump 实用程序从程序集中构建控制流图,但我遇到了问题。基本上,每当发生分支并且目标地址是相对的时,我不确定如何知道下一个基本块从哪里开始。我不确定我是否清楚,所以我将添加一个示例。假设我的程序正在通过 objdump 输出,并记录了第一个基本块的起始地址。然后它会执行一个跳转命令,该命令使用相对寻址来指向要跳转到的正确地址。我知道我的第一个基本块的结束就在那儿,但是我如何为下一个基本块的开始获取正确的地址?任何人都可以提供任何指导将不胜感激,我充其量只是一个 x86 新手,过去一周我一直在努力解决这个问题。

0 投票
2 回答
2622 浏览

c - 调用图如何解析函数指针?

我正在使用 perl 脚本为 C 实现调用图程序。我想知道如何使用“objdump”的输出来解析函数指针的调用图?不同的调用图应用程序如何解析函数指针?函数指针是在运行时解析还是可以静态完成?

编辑 调用图如何解决程序静态评估中的循环?

0 投票
2 回答
4299 浏览

python - 解析 objdump 输出

我想知道这里是否有人编写/使用了解析输出objdump并从中提取操作码的脚本?我有一个非常非常简单的实现,但我正在寻找更好的东西。

我面临的这个脚本的问题很简单,它只进行简单的字符串解析;这更像是一个实用程序脚本,这就是我没有为这些编写测试的原因。我想知道是否可以通过编写定制的解析器或简单而有效的正则表达式来完成同样的工作。

此查询是出于学习的目的,以便我下次可以(希望)以更好的方式解决此类问题。

我不介意实现的细节(shell、ruby、python、perl;任何事情都可以)。代码甚至没有那么重要,真的,我想要一些关于你将如何做的提示。