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.
Metadata
Release files for icp-engine 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| icp_engine-1.0.0.tar.gz | 18.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| icp_engine-1.0.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
Total release size: 17.0 MB
Release files / icp_engine-1.0.0.tar.gz
| Download URL | icp_engine-1.0.0.tar.gz |
|---|---|
| Size | 18.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9543e7d7e4617a3b9cb4262e05e48000dd81d91d63f94e2a77a2d7656c32908c
|
|
BLAKE2b-256 checksum How to use checksums |
4cdf73648df56fa3ecb9ccc002832d7e2b33bbfe3a84873f6b4f3e01bb405ac8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / icp_engine-1.0.0-cp312-cp312-win_amd64.whl
| Download URL | icp_engine-1.0.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 17.0 MB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
c4e8231a7e3f93e3c3cf69c07d72a2010164bc37b4959aa86e72d728c7b087f5
|
|
BLAKE2b-256 checksum How to use checksums |
8f9137a1e7c9a6246680243ca1ca490d0b22f027ce0d2ccb6769020557615fe2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|