ida_runner
A small Python wrapper around IDA Pro's idat console binary. It builds and runs
the idat command line for you — auto-analyzing a target, optionally running a
headless script, and writing the resulting IDB to a chosen directory.
It is geared toward batch / headless workflows, with built-in file-type hints for Apple XNU kernelcaches, kernels, and kexts.
Installation
pip install ida_runner
Or from source:
git clone https://github.com/nixerr/ida_runner
cd ida_runner
pip install .
Requires Python 3.9+ and a working IDA Pro installation that includes the idat
binary.
Usage
from ida_runner import IDARunner, IDABinaryType
# Point the runner at your IDA Pro application directory (the one containing `idat`)
IDARunner.set_idapro_path("/Applications/IDA Professional 9.0.app/Contents/MacOS")
# Auto-analyze a kernelcache and run a headless script against it
IDARunner.execute(
type=IDABinaryType.KERNELCACHE,
binary="/path/to/kernelcache",
idbdir="/path/to/output", # where to write the .i64 / .idb
script="/path/to/script.py", # IDAPython script to run headless
args=["arg1", "arg2"], # arguments passed to the script
logfile="/path/to/ida.log",
verbose=True, # print the constructed command
)
Binary types
IDABinaryType maps a high-level binary kind to the IDA loader type passed via
idat -T:
| Member | IDA file type |
|---|---|
KERNELCACHE |
Apple XNU kernelcache for ARM64e |
KERNEL |
Mach-O |
KEXT_FAT |
Fat Mach-O File, 2 |
KEXT |
Mach-O |
API
IDARunner.set_idapro_path(path)
Class method. Sets the directory containing the idat binary. Must be called
before execute.
IDARunner.execute(type, binary=None, idbdir=None, script=None, args=None, logfile=None, verbose=False)
Builds and runs the idat command. The resulting command is roughly:
idat -A -T<file type> [-S<script> <args>] [-L<logfile>] [-o<idbdir>] <binary>
type— anIDABinaryTypeselecting the IDA loader file type.binary— path to the input binary.idbdir— output directory / path for the database (-o).script— IDAPython script to run headless (-S).args— list of arguments appended to the script invocation.logfile— log output path (-L).verbose— print the command before running it.
Analysis runs in auto mode (-A) with idat's stdout/stderr suppressed.
License
MIT — see pyproject.toml.
Metadata
Release files for ida-runner 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ida_runner-0.0.2.tar.gz | 2.3 kB | Without provenance | Details for ida_runner-0.0.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ida_runner-0.0.2-py3-none-any.whl | Python 3 | none | any | Details for ida_runner-0.0.2-py3-none-any.whl |
Total release size: 5.4 kB
Release files / ida_runner-0.0.2.tar.gz
| Download URL | ida_runner-0.0.2.tar.gz |
|---|---|
| Size | 2.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2e3dcd5d3fc8ebcb7577948290463f3ac3b400a024006f9d48982d14b1cb31ad
|
|
BLAKE2b-256 checksum How to use checksums |
93bdd63d6e38412e23246226c24047221cf9dba676375ec934a8ceb83e891080
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / ida_runner-0.0.2-py3-none-any.whl
| Download URL | ida_runner-0.0.2-py3-none-any.whl |
|---|---|
| Size | 3.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f3978d8d50160205734fa95467a86419907698d65d4c8a3ba9885cd4a9b85a95
|
|
BLAKE2b-256 checksum How to use checksums |
b3963dccfc7fcb471d045a37d43b1d0521930decf8d0cd5d7e4355cb667a81f8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Security for ida-runner 0.0.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.