【问题标题】:Check if a file contains another file检查一个文件是否包含另一个文件
【发布时间】:2011-11-11 19:40:32
【问题描述】:

我说的是 Windows PE 文件。 有没有办法检查一个文件是否包含另一个文件? 我的意思是...如果我合并两个这样的程序会怎样

MZ header 1st program
PE header 1st program
.
.
. all the sections from 1st program
.
MZ header 2nd program
PE header 2nd program
.
.
. all the sections from 2nd program
.

到一个可运行的程序?当然,只有第一个会运行。

【问题讨论】:

  • 您想要一个在另一个二进制文件中搜索二进制文件的命令行工具吗?
  • 你的目标到底是什么?我想不出像这样合并两个可执行文件的合法(且不可疑)原因。
  • 我正在寻找 C/C++ 解决方案,需要它来完成关于恶意软件研究的学士论文。
  • @ere samuel 想要检测这样的文件而不是制作一个
  • @DavidHeffernan:我从来没有说过相反的说法;)我只是想知道在什么情况下您可能会遇到这样的合并文件以及问题的上下文。

标签: c++ windows file header portable-executable


【解决方案1】:

在您的情况下,您首先需要获取有关 PE 文件 (IMAGE_SECTION_HEADER) 的 last 部分的偏移量和大小信息。获得此信息后,您可以在(偏移量 + 大小)之后读取块,如果它与另一种 PE 格式(MZ 幻数)匹配,则 建议 附加了第二个文件到第一个。

【讨论】:

  • 谢谢,这很有帮助,但我遇到了一个问题 - 它适用于发布版本,而不是调试版本。这可能是什么原因?我还没有找到任何关于 PE Sections 之后的信息。我认为部分是在最后。会不会是一些调试数据?他们不应该在调试目录中吗?
  • 也可以是,不需要调试符号数据库,而是其他有助于调试的东西,或者完全不同的东西。它真的可以是任何东西......
猜你喜欢
  • 2012-06-03
  • 2021-08-31
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-24
  • 2015-05-30
  • 2015-10-11
相关资源
最近更新 更多