代码之家  ›  专栏  ›  技术社区  ›  kyndigs

二进制序列化文件-Delphi

  •  2
  • kyndigs  · 技术社区  · 14 年前

    我试图反序列化一个在Delphi中序列化的旧文件格式,它使用二进制序列化。除了文件中的一些非常高级别的记录之外,我对文件的结构一无所知。

    你会采取什么步骤来解决这个问题?有什么工具吗?

    3 回复  |  直到 14 年前
        1
  •  3
  •   Marco van de Voort    14 年前

    一个好的十六进制编辑器,并利用灰度来识别结构。

    如果您得到一个提示,它是什么类型的文件,您可以搜索更专业的工具。

    运行unix/linux“file”命令也很好(*)请参阅下面巴里的注释了解它的工作原理。它可以快速检查使用不同扩展名隐藏的常见文件类型,如dbf、zip等。

    (*)有Windows的第三方版本,但它们的版本可能会滞后。如果你能在最近的尼克斯发行版上这样做,建议这样做。

        2
  •  2
  •   Birger    14 年前

    序列化过程简单地循环所有已发布的属性,并将其值流式传输到文本文件。如果您不知道流到文件的确切类,则反序列化文件将非常困难。(如果不是不可能的话)

        3
  •  1
  •   Ritsaert Hornstra    14 年前

    首先是一个好的十六进制编辑器。如果在没有缓冲的情况下读取文件(例如直接从tfilestream读取),则在使用sysinternals中的procmon时,您可以获得一些信息;您可以准确地看到哪些数据是以哪些块读取的,从而更快地确定已标识结构之间的边界。

    推荐文章