问题标签 [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 回答
4116 浏览

windows - PE目录名称

我正在研究 PE 解剖器,遇到了一些相当不寻常的东西。PE 格式中目录的名称和顺序似乎因您查看的位置而异:

来自PEReader (perdr)

PEInfo 中(更正为 0-base):

CFF 资源管理器中:

来自WINE 的 winnt.h

在这里,它们是一张桌子:

这些的编号和顺序似乎不正确匹配。在 PEReader 和 winnt.h 中,条目 14 是 COM 描述符,但在 CFF Explorer 中显示为 .NET 元数据。COM 和延迟导入条目似乎也被切换了。

这些工具中的一些会出错,这似乎很奇怪。哪一个是正确的?我错过了一个更新的定义吗?

0 投票
1 回答
366 浏览

c - 从目标文件中提取单个过程?

我有一个 64 位 COFF 目标文件(没有源代码或调试信息),我需要从中提取单个过程。

该过程相对较短,其唯一依赖项是:

  1. 一个全局变量。
  2. 几个导入的程序。

我已经尝试过拆卸和重新组装代码;然而,出于某种奇怪的原因,即使代码在调试器和反汇编器中看起来相同,但它的行为方式并不相同。(我已经尝试确保可执行部分具有正确的标志等,但据我所知,所有这些都是正确的,并且这些值也与它们在运行时“应该”的值相匹配。)

那么有没有办法直接将函数复制到新的目标文件(或删除该函数之外的所有内容),而无需在此过程中反汇编和重新组装代码?

0 投票
1 回答
820 浏览

assembly - 与 NASM 进行近距离相对调用

我想从另一个目标文件中对函数进行近距离相对调用:

不幸的是,上面的代码不起作用。我需要加载_func到寄存器中:

这两个文件都编译为 COFF 目标文件。有没有办法在不将函数地址加载到寄存器中的情况下进行近距离相对调用?

0 投票
2 回答
494 浏览

visual-c++ - 任何库来操作 COFF 文件?

是否有任何允许读取、修改和写入 COFF 文件的库?

0 投票
1 回答
4152 浏览

c# - 编译时出现“Microsoft 资源文件到 COFF 对象转换实用程序已停止工作”错误

由于我不知道的原因,我最近在编译我的 C# 应用程序时遇到了一个错误,它只是声明

Microsoft Resource File to COFF Object Conversion Utility has stopped working”。

在错误列表中,总是出现一个错误说

'[project folder]\obj\x86\Debug\CSC[random number].tmp' is not a valid Win32 resource file”。

在过去的一个小时里,我一直在用谷歌搜索这个问题,而任何人想出的唯一实际解决方案就是sfc /scannow在提升的命令提示符下运行。好吧,它对我来说没有发现任何损坏,而且这里似乎没有任何问题。我希望有人能给我一个解决这个问题的方法。

0 投票
1 回答
517 浏览

coff - Microsoft Visual C 2010 Express:转换为 COFF 时失败:文件

当我想制作构建解决方案时,我收到以下错误。

LINK:致命错误 LNK1123:转换为 COFF 时失败:文件无效或损坏

0 投票
4 回答
2748 浏览

windows - PE 文件格式 - 节表和第一节之间是什么?

在十六进制编辑器中查看 PE 文件时,我经常在节表和第一节之间遇到一些字节,这对我来说真的没有意义。就我而言,应该有一个 00 字节的填充以适应对齐方式。但是,这是一个截屏,展示了相反的情况:

事实证明,突出显示的块几乎是绑定导入表。但我仍然很困惑。为什么此表不在一个部分中?总是这样还是只是某个编译器/链接器的规范?我没有找到有关此特定问题的任何文档。关于这个主题的所有内容基本上都说:

  1. DOS MZ 标头
  2. DOS存根
  3. PE头
  4. 截面表
  5. 第 1 节
  6. 第 2 节
  7. 第 3 节

... 等等

在我遇到这个问题之前,我什至不知道这些部分之外可能有一些东西(当然,除了我上面列出的那些)。

[编辑]

概念证明(因为 Mox 不相信我):

主PE

0 投票
2 回答
3702 浏览

windows - 非常简单的程序中来自 MASM32 的“致命错误 LNK1561:必须定义入口点”错误

固定的; 这是固定代码(不做任何事情并崩溃,但它会组装,这就是重点):

我还发现我必须将/c开关与 ml 一起使用,然后与/SUBSYSTEM:CONSOLE.


刚刚重新发现了 x86 程序集和 MASM32,并且让自己重新熟悉了基础知识。因此,我编写了一个简短而毫无意义的程序,以查看是否可以组装任何东西:

我跑了ml /coff test.asm,得到了这个输出:

我在网上看到 START 是入口点的名称。我做错了还是这是一个不同的问题?

提前致谢!

0 投票
3 回答
10105 浏览

c - 如何从 C 中检查目标文件是 COFF 还是 ELF 格式?

我希望能够从我的 C 代码中检查目标文件的格式,以便我可以根据文件是 COFF 还是 ELF 格式使用不同的函数来读取文件。

这可能吗,如果可以,我该怎么做?

顺便说一句,这是在 Linux 中,如果这有什么不同的话。

0 投票
1 回答
468 浏览

visual-c++ - 如何从使用 /GL 选项编译的 obj 文件制作 COFF?

我有一个用一些旧版本的 MSVC 构建的 3d 方静态库,我成功地将它链接到我在 MSVC10 (VisualStudio2010) 中的应用程序。现在我升级到 MSVC11,我无法链接它:

2>链接:致命错误C1047:对象或库文件'MyLib.lib'是用比其他对象更旧的编译器创建的;重建旧对象和库

我猜这是因为 lib 是使用 /GL 选项编译的,所以目标文件实际上并不包含 COFF,而是一些中间格式。我没有要重新编译的库源代码,我不想用它制作一个 dll 来动态链接。

有没有办法——也许是一些未记录的技巧——将这些 obj 的“重新编译”到 COFF 并最终将它们链接到 MSVC11 应用程序?