【问题标题】:Use HEX to find file type使用 HEX 查找文件类型
【发布时间】:2013-10-19 06:46:36
【问题描述】:

我有一个文件,但我不知道它的类型。我试图运行工具来获取文件类型,但这没有用。当我在十六进制编辑器中打开文件时,它显示从开始到某个地址(50 + linse)的 00 十六进制值。我知道我们可以通过查看文件的十六进制代码来找到文件类型。但在这种情况下,它显示为 00。任何人都可以帮助如何使用十六进制值查找文件类型吗?有什么方法可以隐藏十六进制信息,以便隐藏文件类型。

【问题讨论】:

    标签: file types hex


    【解决方案1】:

    如果您使用的是 Linux 或 Unix。你可以输入

    $ 文件文件名

    或者您可以使用文件的 HEX 签名。参考这个。 http://www.garykessler.net/library/file_sigs.html

    或使用称为“libmagic”的第三方库“ma​​gic.h”库,并像这样在 c++ 中使用 if。

    #include <stdio.h>
    #include "magic.h" 
    int main() {   
      magic_t myt = magic_open(MAGIC_CONTINUE|MAGIC_ERROR/*|MAGIC_DEBUG*/|MAGIC_MIME);
      magic_load(myt,NULL);   printf("magic output: '%s'\n",magic_file(myt,YOURFILENAME)); 
      magic_close(myt);
    
      return 0; 
    }
    

    【讨论】:

    • 我没试过linux的file命令。我现在正在下载 Cygwin 来检查一下。我仅使用 HEX 签名,但文件的初始字节为 00,这不是签名。我相信有隐藏文件签名的方法。但我无法得到消息来源来证实这一点。
    【解决方案2】:

    不,没有。十六进制编辑器始终显示真实内容(如果它完全有权读取文件)。

    大多数二进制文件格式都以幻数开头,但不是全部。但是开头的一堆 nul 字节看起来更像是文件损坏了。

    【讨论】:

    • 即使文件已损坏,是否仍然可以找到文件类型。当您说“hex有权读取文件”时,您是什么意思?
    • @Mavenkp: hex 是一种格式,它不能有任何权限。另一方面,编辑器...如果您没有读取文件的权限,显然它不会显示。但是文件的一部分没有权限,所以要么出现整个内容,要么什么都没有。
    • 这取决于它是什么文件类型。有些文件内部具有特征结构,有些则没有。但即使对于那些可能的情况,这也是相当困难的,而且内容可能无论如何都无法恢复。
    • 实际上,我收到了这个文件,任务是分析这个文件。但是要分析文件,我需要知道文件的类型。但是使用文件类型查找工具也无法建立文件类型,所以我想使用十六进制编辑器进行分析。我相信文件没有损坏,但我做错了什么或者我需要一些方法来分析文件
    • 你需要一些上下文。文件从哪里来。建议它可能采用的格式。
    猜你喜欢
    • 2012-03-06
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-12
    相关资源
    最近更新 更多