Dll 如何通过查看文件头/内容来确定文件的扩展名?

Dll 如何通过查看文件头/内容来确定文件的扩展名?,dll,reverse-engineering,file-extension,portable-executable,hex-editors,Dll,Reverse Engineering,File Extension,Portable Executable,Hex Editors,我需要知道文件扩展名,不是通过查看文件名,而是通过查看其头(文件头/内容/任何内容) 例如,我可以通过在文件头的开头看到“MZ”来确定文件是否为DOS文件;通过查找其PE头创建.exe文件;通过查看每个dll文件所拥有的一些dll标志等来创建.dll 但我还想确定其他扩展名,比如这个文件扩展名是否为.mui/.tlb/.api/.qtx/。。。。这个名单还有很多。关于我在这里提到的所有EXENTION,有一点很常见,那就是所有的EXENTION都是“PE”文件,其中一些是“DLL”文件。(我不需

我需要知道文件扩展名,不是通过查看文件名,而是通过查看其头(文件头/内容/任何内容)

例如,我可以通过在文件头的开头看到“MZ”来确定文件是否为DOS文件;通过查找其PE头创建.exe文件;通过查看每个dll文件所拥有的一些dll标志等来创建.dll

但我还想确定其他扩展名,比如这个文件扩展名是否为.mui/.tlb/.api/.qtx/。。。。这个名单还有很多。关于我在这里提到的所有EXENTION,有一点很常见,那就是所有的EXENTION都是“PE”文件,其中一些是“DLL”文件。(我不需要关于非PE文件的信息)

是否可以确定此细节处的文件扩展名?如果是,如何进行?在文件名中,文件的哪些部分可以为我提供文件的精确扩展名?换句话说,文件的扩展名是写在头的某个地方,还是可以派生出来


提前感谢。:)

这不是它的工作原理。.mui文件也以“MZ”开头,是一个合适的PE文件。.fnt、.qtx、.ocx、.dll等等也是如此。扩展名表示文件的用途,其格式是次要的。而且通常没有记录、不可识别或模棱两可。您唯一拥有的密钥是注册表中的文件关联。谢谢您的评论。是的,.mui也是一个以MZ开头的PE文件。简言之,没有(简单的)方法来确定扩展?我不明白你所说的注册表中的文件关联是什么意思(是的,当然有可能。这种机制远远超出了SO的范围。我想,研究一下操作系统是如何工作的。