Detect It Easy compiled to WebAssembly, running entirely in the browser.
- Pure Frontend: No server required, runs entirely in browser
- 100% Signature Coverage: All 800+ DIE signatures included
- Multiple Formats: PE, ELF, Mach-O, MSDOS, COM, ZIP, APK, JAR, DEX, Java Class, PDF, PNG, JPEG, etc.
- Multiple Output Formats: Text, JSON, XML
- Detailed Analysis: File hashes (MD5, SHA256), entropy calculation
- Offline: Works without network connection
Upload any file to detect:
- File format with detailed info (e.g.,
PNG[512x512, 8 bits, RGBA]) - Compiler/Linker identification (Visual C++, GCC, Rust, Go, etc.)
- Packer/Protector detection (UPX, ASPack, MPRESS, etc.)
- Library/Framework detection (.NET, MFC, Unity, etc.)
- Start HTTP server (WASM requires HTTP protocol):
cd docs
python3 -m http.server 8080-
Upload or drag-drop a file
Note: WASM cannot load from file:// protocol. Must use HTTP server.
.
├── docs/ # Frontend
│ ├── index.html # Main page
│ ├── css/style.css # Styles
│ ├── js/
│ │ ├── app.js # Application logic
│ │ └── md5.js # MD5 calculation
│ └── wasm/ # WASM module
│ ├── diec.js # ES6 loader (~309KB)
│ ├── diec.wasm # WASM binary (~11MB)
│ └── diec.data # Signature database (~2.8MB)
│
├── wasm-build/ # WASM build scripts
│ └── deps/DIE-engine/ # DIE-engine source
│
└── README.md
- Emscripten 4.0.7 (matches Qt 6.11.1):
git clone https://github.com/emscripten-core/emsdk.git ~/emsdk
cd ~/emsdk
./emsdk install 4.0.7
./emsdk activate 4.0.7
source ~/emsdk/emsdk_env.sh- Qt 6.11.1 WASM:
pip install aqtinstall
aqt install-qt all_os wasm 6.11.1 wasm_singlethread -O ~/Qt
aqt install-qt linux desktop 6.11.1 linux_gcc_64 -O ~/Qtcd wasm-build
source ~/emsdk/emsdk_env.sh
# Clone DIE-engine with submodules
git clone --recursive https://github.com/horsicq/DIE-engine.git deps/DIE-engine
# Build
cd deps/DIE-engine
mkdir build-wasm && cd build-wasm
cmake .. \
-DCMAKE_PREFIX_PATH=$HOME/Qt/6.11.1/wasm_singlethread/lib/cmake/Qt6 \
--toolchain $HOME/Qt/6.11.1/wasm_singlethread/lib/cmake/Qt6/qt.toolchain.cmake \
-DQT_HOST_PATH=$HOME/Qt/6.11.1/gcc_64 \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS="-Dregister=''"
emmake make -j4 diec
# Copy output
cp release/diec.* ../../docs/wasm/PNG
Format: PNG[48x48, 8 bits, RGBA, bKGD: rgb=(255,255,255)]
{"format":{"format":"PNG","fullName":"Portable Network Graphics"...}}<?xml version="1.0" encoding="UTF-8"?>
<detect><format><name>PNG</name>...</format></detect>| Format | Signatures |
|---|---|
| PE | 781 |
| ELF | 43 |
| MSDOS | 349 |
| APK | 42 |
| Archive | 60+ |
| Image | 20+ |
| 15+ | |
| Total | 800+ |
- WASM Size: ~14MB total (engine + Qt + signatures)
- Qt WASM: Uses Qt 6.11.1 for QJSEngine (signature execution)
- Emscripten: Version 4.0.7 (ABI compatible with Qt)
- FS: Virtual filesystem for file handling
- DIE-engine - Original project
- Qt WASM - Qt WebAssembly
- Emscripten - WASM toolchain
MIT License