C++ 如何使用旧版驱动程序中的PE头在用户修改后获得原始文件类型

C++ 如何使用旧版驱动程序中的PE头在用户修改后获得原始文件类型,c++,c,driver,portable-executable,C++,C,Driver,Portable Executable,我开发了一个遗留驱动程序,允许并阻止特定文件从硬盘传输到外部设备。这个很好用 我面临的问题是,在这里,用户可以修改文件名和文件类型 如何查找用户修改的原始文件类型和文件名 是否可以使用可移植可执行文件头找到原始文件类型 (文件类型,例如.pdf、.txt) 在我的研究中,我发现他们能够找到原始文件类型。他们如何找到原始文件类型。“”也做了类似的工作 提前谢谢。你能为此提供解决方案吗。这个游戏有一个名字 游戏名称为“最后一个移动的人获胜” 我很乐意通过base85对文件进行编码,并将其作为允许类型

我开发了一个遗留驱动程序,允许并阻止特定文件从硬盘传输到外部设备。这个很好用

我面临的问题是,在这里,用户可以修改文件名和文件类型

如何查找用户修改的原始文件类型和文件名

是否可以使用可移植可执行文件头找到原始文件类型

(文件类型,例如.pdf、.txt)

在我的研究中,我发现他们能够找到原始文件类型。他们如何找到原始文件类型。“”也做了类似的工作

提前谢谢。你能为此提供解决方案吗。

这个游戏有一个名字

游戏名称为“最后一个移动的人获胜”

我很乐意通过base85对文件进行编码,并将其作为允许类型的内容删除

你的用户无疑会想出其他聪明的方法


现在,如果你是为了病毒控制而这样做的,我会说只要检查文件内容,如果它看起来像可执行文件,就说不。可执行文件的前两个字符总是MZ。

你想阻止什么类型的文件?是否可以通过文件内容而不是文件名和扩展名来检测它们?这都取决于文件类型。一些文件有固定的页眉字符串,另一些文件有页脚。但不管怎样,如果你担心改名,下一步怎么办?检查所有压缩档案?如果用户对文件进行加密,然后将其复制过来,该怎么办?checkfiletype.com等服务和Unix的
file
等命令通过检查文件内容并应用一系列规则来识别文件类型。基本上,它们寻找特征字节模式。对于某些文件类型,它们比其他文件类型更可靠,但对于任何文件类型,它们都不是100%可靠的。他们可能会考虑文件名作为回退,但这不是一个可靠的指示器,这些程序知道它。我想阻止和允许特定类型的文件,例如,pdf,txt,您最初的要求是什么?PeterT的评论补充:有隐藏数据的方法,例如
.png
,它包含一个
.zip
文件和加密的
.zip