ICP Engine - Binary Analysis and Protection Detection Engine
Project description
ICP-Engine
Native Python 3.8+ bindings for binary analysis and protection detection engine. ICP Engine is a rebranded and enhanced version of Detect-It-Easy (DIE), optimized for the Intellicrack binary analysis platform.
Install
From PIP
The easiest and recommended installation is through pip.
pip install icp_engine
Using Git
git clone https://github.com/Zachanardo/ICP-Engine
cd ICP-Engine
Install Qt into the build. It can be easily installed using aqt as follow (here with Qt version 6.7.3):
python -m pip install aqtinstall --user -U
python -m aqt install-qt -O ./build linux desktop 6.7.3 linux_gcc_64 # linux x64 only
python -m aqt install-qt -O ./build linux_arm64 desktop 6.7.3 linux_gcc_arm64 # linux arm64 only
python -m aqt install-qt -O ./build windows desktop 6.7.3 win64_msvc2019_64 # windows x64 only
python -m aqt install-qt -O ./build mac desktop 6.7.3 clang_64 # mac only
Then you can install the package
python -m pip install . --user -U
Quick start
import icp_engine, pathlib
print(icp_engine.scan_file("c:/windows/system32/ntdll.dll", icp_engine.ScanFlags.DEEP_SCAN))
'PE64'
print(icp_engine.scan_file("../upx.exe", icp_engine.ScanFlags.RESULT_AS_JSON, str(icp_engine.database_path/'db') ))
{
"detects": [
{
"filetype": "PE64",
"parentfilepart": "Header",
"values": [
{
"info": "Console64,console",
"name": "GNU linker ld (GNU Binutils)",
"string": "Linker: GNU linker ld (GNU Binutils)(2.28)[Console64,console]",
"type": "Linker",
"version": "2.28"
},
{
"info": "",
"name": "MinGW",
"string": "Compiler: MinGW",
"type": "Compiler",
"version": ""
},
{
"info": "NRV,brute",
"name": "UPX",
"string": "Packer: UPX(4.24)[NRV,brute]",
"type": "Packer",
"version": "4.24"
}
]
}
]
}
for db in icp_engine.databases():
print(db)
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\ACE
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\APK\PackageName.1.sg
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\APK\SingleJar.3.sg
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\APK\_APK.0.sg
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\APK\_init
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\Archive\_init
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\archive-file
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\arj
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\Binary\Amiga loadable.1.sg
C:\Users\User\AppData\Roaming\Python\Python312\site-packages\icp_engine\db\db\Binary\archive.7z.1.sg
[...]
Licenses
Released under Apache 2.0 License and integrates the following repositories:
- Detect-It-Easy: MIT license
- die_library: MIT license
- qt: LGPL license
Original Project
ICP Engine is a fork of die-python, originally developed by @calladoum-elastic at Elastic.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file icp_engine-1.0.0.tar.gz.
File metadata
- Download URL: icp_engine-1.0.0.tar.gz
- Upload date:
- Size: 18.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9543e7d7e4617a3b9cb4262e05e48000dd81d91d63f94e2a77a2d7656c32908c
|
|
| MD5 |
32580505bda294bec42f68e2e77db16b
|
|
| BLAKE2b-256 |
4cdf73648df56fa3ecb9ccc002832d7e2b33bbfe3a84873f6b4f3e01bb405ac8
|
File details
Details for the file icp_engine-1.0.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: icp_engine-1.0.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 17.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4e8231a7e3f93e3c3cf69c07d72a2010164bc37b4959aa86e72d728c7b087f5
|
|
| MD5 |
a9de9f04a73abfbe3870a55efd6da600
|
|
| BLAKE2b-256 |
8f9137a1e7c9a6246680243ca1ca490d0b22f027ce0d2ccb6769020557615fe2
|