Skip to main content

ICP-Engine

Python 3.8+ Downloads Code style: black Licence Apache2

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:

Original Project

ICP Engine is a fork of die-python, originally developed by @calladoum-elastic at Elastic.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

icp_engine-1.0.0.tar.gz (18.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

icp_engine-1.0.0-cp312-cp312-win_amd64.whl (17.0 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Hashes for icp_engine-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9543e7d7e4617a3b9cb4262e05e48000dd81d91d63f94e2a77a2d7656c32908c
MD5 32580505bda294bec42f68e2e77db16b
BLAKE2b-256 4cdf73648df56fa3ecb9ccc002832d7e2b33bbfe3a84873f6b4f3e01bb405ac8

See more details on using hashes here.

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

Hashes for icp_engine-1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c4e8231a7e3f93e3c3cf69c07d72a2010164bc37b4959aa86e72d728c7b087f5
MD5 a9de9f04a73abfbe3870a55efd6da600
BLAKE2b-256 8f9137a1e7c9a6246680243ca1ca490d0b22f027ce0d2ccb6769020557615fe2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page