Awesome Open Source
Awesome Open Source

Donate GitHub tag (latest SemVer) GitHub All Releases gitlocalized

Detect It Easy

alt text

alt text

Detect It Easy, or abbreviated "DIE" is a program for determining types of files.

"DIE" is a cross-platform application, apart from Windows version there are also available versions for Linux and Mac OS.

Many programs of the kind (PEID, PE tools) allow to use third-party signatures. Unfortunately, those signatures scan only bytes by the pre-set mask, and it is not possible to specify additional parameters. As the result, false triggering often occur. More complicated algorithms are usually strictly set in the program itself. Hence, to add a new complex detect one needs to recompile the entire project. No one, except the authors themselves, can change the algorithm of a detect. As time passes, such programs lose relevance without the constant support.

Detect It Easy has totally open architecture of signatures. You can easily add your own algorithms of detects or modify those that already exist. This is achieved by using scripts. The script language is very similar to JavaScript and any person, who understands the basics of programming, will understand easily how it works. Possibly, someone may decide the scripts are working very slow. Indeed, scripts run slower than compiled code, but, thanks to the good optimization of Script Engine, this doesn't cause any special inconvenience. The possibilities of open architecture compensate these limitations.

DIE exists in three versions. Basic version ("DIE"), Lite version ("DIEL") and console version ("DIEC"). All the three use the same signatures, which are located in the folder "db". If you open this folder, nested sub-folders will be found ("Binary", "PE" and others). The names of sub-folders correspond to the types of files. First, DIE determines the type of file, and then sequentially loads all the signatures, which lie in the corresponding folder. Currently the program defines the following types:

  • MSDOS executable files MS-DOS

  • PE executable files Windows

  • ELF executable files Linux

  • MACH executable files Mac OS

  • Binary all other files



alt text

Run with Docker

You can also run DIE with Docker! Of course, this requires that you have git and Docker installed.

Here's how to use DIE with Docker:

git clone
cd Detect-It-Easy/
docker build . -t horsicq:diec
docker/ ~/example/infected.exe

filetype: PE32
arch: I386
mode: 32
endianess: LE
type: GUI
  protector: Themida/Winlicense(2.X)[-]
  linker: Turbo Linker(2.25*,Delphi)[GUI32]

How to build on Linux(Debian package)

Install packages:

  • sudo apt-get install qtbase5-dev -y
  • sudo apt-get install qtscript5-dev -y
  • sudo apt-get install qttools5-dev-tools -y
  • sudo apt-get install git -y
  • sudo apt-get install build-essential -y
  • sudo apt-get install qt5-default -y

git clone --recursive

cd DIE-engine

Run build script: bash -x

Install deb package: sudo dpkg -i release/die_[Version].deb

Run DiE: die [FileName] or diec [FileName]

How to build on Linux(Portable version)

Install Qt 5.15.2:

Clone project: git clone --recursive

Edit ( check QT_PATH variable)

Run build script: bash -x

How to build on OSX

Install Qt 5.15.2:

Clone project: git clone --recursive

Edit ( check QT_PATH variable)

Run build script: bash -x

How to build on Windows(XP)

Install Visual Studio 2013:

Install Qt 5.6.3 for VS2013:

Install 7-Zip:

Clone project: git clone --recursive

Edit build_winxp.bat ( check VS_PATH, SEVENZIP_PATH, QT_PATH variables)

Run build_winxp.bat

How to build on Windows(7-10)

Install Visual Studio 2019:

Install Qt 5.15.2 for VS2019:

Install 7-Zip:

Clone project: git clone --recursive

Edit build_win32.bat ( check VS_PATH, SEVENZIP_PATH, QT_PATH variables)

Edit build_win64.bat ( check VS_PATH, SEVENZIP_PATH, QT_PATH variables)

Run build_win32.bat

Run build_win64.bat

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
javascript (69,677
reverse-engineering (472
static-analysis (250
debugger (199
malware-analysis (134
packer (69
disassembler (63
malware-research (61
binary-analysis (51
elf (50
detector (34
program-analysis (31
detect (25
unpacker (20
mach-o (20
entropy (19