Skip to main content

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 — an IDABinaryType selecting 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)

Source distribution for ida-runner 0.0.2
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)

Table of built distributions (wheels) for ida-runner 0.0.2
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page