Repository navigation
kuna v1.980
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.980-specs.tar.gz is the same spec tree, for KUNA_SPECS. See docs/release.md.
kuna-v1.980-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] Preserve anonymous record definitions and identity by @thotypous in #1233
- [AUTOMATED] Reject overlapping independent stack retypes by @thotypous in #1227
- [AUTOMATED] Preserve record declarations with leading array members by @thotypous in #1222
- [AUTOMATED] Use emitted member types for scalar bit transfers by @thotypous in #1230
- [AUTOMATED] Normalize signed constants to their declared width by @thotypous in #1234
- [AUTOMATED] Preserve declared pointer values through integer stores by @thotypous in #1238
- [AUTOMATED] Refresh cached live ranges after block renumbering by @thotypous in #1221
- [AUTOMATED] Preserve locked scalar local declarations by @thotypous in #1228
- [AUTOMATED] Recover Go pclntab functions on Mach-O by @TsingShui in #1237
- [AUTOMATED] Allocate and declare relocatable common objects by @thotypous in #1242
- [AUTOMATED] Preserve storage declarations for PE data exports by @thotypous in #1220
- [AUTOMATED] Convert pointer storage initializers to their declared type by @thotypous in #1236
- [AUTOMATED] Preserve floating results in local byte-array storage by @thotypous in #1224
- [AUTOMATED] Preserve detached locked scalar bindings by @thotypous in #1229
- [AUTOMATED] Relocate indexed pointers stored in declared members by @thotypous in #1232
- [AUTOMATED] Preserve scalar bits in declared byte-array members by @thotypous in #1223
- [AUTOMATED] Resolve a function name without the whole inventory by @TsingShui in #1239
- [AUTOMATED] Preserve byte-array frame writes from SSA definitions by @thotypous in #1225
- [AUTOMATED] Preserve loaded bytes in declared array members by @thotypous in #1226
- [AUTOMATED] Preserve floating call results in declared word storage by @thotypous in #1231
- [AUTOMATED] Add
lazyfuncs: commit discovered entries as names, materialize on read by @TsingShui in #1240 - [AUTOMATED] Preserve word bits through resolved union members by @thotypous in #1244
- [AUTOMATED] Preserve member representations in byte-copy helpers by @thotypous in #1247
- [AUTOMATED] Cast pointer values assigned to integer frame members by @thotypous in #1241
- [AUTOMATED] Reconcile pointer slots with integer CAST results by @thotypous in #1249
- [AUTOMATED] Preserve NaN quieting through floating conversions by @thotypous in #1250
- [AUTOMATED] Reuse the canonical entry list across name lookups by @mgostIH in #1256
- [AUTOMATED] Keep global stores without complete SSA effect coverage by @thotypous in #1253
- [AUTOMATED] Refine SPARC integer register pairs moved whole by @thotypous in #1251
- [AUTOMATED] Preserve indexed integer stack storage across word views by @thotypous in #1254
Full Changelog: v1.979...v1.980