Skip to content

kuna v1.989

Choose a tag to compare

@github-actions github-actions released this 02 Nov 15:01
3d9afab

Each archive ships kuna, one self-contained binary: the decompiler console and the SLEIGH compiler are built in, and so are the compiled SLEIGH specs (unpacked once into the user cache directory on first use). kuna-v1.989-specs.tar.gz is the same spec tree, for KUNA_SPECS. See docs/release.md.

kuna-v1.989-KunaDecompiler-ghidra_12.1.2.zip is the ready-to-install KunaDecompiler extension for Ghidra 12.1.2 (in Ghidra: File -> Install Extensions... -> + -> pick the zip -> restart -> enable KunaDecompilerPlugin). It bundles prebuilt kuna_ghidra backends for Linux x86_64/arm64, macOS x86_64/arm64, and Windows x86_64, so it installs fully airgapped: the Ghidra release zip plus this zip are the only two files needed -- no network, no Rust toolchain. The zip is version-locked to Ghidra 12.1.2; other Ghidra 12.x versions can choose "Install Anyway" at the version-mismatch dialog (compatibility unverified).

What's Changed

  • [AUTOMATED] Spell Go record types within their own package by @mahaloz in #1403
  • [AUTOMATED] Emit bounded Go byte-array reads and writes by @mahaloz in #1405
  • [AUTOMATED] read: say which bytes are the file's, which are zero fill, and what each segment permits by @mahaloz in #1404
  • [AUTOMATED] Emit bounded scalar reads from Go byte-array results by @mahaloz in #1409
  • [AUTOMATED] Preserve explicit Go integer widening by @mahaloz in #1413
  • [AUTOMATED] Order three slot-sensitive choices by creation, not by Varnode id by @mahaloz in #1407
  • [AUTOMATED] xrefs: decode an explicit source in executable memory not marked as code, and say what was examined by @mahaloz in #1412
  • [AUTOMATED] Fill heritage's own reads while renaming instead of through placeholder Varnodes (libpython 0x3b72c0 15.8 -> 10.9 GB, same C) by @mahaloz in #1408
  • [AUTOMATED] Preserve sign and width in Rust integer extensions by @mahaloz in #1414
  • [AUTOMATED] Preserve keyword-named machine operations in Rust by @mahaloz in #1416
  • [AUTOMATED] Preserve signed primitive operations in Rust output by @mahaloz in #1419
  • decompile: keep non-ASCII binary and TEMP paths intact by @hoo0681 in #1417
  • [AUTOMATED] Share one effect annotation among the guards of a call or store (libpython 0x3b72c0 13.3 -> 9.8 GB, same C) by @mahaloz in #1418
  • [AUTOMATED] Allocate a Varnode's unknown-type skeleton when its type is first read (libpython 0x3b72c0 -2 GB at heritage, same C) by @mahaloz in #1420
  • [AUTOMATED] decompile/decompile-all --json: --omit leaves record collections out and names them by @mahaloz in #1422
  • [AUTOMATED] Split stack and ram accesses that wrap past the top of their space before heritage (build_refinement panic, Overlapping input varnodes) by @mahaloz in #1425
  • [AUTOMATED] Recover verified Rust panic formatting macros by @mahaloz in #1421
  • [AUTOMATED] Recover older Rust piece-array printing by @mahaloz in #1430
  • [AUTOMATED] Recover verified Rust string formatting arguments by @mahaloz in #1431
  • [AUTOMATED] read: list every other segment that maps a range, and say which one kuna read by @mahaloz in #1432
  • [AUTOMATED] Let switchrunon cut a table whose guards leave its top open (option switchrunonguard) by @mahaloz in #1429
  • [AUTOMATED] Recover verified Rust String write macros as an opt-in feature by @mahaloz in #1433
  • [AUTOMATED] Recover verified Rust Stdout write! and writeln! by @mahaloz in #1428
  • [AUTOMATED] Keep a one-worker decompile-all's call graph, results and freed heap out of each function's memory limit by @mahaloz in #1427
  • [AUTOMATED] Qualify standalone function addresses in C output by @mahaloz in #1434
  • [AUTOMATED] Preserve qualified DWARF function identities by @mahaloz in #1437
  • [AUTOMATED] Apply the call and address relocations of PowerPC and MIPS object files by @mahaloz in #1435
  • [AUTOMATED] Read MIPS PIC callers through the GOT for option bejoin callers by @mahaloz in #1436
  • xrefs: follow A32 add/ldr branch tables into their cases by @alvistar in #1399
  • [AUTOMATED] xrefs: put decode's doc comment back on decode by @mahaloz in #1439
  • [AUTOMATED] feat(analysis): recover PPC32 PIC imports by @phix33 in #1292
  • [AUTOMATED] Summarize verified AMD64 Rust stack probes by @mahaloz in #1442
  • [AUTOMATED] Mark and warn about a --define-function the input does not map by @mahaloz in #1441
  • [AUTOMATED] Preserve empty Rust match arms without breaking loops by @mahaloz in #1448

New Contributors

Full Changelog: v1.988...v1.989