工具

工具名称 简介 下载地址 备注
010 Editor 16进制文本查看工具
file Linux 命令,用于识别文件类型

常见文件头

文件类型 文件后缀 文件头 备注
JPEG jpg FFD8FFE1
PNG png 89504E47
GIF gif 47494638
TIFF tif 49492A00
PCAP cap、pcap 4D3C2B1A
Wave wav 57415645
Adobe Acrobat pdf 355044462D312E
XML xml 3C3F786D6C
Rich Text Format rtf 7B5C727466
Adobe Photoshop psd 38425053
RAR Archive rar 52617221
ZIP Archive zip 504B0304
Windows Bitmap bmp 424DC001 图片
PBG pbg 425047

文件隐写判断方式

常用工具

文件格式判断:010 Editor、Linux file命令

文件分离:binwalk、foremost

文件识别

题目给出一个文件,但没有给出文件后缀名。通常需要我们利用工具来进行文件类型判断。

步骤:

  1. 010 Editor查看文件前缀
  2. 将文件名修改为正确的文件名

文件识别简单脚本

def distinguishSuffix(filename):
    with open(filename, 'rb') as f:
        for (k, v) in dSuffix.items():
            f.seek(0, 0)
            if v in f.read():
                print(k)

def findFlagSymbol(filename, flag=b'\\x66\\x6C\\x61\\x67'):
    with open(filename, 'rb') as f:
        if flag in f.read():
            print("find flag")
        else:
            print("not flag")

if __name__ == '__main__':
    # 后缀字典
    dSuffix = {"jpg": b'\\xff\\xd8', "png": b'\\x89\\x50\\x4E\\x47', "gif": b'\\x47\\x49\\x46\\x38', "tif": b'\\x49\\x49\\x2A\\x00',
               "zip": b'\\x50\\x4B\\x03\\x04', "rar": b'\\x52\\x61\\x72\\x21'}
    # 更改文件名
    filename = "attachment.png"

    distinguishSuffix(filename)
    findFlagSymbol(filename)