问题标签 [coff]

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 回答
1809 浏览

coff - 在 COFF 文件格式中,重定位信息部分的意义是什么?

我正在阅读 COFF 文件格式,它通常用于创建可执行文件格式(它也有一些变体)。

在阅读时,我遇到了格式的重定位部分。此重定位部分如何用于创建可执行文件。

如果您向我指出一些对我有帮助的链接,那将非常有用。

0 投票
2 回答
1117 浏览

java - 在 Java 中:在给定 COFF/ELF/DWARF 可执行文件的情况下,以编程方式确定 C/C++ 变量的地址

这是我时不时遇到的情况:

对于不使用虚拟寻址的嵌入式系统,我有一个从 C 或 C++ 代码编译的可执行文件,其中包含调试信息。它通常采用 COFF 或 ELF/DWARF(我把这两种混淆)格式。

在运行时,在 PC 上,我想确定给定名称的变量的地址。(例如“foo.bar[7].baz”)这允许我在嵌入式系统上读/写变量的值(给定一个超出此问题范围的调试协议)。显然,任何基于堆栈或基于堆的变量都不存在,因为它们没有静态地址。

我之前已经在 C++ 中完成了这项工作,以从 TI 的编译器为他们的 2800 系列 DSP 解析 COFF 文件,这有点痛苦。我想知道那里是否已经有一个 Java 库可以做这种事情,因为我面临着同样的事情与一个或两个其他处理器的可执行文件。


更新:(2009 年 11 月 18 日)一个有希望的线索!

有没有人使用过 Eclipse CDT ELF 解析器?

(参见http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.cdt.doc.isv/reference/api/org/eclipse/cdt/core/model/IBinary.html之一javadoc pgs 的)

TI 的 Code Composer 4(基于 Eclipse)似乎使用了这个,所以如果我能弄清楚文档在哪里,也许我可以用它来解决我的问题。

0 投票
1 回答
10865 浏览

visual-c++ - OMF 和 COFF 格式有什么区别?

最近我一直在维护一个用 VC++ 6.0 编写的遗留项目。该代码使用了该编译器的许多独特特性,因此将其移植到更新的标准编译器已被证明是一项艰巨的任务。

在项目的数千行代码中,有四个汇编文件。出于某种原因,我不明白,MASM615 和 TASM 也无法编译它们(它们会发送错误),但我有目标文件。但是,当我链接库时,我收到一条消息

警告 LNK4033:将对象格式从 OMF 转换为 COFF

该库按预期工作,但我一直想知道这些二进制格式之间有什么区别,或者我是否应该期望这种转​​换会产生一些丑陋的东西。

0 投票
1 回答
1254 浏览

.net - .NET 库来访问 PE 标头

为了自动化一些任务,我正在寻找一个库,它可以让我读取和操作(添加/重命名/删除部分,...)来自 .NET 应用程序的 PE 标头。
如果可能的话,我宁愿使用可以在没有源代码的情况下重新分发的东西,而且我对商业解决方案持开放态度,只要它们是免版税且不需要嵌入 licx 的。
64位不是必需的,但将不胜感激。
首选 100% 托管解决方案。

编辑:我想澄清一下,我对读取/编辑文件的 .NET 元数据的方法不感兴趣,但对 PE 标头本身不感兴趣。

0 投票
1 回答
1379 浏览

visual-studio-2005 - 使用 VS 2005 编译时,如何使用 dumpbin /symbols 获取源文件信息?

我有一个工具,它使用 dumpbin /symbols 的输出对我们的 C/C++ 库进行一些依赖性分析。当我们使用 VS 6.0 编译库时,dumpbin COFF SYMBOL TABLE 包含如下条目

让我得到源和定义/使用的符号之间的关系,这对我的工具来说是必不可少的。当我们用 VS 2005 编译时,这些条目都不见了。当我用十六进制编辑器查看库时,似乎二进制文件中根本没有文件名信息,所以这似乎不是一个愚蠢的问题,而是与编译有关。因此,我正在寻找一种在使用 VS 2005 编译时将文件名条目恢复到我的库中的方法。


谢谢斯科特。

调试帮助 API 看起来很有趣,但我还没有弄清楚如何获得我能够从 COFF 中提取的相同信息,即。对于每个符号

  1. 定义它的源文件
  2. 以及使用符号的源文件列表

对此有任何指示吗?

0 投票
2 回答
24814 浏览

c++ - COMDAT 部分的用途是什么?

我看到 /Gy 选项,想知道为什么要使用它?http://msdn.microsoft.com/en-us/library/xsa71f43.aspx

0 投票
4 回答
17660 浏览

windows - Linux 上的 COFF 或 Windows 上的 ELF

是否可以在 UNIX 上运行 COFF 可执行文件或在 Windows 上运行 ELF 可执行文件?在 Windows 和 UNIX 上运行这两种文件类型的步骤是什么。我只是好奇。

0 投票
5 回答
2437 浏览

java - PE 标头要求

PE文件(PE/COFF)的要求是什么?应该设置哪些字段,哪个值,使其能够在 Windows 上“运行”(即执行“ret”指令然后关闭,没有错误)。

我首先要构建的库是链接器:现在,我遇到的问题是 PE 文件 (PE/COFF)。我不知道 PE 文件在我的平台上实际执行之前“需要”什么。我的测试平台是Vista。当我通过双击执行它时,我收到一条错误消息,说“这不是一个有效的 Win32 可执行文件。 ”我收到“拒绝访问”。使用 CLI cmd执行它时。我有两个部分,.text 和.data。

我已经实现了几个在线文档(即 MSDN 和其他一些第三方文档)提供的 PE 标头。如果我使用十六进制编辑器,它看起来几乎就像一个普通的 PE 文件。我不使用任何导入、IAT 和 PE 标头中的任何目录。

编辑:我的 Windows 说,我添加了一个导入表,但仍然不是有效的 .exe 文件。我尝试使用最小的 PE 文件指南中也提到的值。没运气。真的,我似乎无法弄清楚的唯一一件事是什么是必需的,什么不是。一些指南告诉我一切都是必需的,而另一些指南则说贬低:它可以为零。

我希望这是足够的信息。先感谢您。


当前 PE 标头的原始数据(按要求):

0 投票
3 回答
2913 浏览

linux - 有没有人能够创建 PE COFF 和 ELF 的混合体?

我的意思是单个二进制文件可以在 Win32 和 Linux i386 中运行吗?

0 投票
2 回答
6347 浏览

windows - 有哪些 COFF(windows .obj 对象文件)查看器可用?

我只知道2: