Detect-It-Easy Documentation

Program for determining types of files for Windows, Linux and MacOS.

11,256 stars JavaScript JavaScript 1 file ยท ~3,956 tokens #binary-analysis#debugger#detect#detector#disassembler#elf#entropy#hacktoberfest
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy Detect-It-Easy on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name detect-it-easy --restart always horsicq/detect-it-easy:latest

File: README.md




Detect It Easy (DiE) is a powerful tool for file type identification, popular among malware analysts, cybersecurity experts, and reverse engineers worldwide. Supporting both signature-based and heuristic analysis, DiE enables efficient file inspections across a broad range of platforms, including Windows, Linux, and MacOS. Its adaptable, script-driven detection architecture makes it one of the most versatile tools in the field, with a comprehensive list of supported OS images.

๐Ÿš€ Getting started

๐Ÿ’ก Why use Detect It Easy?

Detect It Easyโ€™s flexible signature system and scripting capabilities make it an essential tool for malware analysis and digital forensics. With traditional static analyzers often limited in scope and prone to false positives, DiEโ€™s customizable design enables precise integration of new detection logic, ensuring reliable results across diverse file types.

Key advantages:

  • Flexible Signature Management: Easily create, modify, and optimize detection scripts (rules).
  • Cross-Platform Support: Runs on Windows, Linux, and MacOS.
  • Minimal False Positives: Combined signature and heuristic analysis ensures high detection accuracy.

๐Ÿ“„ Supported file types

Detect It Easy supports a wide range of executable and archive types, including:

  • PE (Portable Executable format for Windows)
  • ELF (Executable and Linkable Format for Linux)
  • APK (Android Application Package)
  • IPA (iOS Application Package)
  • JAR (Java Archive)
  • ZIP (Compressed archives)
  • ISO9660 (Optical media format)
  • DEX (Dalvik Executable for Android)
  • MS-DOS (MS-DOS executable files)
  • COM (Simple executable format for DOS)
  • LE/LX (Linear Executable for OS/2)
  • MACH (Mach-O files for MacOS)
  • NPM (JavaScript packages)
  • Amiga (Executable format for Amiga computers)
  • Binary (Other unclassified files)

And that's not all... The list is expanding as the tool is updated

Unknown formats undergo heuristic analysis, providing identification for both known and unrecognized files.

๐Ÿ”‘ Key features

  • Flexible Signature Management: Define or modify detection rules.
  • Scripted Detection: Use a JavaScript-like scripting language (DiE-JS ES5 runtime) for custom detection algorithms.
  • Cross-Platform Compatibility: Available for Windows, Linux, and MacOS.
  • Reduced False Positives: Combines signature and heuristic scanning for accuracy.

๐Ÿ“ฅ Installation

๐Ÿ“ฆ Install via package managers

[!NOTE]
Use Detect It Easy bot via Telegram to quickly check files: @detectiteasy_bot

โš™๏ธ Build from source

See the BUILD.md for detailed instructions.

๐Ÿณ Docker installation

Run DiE in a Docker container:

bash
git clone --recursive https://github.com/horsicq/Detect-It-Easy
cd Detect-It-Easy/
docker build . -t horsicq:diec

๐Ÿ–ฅ๏ธ Usage

Detect It Easy offers three versions:

  • die - Graphical interface.
  • diec - Command-line version for batch processing.
  • diel - Lightweight GUI version. (scanner only)

For detailed usage, refer to the RUN.md.

๐Ÿ”Ž Example use cases

  • ๐Ÿฆ  Malware Analysis: Identify file types, packers, or protections. Heuristic engine detects multiple malware and file virus families.
  • ๐Ÿ›ก Security Audits: Determine executable potential security risks.
  • ๐Ÿ”Ž Software Forensics: Inspect software components and validate compliance.

๐Ÿ’ฌ Our community

๐Ÿ‘‹ Hello! / ะŸั€ะธะฒะตั‚! Welcome to the Detect It Easy community!

Have questions, ideas, or just want to chat? Here's where to find us:

  • GitHub Discussions: Start a conversation in Discussions
  • GitHub Issues: Report bugs or request features via Issues

๐Ÿ† Special thanks

  • โญ๏ธ Thanks to DosX

  • โญ๏ธ Thanks to PELock

๐Ÿค Thanks to all contributors



File: docs/BUILD.md

How to build on Docker

bash
git clone https://github.com/horsicq/DIE-engine.git
cd DIE-engine
sudo docker build . -t horsicq:diec

How to build on Linux based on Debian

Install packages:

bash
sudo apt-get install qtbase5-dev qtscript5-dev qttools5-dev-tools libqt5svg5-dev git build-essential -y
  • Ubuntu 14.04-20.04:
bash
sudo apt-get install qt5-default -y
  • Ubuntu 21.04-26.04
bash
sudo apt-get install qtchooser qt5-qmake pkg-config -y

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Run build script:

bash
bash -x build_dpkg.sh

Install deb package:

bash
sudo dpkg -i release/$(ls release)

How to build on Linux based on Fedora (DNF)

Install packages:

bash
sudo dnf install qt5-qtbase-devel qt5-qtscript-devel qt5-qttools-devel git make gcc-c++
sudo dnf install qt6-qtbase-devel qt6-qtscript-devel qt6-qttools-devel qt6-qt5compat-devel qt6-qtdeclarative-devel git make gcc-c++

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
chmod a+x configure
./configure
make -j4

How to build on Linux based on openSuse (zypper)

Install packages:

bash
sudo zypper install libqt5-qtbase-devel libqt5-qtscript-devel libqt5-qttools-devel libqt5-qtsvg-devel git gcc-c++ make

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
chmod a+x configure
./configure
make -j4

How to build on Linux based on Arch Linux (pacman)

Install packages:

bash
sudo pacman -S --needed git base-devel qt5-base qt5-tools qt5-script

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
chmod a+x configure
./configure
make -j4

How to build on Linux (Automake)

Qt framework has to be installed on the system.

(Ubuntu) Install Qt Framework:

bash
sudo apt-get install --quiet --assume-yes build-essential qt5-default qtbase5-dev qttools5-dev-tools qtscript5-dev libqt5svg5-dev

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

Might require sudo privileges

bash
chmod a+x configure
./configure
make -j4
sudo make install

How to build on Linux (Qt6)

Qt framework has to be installed on the system.

(Ubuntu) Install Qt Framework:

bash
sudo apt-get install --quiet --assume-yes build-essential qt6-base-dev qt6-base-dev-tools qt6-tools-dev-tools qt6-5compat-dev libqt6svg6-dev qt6-declarative-dev

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
mkdir build
cd build
cmake ..
make

How to build on macOS

Install Qt 5.15.2: https://github.com/horsicq/build_tools

Clone project: git clone --recursive https://github.com/horsicq/DIE-engine.git

Edit build_mac.sh (check QMAKE_PATH variable)

Run build script: bash -x build_mac.sh

How to build on Windows (XP)

Install Visual Studio 2013: https://github.com/horsicq/build_tools

Install Qt 5.6.3 for VS2013: https://github.com/horsicq/build_tools

Install 7-Zip: https://github.com/horsicq/build_tools

Clone project: git clone --recursive https://github.com/horsicq/DIE-engine.git

Edit build_winxp.bat (check VSVARS_PATH, SEVENZIP_PATH, QMAKE_PATH variables)

Run build_winxp.bat

How to build on Windows (7-11)

Install Visual Studio 2019: https://github.com/horsicq/build_tools

Install Qt 5.15.2 for VS2019: https://github.com/horsicq/build_tools

Install 7-Zip: https://github.com/horsicq/build_tools

Clone project: git clone --recursive https://github.com/horsicq/DIE-engine.git

Edit build_win32.bat ( check VSVARS_PATH, SEVENZIP_PATH, QMAKE_PATH variables)

Edit build_win64.bat ( check VSVARS_PATH, SEVENZIP_PATH, QMAKE_PATH variables)

Run build_win32.bat

Run build_win64.bat

How to build with CMAKE

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build (Release)

bash
mkdir -p build
cmake . -B build
cd build
make -j4
# To use it as a command, uncomment the following line:
# sudo make install -j4

Build (Debug)

