Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions RESEARCH.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 8 additions & 0 deletions docs/exploratory-pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down