diff --git a/RESEARCH.md b/RESEARCH.md index 165452a..3fd84f5 100644 --- a/RESEARCH.md +++ b/RESEARCH.md @@ -97,6 +97,7 @@ Needed research: - FFmpeg filters (SSIM/PSNR references): https://ffmpeg.org/ffmpeg-filters.html - Ghidra SLEIGH language reference (p-code semantics): https://github.com/NationalSecurityAgency/ghidra/blob/master/GhidraDocs/languages/html/sleigh.html - sleigh library (p-code lifting implementation): https://github.com/lifting-bits/sleigh +- Resurrecting Crimsonland (banteg, 2026-02-01): headless Ghidra pipeline with evidence-backed rename map and regen loop, plus runtime instrumentation (WinDbg/cdb, Frida) for behavior capture; useful automation and validation ideas. https://banteg.xyz/posts/crimsonland/ - FFmpeg filter reference for SSIM/PSNR/EBU R128 audio analysis: https://manpages.debian.org/bookworm/ffmpeg/ffmpeg-filters.1.en.html - FFmpeg libvmaf filter usage notes: https://manpages.opensuse.org/Tumbleweed/ffmpeg/ffmpeg-filters.1.en.html - EBU R 128 loudness recommendation (audio loudness measurement): https://tech.ebu.ch/publications/r128 diff --git a/docs/exploratory-pipeline.md b/docs/exploratory-pipeline.md index 4568ff5..cf36656 100644 --- a/docs/exploratory-pipeline.md +++ b/docs/exploratory-pipeline.md @@ -40,6 +40,14 @@ performance_mode = "handheld" - The emitted `main.rs` invokes the entry function and records the ABI version. - A `manifest.json` file with input hashes, provenance hash, and generated file list. +## Process Automation Ideas (Crimsonland Write-up) +- Build a deterministic analysis regen loop: drive a headless decompiler to export XML and decompile artifacts; treat exports as generated outputs and keep only inputs plus a rename/type map under version control. +- Maintain a structured `name_map.json` (or equivalent) where each rename/type entry includes address and evidence; reapply it to regenerate names and types consistently. +- Detect bundled third-party libraries via version strings and inject known headers/typedefs before decompilation to improve type recovery. +- Create a long-running runtime analysis session with log tailing so behavioral observations can be captured while keeping the debugger attached. +- Use runtime hooks to capture validation fixtures (framebuffer dumps, deterministic samples) and store them alongside provenance for later regression checks. +- Consider agent-assisted rename and pattern discovery backed by a curated knowledge base; only promote renames with evidence. + ## Next Steps - Add a real input parser for Switch binaries. - Expand the lifter to cover more AArch64 instructions and control flow.