bash
mkdir -p build
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cd build
make -j4
# To use it as a command, uncomment the following line:
# sudo make install -j4

How to build with MinGW/MSYS2

Install MSYS2: https://www.msys2.org/

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Install libaries

bash
pacman -S mingw-w64-ucrt-x86_64-gcc
pacman -S mingw-w64-x86_64-qt5-tools

Build

bash
chmod a+x configure
./configure
make -j4

How to build with WSL

  • Activate Windows Subsystem for Linux
  • Download from the Microsoft Store any distribution

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Install libaries

bash
sudo apt-get install --quiet --assume-yes build-essential qtbase5-dev qttools5-dev-tools qtscript5-dev libqt5svg5-dev

Build

bash
chmod a+x build_dpkg.sh
./build_dpkg.sh

How to build on Linux (Debug)

Qt framework has to be installed on the system.

(Ubuntu) Install Qt Framework:

bash
sudo apt-get install --quiet --assume-yes build-essential qt5-default qtbase5-dev qttools5-dev-tools qtscript5-dev libqt5svg5-dev

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

How to build on Linux (Qt6/Debug)

Qt framework has to be installed on the system.

(Ubuntu) Install Qt Framework:

bash
sudo apt-get install --quiet --assume-yes build-essential qt6-base-dev qt6-base-dev-tools qt6-tools-dev-tools qt6-5compat-dev libqt6svg6-dev qt6-declarative-dev

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

How to build on Linux (Qt5/AppImage)

Qt framework has to be installed on the system.

(Ubuntu) Install Qt Framework:

bash
sudo apt-get install --quiet --assume-yes build-essential qt5-default qtbase5-dev qttools5-dev-tools qtscript5-dev libqt5svg5-dev

Setup linuxdeploy

bash
wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage
chmod +x linuxdeploy-x86_64.AppImage
sudo mv linuxdeploy-x86_64.AppImage /usr/local/bin/linuxdeploy
sudo chmod +x /usr/local/bin/linuxdeploy

wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage
chmod +x linuxdeploy-plugin-qt-x86_64.AppImage
sudo mv linuxdeploy-plugin-qt-x86_64.AppImage /usr/local/bin/linuxdeploy-plugin-qt

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build

bash
chmod a+x configure
./configure
make
chmod a+x create_appimage.sh
./create_appimage.sh

How to build on nixOS (Qt5)

Qt framework has to be installed on the system.

Download dependencies

bash
nix-shell -p git gcc gnumake pkg-config qt5.qtbase qt5.qtscript qt5.qttools qt5.qtsvg qt5.qtwayland

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build (Release)

bash
mkdir build
cd build
cmake ..
make

Build (Debug)

bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

Run

bash
export QT_QPA_PLATFORM=wayland
./die

How to build on Alpine Linux (Qt5)

Qt framework has to be installed on the system.

Download dependencies

bash
apk update
apk add qt5-qtbase-dev qt5-qtscript-dev qt5-qttools-dev qt5-qtsvg-dev git build-base pkgconf

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build (Release)

bash
mkdir build
cd build
cmake ..
make

Build (Debug)

bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
make

How to build on openBSD (Qt5)

Qt framework has to be installed on the system.

Download dependencies

bash
su -
pkg_add git gmake cmake qtbase qtsvg qtscript qttools
exit

Clone this repo recursively:

bash
git clone --recursive https://github.com/horsicq/DIE-engine.git
cd DIE-engine

Build (Release)

bash
mkdir build
cd build
cmake ..
gmake

Build (Debug)

bash
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Debug ..
gmake

File: docs/RUN.md

Instructions to run Detect It Easy

Linux Package/Build

bash
die [FileName] or diec [FileName] or diel [FileName]

Portable version on Linux

Download an appImage file https://github.com/horsicq/DIE-engine/releases/download/Beta/Detect_It_Easy-3.22-x86_64.AppImage

Make the file executable

bash
chmod +x Detect_It_Easy-3.22-x86_64.AppImage

Run it

bash
./Detect_It_Easy-3.22-x86_64.AppImage

Run with Docker

Here's how to use DIE with Docker:

bash
docker/diec.sh [FileName]