【问题标题】:Grabbing windows file information抓取windows文件信息
【发布时间】:2010-05-05 14:19:48
【问题描述】:

在这篇文章 (http://blogs.msdn.com/oldnewthing/archive/2006/12/21/1340571.aspx) 之后的 C 中,我们已经成功地从 windows 文件中获取文件版本信息,但是有些文件似乎有不同的机制来存储版本信息,但没有解决在文章中,想知道是否有人在这里有任何想法。

文件的一个示例是 system32/oledlg.dll。逐字节遍历文件,我们来到了一个应该存储版本信息的块:

F^@i^@l^@e^@V^@e^@r^@s^@i^@o^@n^@^@^@^@^1.0 (x^@p^@s^@p^@.^@0^@8^@0^@4^@1^@3
^@-^@2^@1^@0^@8^@)^@^@^@^@^@.^@^G^@^A^@I^@n^@t^@e^@r^@n^@a^@l^@N^@a^@m^@e

我们可以看到是 1.0。但是,当您在 windows 中查看文件信息时,版本实际上是 5.1.2600.5512。本文中的方法适用于大多数文件,但我遇到了一些遇到上述问题的实例。有人对此有经验吗?我只能访问标准 C。

根据评论中发布的后续文章,这是否意味着无法从文件信息块损坏的文件中获取实际文件版本?

我还应该补充一点,我正在从 windows 框中获取文件,然后在 linux 上使用 C 程序检查它们以获取文件信息。

【问题讨论】:

标签: c file filesystems


【解决方案1】:

事实证明,该文件的错误信息用于获取版本,实际上不需要文件版本块,而是“VS_VERSION_INFO”块。

【讨论】:

    猜你喜欢
    • 2016-05-23
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多