如何在运行时在程序创建的.sys文件上设置文件版本
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在运行时在程序创建的.sys文件上设置文件版本相关的知识,希望对你有一定的参考价值。
我希望我的c ++程序创建一个空的.sys驱动程序文件,并在Windows的文件详细信息中填充“文件版本”。该文件不需要其他任何内容,只需“文件版本”即可。我还希望能够更改文件版本或使用其他文件版本创建新文件。我正在使用另一个程序来读取此文件版本。我将如何去做呢?有没有一种简单的方法不涉及整个驱动程序的制作过程?
答案
好吧,我找不到设置文件版本的函数,只能获取。我最终创建了一个hello world驱动程序,并使用Jesper链接的方法(都是预处理程序)设置了该文件的文件版本。这将编译具有版本号的.sys。
我分析了.sys文件,发现了几个带有版本信息的位置。一种是DWORD little-endian,这是Windows抓取的文件详细信息。另一个非常接近它,以字符串形式存储。我不确定我要与哪个程序交互,因此我要同时更改两者。更改字符串版本不会更改文件详细信息中的文件版本。 .sys文件似乎具有敏感的文件结构。如果您更改了与文件版本无关的内容,则Windows将不再为该版本正确解析文件。
Here are the bits I changed.因为我正在测试,所以字符串版本增加了一个。
以上是关于如何在运行时在程序创建的.sys文件上设置文件版本的主要内容,如果未能解决你的问题,请参考以下文章