Detect It Easy 完整指南:3 条命令看懂任意文件的编译器与加壳工具
2026/8/24 21:01:29 网站建设 项目流程

Detect It Easy 完整指南:3 条命令看懂任意文件的编译器与加壳工具

【免费下载链接】Detect-It-EasyProgram for determining types of files for Windows, Linux and MacOS.项目地址: https://gitcode.com/gh_mirrors/de/Detect-It-Easy

一个 40MB、名叫 a.exe 的文件,没有扩展名提示、没有来源说明,双击不敢点,翻十六进制又太慢。Detect It Easy(简称 DiE)就是一个跑在 Windows、Linux、macOS 上的免费文件类型识别工具:它不运行你的文件,只读取,然后告诉你它是什么格式、哪个编译器做的、有没有被加壳。

先验证:diec 命令行 10 秒扫完任意文件

🔍 装好 DiE(包管理器或下载 release 都行),你会拿到三个程序:die 是全功能图形界面,diec 是命令行版,diel 是只保留扫描的轻量版。想快速看结果,用 diec 就够了:

diec -rd clear32.exe

参数就两个:-r递归扫描,-d深度扫描,单文件照抄即可。回给你的是一小段结论,而不是一屏十六进制:

PE32 Packer: ASPack(2.12-2.42) Compiler: MinGW Linker: GNU linker ld (GNU Binutils)(2.28)

四行输出给出三个结论:这是个 32 位 Windows 程序(PE32)、被 ASPack 加壳、用 MinGW 编译、GNU ld 链接。这些信息平时得翻到入口点逆向才能拼出来,diec 直接报给你。

Detect It Easy 能做什么、靠什么做到、哪里做不到

能做什么:一个文件全检一遍

  • 文件格式与身份:Windows PE、Linux ELF、macOS Mach-O、Android 的 APK/JAR/DEX、ZIP、ISO9660 等几十种格式都有规则
  • 加壳器、编译器、链接器、链接的框架库(Qt、MFC 等)
  • diec支持-j等参数把结果转成 JSON、CSV、XML,直接喂给脚本
  • 顺带算哈希(-S "Hash")、看熵值(-e
  • 图形版 die 带十六进制、反汇编、字符串、内存映射面板,可以从多个角度交叉核对

靠什么做到:一本档案 + 验房师的直觉

把扫描想成验房师看房。签名检测是那本档案:仓库里 db/ 目录存放规则,db/PE/ 下就有 800 多条.sg脚本,加上 db/ELF/、db/MSDOS/、db/Binary/ 等目录覆盖 Mach-O、COM、ISO9660 等格式。每条规则是一个流程化的检测动作:先找特征字符串,没命中再比对入口点机器码,最后把"Packer: XXX"写进结论。

启发式分析则是验房师的直觉:档案里没有的格式,它靠文件结构特征和机器码分布来推断,所以"没见过的文件"也不是一无是处。想强制走这条路,加参数-U

哪里做不到:三个边界要记住

  • 只静态读,不运行:它看的是文件的"尸体",不是行为。文件恶不恶意,还得靠动态分析和沙箱,别拿一次扫描下结论
  • 版本号常是区间:上面那个"2.12-2.42"是范围估计,够用就行,别当精确版本
  • 识别不出不等于安全:没命中规则只代表档案里没有它,不代表文件无害

落地:Docker 一条命令部署 diec 扫描

🐳 不想装任何东西?官方镜像最省事。先克隆仓库:

git clone --recursive https://gitcode.com/gh_mirrors/de/Detect-It-Easy

再构建镜像(当前稳定版 4.0.0,镜像里已带上完整签名库):

cd Detect-It-Easy && docker build . -t horsicq:diec

之后任何文件一条命令就能扫。官方脚本会把文件所在目录以只读方式挂进容器,用完即删,不留痕迹:

docker/diec.sh clear32.exe

想批量处理一个目录,本地装好 diec 后加两个参数即可,结果直接进管道:

diec -rj suspicious_dir

-r递归、-j输出 JSON,接着 jq 或你的报告脚本就能接。想看 diec 的全部参数,直接裸跑diec会打印一张参数表:

签名规则是开放的:自己写一条检测规则

✍️ DiE 最被低估的一点:所有检测规则都是你能读、能改的明文。

db/ 下的.sg文件是 DiE-JS 脚本(一种类 JavaScript 的语言)。模式匹配语法不难:?表示任意单字节,'MZ'直接按 ASCII 文本匹配,4D 5A 90 ??就是一个 DOS/PE 文件头。完整语法查 help/Signatures.md,每种格式的类参考文档都在 help/ 目录里。

团队有私有格式或内部样本要识别,把规则放进 db_extra/ 即可,扫描时会被自动带上。写一条、测一条,立即生效。

收尾前,试试这几件事

  • 拿下载目录里最新的文件,跑一遍diec -rd,看看它是什么
  • 找一个 UPX 或其他加壳工具处理过的 exe,验证 diec 认不认得
  • 打开 db/PE/ 里任意一条.sg,找找看认不认识规则里的加壳器
  • 给自己关心的格式写一条最简单的模式匹配

逆向和安全这行,最贵的不是分析本身,而是猜"这是什么"花掉的那几分钟。DiE 把猜测时间压到了接近零,它的价值就停在这里。

【免费下载链接】Detect-It-EasyProgram for determining types of files for Windows, Linux and MacOS.项目地址: https://gitcode.com/gh_mirrors/de/Detect-It-Easy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询