# Headless Ghidra drivers (C6000 AIS analysis) These drove the checksum extraction in `RE-PROCESS.md`. They need a local lab that is **not** in this repo (too big, machine-specific): - Temurin JDK 21, Ghidra 12.1.3, [geepot/ghidra-c6000](https://github.com/geepot/ghidra-c6000) release built for that exact Ghidra version (`C6000:LE:32:default`). - `pip install pyghidra` (project venv), `GHIDRA_INSTALL_DIR` + `JAVA_HOME` set. Files: | File | Role | |---|---| | `MapAIS.java` / `DumpAIS.java` | Reference only — Ghidra **12 headless cannot run `.java` outside an OSGi bundle** here (not even the extension's own scripts); kept for GUI use | | `pyais.py` | The working driver: map AIS sections at DDR bases → analyze → decompile targets (`C70A0A60`, `C708E4E4`, `C7086400`, entry, CRC-16) into `out/` | | `pyais4.py` | Dense disassembly seeding + full-range listing dumps | | `pyais5.py` | Batch create-function + decompile for a target list | Prepare segments with `../tools/ais_unpack.py ic300.bin /tmp/ais-unpack` (IC300 dump stays local — never commit it), then adapt the hardcoded paths at the top of `pyais.py` to your machine.