EN
ENNA

Detect It Easy vs Unicorn Engine

GitHub Stats

10.5k
Stars
8.9k
891
Forks
1.5k
35
Issues
170
2d ago
Updated
1mo ago
MIT
License
GPL-2.0
C++/Qt
Language
C

About Detect It Easy

Detect It Easy (DiE) is a program for determining types of files. It identifies the compiler, linker, packer, or protector used to build a binary, supporting PE, ELF, Mach-O, and other executable formats. DiE uses a signature-based detection system with user-editable JavaScript signatures, making it highly extensible. Beyond basic identification, it provides entropy analysis to detect packed or encrypted sections, a hex viewer for raw binary inspection, and string extraction. For malware analysts, DiE is typically the first tool used when triaging a new sample - knowing whether a binary is packed with UPX, compiled with Visual Studio, or protected with Themida immediately informs the analysis approach. It's lightweight, fast, and available as both a GUI application and command-line tool.

About Unicorn Engine

Unicorn is a lightweight, multi-platform, multi-architecture CPU emulator framework based on QEMU. It provides a clean API for emulating machine code across x86 (16/32/64-bit), ARM, ARM64, MIPS, SPARC, and M68K architectures. Unlike full system emulators, Unicorn focuses purely on CPU instruction emulation - no OS, no hardware peripherals - which makes it fast and embeddable. Security researchers use Unicorn to emulate specific code snippets (like unpacking routines, decryption functions, or shellcode) without executing them on real hardware, making it invaluable for malware analysis, fuzzing, and binary instrumentation. Unicorn provides hooks for memory access, code execution, and interrupts, allowing fine-grained observation and control of emulated code. Bindings exist for Python, Java, Go, Rust, Ruby, and many other languages.

Platform Support

๐ŸชŸwindows๐Ÿงlinux๐ŸŽmacos
๐Ÿงlinux๐ŸŽmacos๐ŸชŸwindows

Tags

Detect It Easy only

packer-detectionbinary-analysispeelfmachotriageentropy

Unicorn Engine only

emulatorcpuqemushellcodefuzzingmulti-arch