问题标签 [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 投票
3 回答
789 浏览

disassembly - 大端 && 小端?

谁能告诉我这句话是什么意思:

“指定目标文件的字节序。这只影响反汇编。这在反汇编不描述字节序信息的文件格式时很有用,例如 S-records。“

0 投票
1 回答
57449 浏览

windows - 如何使用/安装 GNU binutils (objdump)

我需要在 Windows 上运行的应用程序中使用 objdump 和 readelf 命令。我知道我可以安装 cygwin 来使用它们。我不想使用 cygwin 的原因是因为我想让它随笔进行部署。另外,我不知道如何进行 cygwin 的静默安装。因此,我相信我需要的是GNU Utilities For Win32,因为链接指出这些库是无服务器的。“可执行文件仅依赖于 Microsoft C 运行时 (msvcrt.dll),而不依赖于 Cygwin 工具提供的模拟层”

无论如何,一旦我转到该链接,我不知道如何安装它。具体来说,我想使用>这个工具<

如果有人能指出我将如何在我的应用程序中使用 objdump 和 readelf(cygwin 中的 binutils)的正确方向,我将不胜感激。

0 投票
1 回答
227 浏览

c++ - 为什么我的程序的 objdump -D 看起来与 .S 不同

我正在为我的 C++ 学习工具链并尝试使用 objdump。

来自 objdump 的反汇编文件甚至没有“Hello World”这个词。这是为什么?一点都不可靠吗?

0 投票
2 回答
375 浏览

arm - 反汇编时如何分离ARM指令和数据

我正在编写/(使用 binutils)一段代码来手动反汇编 thumb2(16 位和 32 位)指令。我在区分真正的 ARM 指令和 DATA 部分时遇到了问题。

最大的问题是指令不是字对齐的。所以当我尝试阅读 32 位指令时,很多时候它实际上与下一条指令重叠。

请提供任何帮助。

谢谢,VJ

0 投票
2 回答
9578 浏览

linux - 目标文件的 objdump 输出中的标志

在某个目标文件上有 objdump 的输出:

这些标志 CONTENTS、ALLOC、LOAD 等是什么意思?

0 投票
2 回答
4305 浏览

c++ - output objdump -t 的输出中的“.hidden”是什么意思?

例子:

0 投票
2 回答
2678 浏览

assembly - objdump 使用的反汇编库

我正在寻找一个执行二进制代码反汇编的库。

我发现 libdisasm 执行的任务与我想要的完全相同。但是,我发现一些链接表明 libdisasm 不适用于 64 位可执行文件。这是对的吗 ?

但是 objdump 对 64 位可执行文件的输出是可靠的(据我所知)。那么,objdump 是否也使用类似的库进行反汇编?最初,我认为 objdump 使用 libdisasm。

0 投票
2 回答
8316 浏览

linux - ldd 和 objdump 有什么区别?

我正在运行这两个命令,并且得到不同的输出:

进而

那是怎么回事?我以为他们都给了库依赖项?我关心的原因是我怀疑ldd是正确的,但我正在ARM上的linux上工作,我可以告诉我没有ldd......

0 投票
1 回答
256 浏览

mips - 将共享对象中的二进制函数替换为自定义函数(在 MIPSEL 下)

我试图打破我的一个具有 MIPSEL 核心(小端 MIPS)的设备。我主要想这样做是因为它附带的软件有点损坏并且无法按预期工作(制造商不会帮助我,因为我每月不购买数千台)。

这个设备有一个 telnet 控制台,我已经有一个固件升级,它修改了一个具有可重定位代码的共享对象(一个 .so 文件)。我知道有一个函数被调用。所以当我访问这个设备的某个功能并且我已经完成了一个二进制文件来修改 /etc/passwd 以便我可以远程登录(这可以在我手动刷新我的自定义后完成固件自己)。

我已经“objdump”了这两个文件并且对这两个文件都进行了反汇编。

我的问题是:

如何用我的自定义函数替换原始库中的给定函数,以便我可以在盒子上运行我的代码?我知道 objcopy 可以工作,但是很难获得关于它的文档来实现这一点。

我想做的有点像病毒,虽然我不想分发它也不想闯入其他人的设备(顺便说一句,我所说的这个设备非常罕见)。

更新

我手动合并了二进制文件,“二进制”复制了我的自定义函数,然后手动更改了重定位文字。我注意只使用已经链接到原始共享对象的外部函数。但是,我将自己锁定在设备之外,因为我修改了一个(奇怪地)在设备启动时使用的函数,而主二进制文件的弱点让我更新它停止工作。

0 投票
3 回答
47895 浏览

c - 分析 ELF 部分和符号大小的工具

我需要一种方法来分析 ARM 的 GCC 编译器的输出文件。我正在为裸机编译,我非常关心大小。我可以使用arm-none-eabi-objdump交叉编译器提供的工具,但如果存在用于此任务的工具,我不会急于解析输出。你知道这样的工具存在吗?我的搜索结果没有结果。

还有一件事,我自己代码中的每个函数都在自己的部分中。