我二进制文件。我不知道它是如何格式化,我只知道它来自德尔福码。

不存在任何方式,以分析二进制文件?

不存在任何"模式"来分析和deserialize的二进制的内容的文件与未知的格式?

有帮助吗?

解决方案

试试这些:

  1. 反序列化数据:分析如何编译您的exe(尝试文件分析器)。尝试使用发现的语言反序列化二进制数据。然后以xml格式(语言独立)将其序列化,使每种编程语言都能理解
  2. 分析二进制数据:尝试保存文件的各种版本,几乎没有变化,并使用diff程序使用十六进制编辑器分析每个位的含义。将它与二进制黑客技术结合使用(如如何破解Frans Faase的二进制文件格式
  3. 反向设计应用程序:尝试使用反向工程工具获取用于构建应用程序的编程语言的代码(使用文件分析器)。否则使用反汇编分析工具,如 IDA Pro Disassembler

其他提示

我的业余项目,我不得不反向工程一些旧的游戏文件。我的方法是:

  • 有一个良好的hex编辑器。
  • 寻找可读的话,在二进制文件。注意他们的分布。如果它们之间的距离不断你知道这是一个清单。
  • 看看2-3随之零。可能表示一个int32值。
  • 一些双字可能是指成文件。
  • 尝试找出重复的模式在文件中。
  • 看到很多C0-CF可能表明游程压缩的数据。

当您对二进制文件有所了解时,对二进制文件进行逆向工程是一个非常耗时的过程。如果你不知道它是什么,那就更难了。

虽然有可能,但你必须有充分的理由这样做。

第一步是在您选择的十六进制编辑器中打开它,看看是否可以找到任何英文文本,指向文件甚至应该表示的方向。从那里,谷歌“逆向工程二进制文件”,有比我更有知识的人写了关于它的指南。

“字符串”来自GNU binutils的程序非常有用。它会在文件中打印可打印字符的字符串,通常会给出文件包含的内容或程序的线索。

如果数据代表序列化的Delphi对象,您应该开始阅读有关Delphi序列化过程的内容。如果是这种情况,我认为您最好的选择是使用Delphi加载它并继续从IDE进行分析。关于Delphi序列化的一些信息可以在这里找到。

编辑:如果文件确实包含序列化的delphi对象,那么你应该编写一个加载它的小型delphi程序,然后“转换”。数据本身就像xml一样中性。如果你设法这样做,你应该检查并查看delphi是否支持序列化为xml。然后,您可以从任何语言访问这些对象。

我开发了 Hexinator (Window& Linux)和 Synalyze It!(macOS)正是出于此目的。这些应用程序允许您像在其他十六进制编辑器中一样查看二进制文件,但另外您可以创建一个“语法”。具有二进制文件格式的细节。语法包含所有构建块,用于自动解析文件。

因此,您可以保留分析中获得的知识,并将其同时应用于多个文件。您还可以对文件格式的各个部分进行颜色编码,以便在十六进制编辑器中快速浏览。 解析结果显示在树形视图中,您还可以在其中轻松修改文件(应用endianness等等)。

unix“文件”命令非常有用 - 我不知道在Windows中是否有类似的东西。你这样运行:

file myfile.ext

它根据其中包含的幻数和数据吐出文字说明。

可能它包含在 cygwin 中。

如果你有机应用程序,造成文件,可以应用的变化给应用程序,然后将文件保存和看到的影响(记住,数字可能存在 little endian):

  • 首先创造的文件的重复。如果文件不是二进制等,目前日期/时间是可能存在的区域,那里兴田差异的发生。
  • 也许你想重申,与运行的软件在不同的环境中,看到如果操作系统版本,等等,是保存,但这是相当不寻常。
  • 下次你可以试着改变的单变量以及创建多个文件,只有在不同的价值这一变量。这可以帮助你确定这个变量储存。
  • 这样还可以排除的变量,不存在文件:如果你改变它们,但这些文件创造完全相同,他们没有被存储。

为了测试的假设你的工作与上述步骤,编辑的文件之一,具有应用程序的读它。

如果你没有获得应用程序本身,我建议您忘记这一点,并找到另一种方式来解决您的问题。有一个很高的概率,它会更快...

如果 file 没有给出有意义的答案,您可能想尝试 TRiD 确定您的数据是否以已知格式存储。

你知道使用它的程序吗?如果是这样,你可以挂钩程序写入文件函数,并了解它的写入数据,数据大小和位置。

更多信息: http://www.codeproject.com/KB/DLL/ Win32APIHooking_Trouble.aspx

获取Delphi应用程序并在 IDA Pro免费软件版本中打开它,并找到它写入文件的位置,并解码它以何种方式写入文件。

除非是计划文本。

与仅显示文件的原始十六进制字节的传统十六进制编辑器不同,010 Editor还可以使用二进制模板将文件解析为层次结构。运行二进制模板的结果比仅使用原始十六进制字节更容易理解和编辑。

http://www.sweetscape.com/010editor/

尝试在十六进制编辑器中打开它并进行分析。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top