AI-assisted malware reverse-engineering debugger with ATT&CK, YARA, IOC, and report output.
Project description
AIDebug
AI-assisted malware reverse-engineering debugger that turns function behavior into ATT&CK mappings, YARA rules, IOC exports, and analyst reports.
Demo
Add an 8-15 second GIF showing: sample load -> function analysis -> ATT&CK mapping -> report export.
What This Is For
A malware analyst runs AIDebug when a sample needs fast triage before deeper reverse engineering. The goal is not magic attribution. The goal is structured behavior, technique mapping, and detection-ready output.
What It Produces
| Output | Use |
|---|---|
| HTML report | Analyst review and case notes |
| JSON report | SIEM/SOAR/OpenCTI ingest |
| YARA rules | Detection engineering seed |
| IOC list | Pivoting and enrichment |
| CFG visualization | Function-level behavior review |
| ATT&CK mapping | Technique-level reporting |
Quick Start
PyPI install
pip install 1200km-aidebug
aidebug --help
The PyPI distribution is named 1200km-aidebug; the installed command is
aidebug.
Dynamic Frida instrumentation is optional:
pip install "1200km-aidebug[dynamic]"
From source
git clone https://github.com/anpa1200/AIDebug.git
cd AIDebug
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dynamic]"
aidebug --binary samples/example.exe --no-tui --report --json-export --out-dir reports/
Set ANTHROPIC_API_KEY before AI-backed function analysis or YARA generation:
export ANTHROPIC_API_KEY=sk-ant-...
How It Works
flowchart LR
Sample[Binary sample] --> Parse[PE/ELF parsing]
Parse --> Disasm[Capstone disassembly]
Disasm --> Patterns[Malware pattern detection]
Patterns --> Attack[ATT&CK mapping]
Attack --> IOC[IOC export]
IOC --> Report[HTML/JSON/YARA report]
How AIDebug Feeds Detection Engineering
AIDebug extracts function-level behavior, maps suspicious logic to ATT&CK technique IDs, emits YARA candidates, and exports IOC lists suitable for enrichment or OpenCTI ingest. Treat the output as analyst-reviewed detection seed material, not final truth.
Coverage
| Area | Coverage |
|---|---|
| Malware patterns | XOR loops, stack strings, API hashing, RDTSC timing, direct syscalls, NOP sleds, null-safe XOR, Base64 tables |
| Formats | PE32, PE64, ELF |
| Architectures | x86, x86-64, ARM, AArch64, RISC-V |
| Dynamic mode | Frida, remote frida-server, INetSim sandbox support |
| Reports | HTML, JSON, YARA |
Safety
Use AIDebug only in an isolated malware-analysis VM or lab. Do not run unknown samples on your host OS. Static analysis can inspect PE/ELF files directly; dynamic mode attaches Frida to a running process or sandbox and should be used only with authorization and isolation.
Limitations And Honesty
AIDebug accelerates triage. It does not replace manual reverse engineering, sandbox validation, or analyst judgment. ATT&CK mappings and YARA output must be reviewed before operational use.
Companion Article
Citation
See CITATION.cff.
License
MIT.
Security Policy
See SECURITY.md.
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 1200km_aidebug-1.0.0.tar.gz.
File metadata
- Download URL: 1200km_aidebug-1.0.0.tar.gz
- Upload date:
- Size: 54.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e854e13966d48852a5f5758bd382ad1896a57abf358c561c576a71ace13d2544
|
|
| MD5 |
a36dd3b6f8a74c53c1f3f935d0dd37b1
|
|
| BLAKE2b-256 |
cb89c02cbd6d98d47403581f94a2ea833767bfb1d8cd3a055cd7cb510b7d8dcd
|
Provenance
The following attestation bundles were made for 1200km_aidebug-1.0.0.tar.gz:
Publisher:
publish.yml on anpa1200/AIDebug
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
1200km_aidebug-1.0.0.tar.gz -
Subject digest:
e854e13966d48852a5f5758bd382ad1896a57abf358c561c576a71ace13d2544 - Sigstore transparency entry: 1813749475
- Sigstore integration time:
-
Permalink:
anpa1200/AIDebug@5872dc18472818f16a61c68b5e5f2364ed40249c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anpa1200
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5872dc18472818f16a61c68b5e5f2364ed40249c -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file 1200km_aidebug-1.0.0-py3-none-any.whl.
File metadata
- Download URL: 1200km_aidebug-1.0.0-py3-none-any.whl
- Upload date:
- Size: 60.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0018c61bd45083e345e74bd64eec5ce57ebbdecac9ff8df5a682bad2e13aa4a0
|
|
| MD5 |
7673b4b271646e6a588abb0d8402a4d9
|
|
| BLAKE2b-256 |
8f1af0536f975a253640e07c90e9856d33dc9a4c23a775991823b7d09a4f967a
|
Provenance
The following attestation bundles were made for 1200km_aidebug-1.0.0-py3-none-any.whl:
Publisher:
publish.yml on anpa1200/AIDebug
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
1200km_aidebug-1.0.0-py3-none-any.whl -
Subject digest:
0018c61bd45083e345e74bd64eec5ce57ebbdecac9ff8df5a682bad2e13aa4a0 - Sigstore transparency entry: 1813749880
- Sigstore integration time:
-
Permalink:
anpa1200/AIDebug@5872dc18472818f16a61c68b5e5f2364ed40249c -
Branch / Tag:
refs/heads/main - Owner: https://github.com/anpa1200
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5872dc18472818f16a61c68b5e5f2364ed40249c -
Trigger Event:
workflow_dispatch
-
Statement type: