Skip to main content

ICP Engine - Binary Analysis and Protection Detection Engine

Project description

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.

Project details


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.

Supported by

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