二进制序列化文件 - Delphi

发布于 2024-09-27 09:46:58 字数 110 浏览 3 评论 0原文

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

您将采取什么步骤来解决这个问题?有什么工具之类的吗?

I am trying to deserialize an old file format that was serialized in Delphi, it uses binary seralization. I know nothing about the structure of the file except some very high level records that are in it.

What steps would you take to solve this problem? Any tools etc?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

浊酒尽余欢 2024-10-04 09:46:58

一个优秀的十六进制编辑器,并使用灰质来识别结构。

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

运行 unix/Linux“文件”命令也不错 (*) 请参阅下面 Barry 的评论了解其工作原理。它可以快速检查使用不同扩展名隐藏的常见文件类型,如 DBF、ZIP 等。

(*) 有适用于 Windows 的第 3 方版本,但它们可能在版本上滞后。如果您可以在最新的 *nix 发行版上执行此操作,建议您这样做。

A good hexeditor, and use the gray matter to identify structures.

If you get a hint what kind of file it is, you can search for more specialized tools.

Running the unix/Linux "file" command can be good too (*) See Barry's comment below for how it works. It can be a quick check for common filetypes like DBF,ZIP etc hidden by using a different extension.

(*) there are 3rd party builds for windows, but they might lag in versions. If you can do it on a recent *nix distro, it is advised to do so.

单挑你×的.吻 2024-10-04 09:46:58

序列化过程只是循环所有已发布的属性并将它们的值流式传输到文本文件。如果您不知道流式传输到文件的确切类,您将很难反序列化该文件。 (如果不是不可能的话)

The serialization process simply loops over all published properties and streams their value to a text file. If you do not know the exact classes that were streamed to the file you will have a very hard time deserializing the file. (if not impossible)

凤舞天涯 2024-10-04 09:46:58

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

A good hex editor is first. If the file is read without buffering (eg read directly from a TFileStream) you could gain some information when using ProcMon from SysInternals; You can see exactly what data is read in what chunks and thus determine more quickly where the boundaries are between the structures you already identified.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文