Skip to content

Add interactive decompiler tutorial - #373

Merged
RetroGameDeveloper merged 1 commit into
masterfrom
agent/how-decompilers-work-tutorial-20260807
Aug 7, 2026
Merged

Add interactive decompiler tutorial#373
RetroGameDeveloper merged 1 commit into
masterfrom
agent/how-decompilers-work-tutorial-20260807

Conversation

@RetroGameDeveloper

Copy link
Copy Markdown
Contributor

What changed

  • Adds pages/tutorials/HowDecompilersWork.md as a concept-first decompiler tutorial.
  • Uses 17 expandable questions based on the learner questions that clarified the original study session.
  • Covers disassembly, IR, CFGs, basic blocks, SSA, phi nodes, data-flow analysis, dominance, back edges, structuring, type inference, fixed-point analysis, LLVM IR, and undefined behaviour.
  • Includes a final reconstruction exercise and links readers to the existing hands-on Ghidra tutorial.
  • Grounds technical claims in primary Ghidra, LLVM, ABI, Intel, ACM, and NDSS sources.

Why

The existing Ghidra tutorial teaches tool operation. This page fills the conceptual gap by explaining what the decompiler is doing internally and by making readers predict each idea before revealing it.

Impact

Readers with programming experience but limited reverse-engineering experience get a self-contained mental model that applies across processor architectures and decompiler tools.

Validation

  • Confirmed the branch is one commit ahead of master with exactly one added file.
  • Verified the remote file is byte-for-byte identical to the validated draft.
  • Parsed the YAML front matter successfully.
  • Confirmed all tags exist in _data/valid-tags.json.
  • Ran the repository cSpell configuration with zero issues.
  • Checked paired details/summary elements, paired code fences, heading spacing, ASCII character rules, and all eight footnote references.

@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

📊 Markdown Content Validation Report

Metadata Completeness

Status: ✅ Metadata validation succeeded

Tag Validation

Status: ✅ All tags valid

Detailed Reports

📋 Metadata Analysis Report
Markdown Metadata Checker
========================
Checking for fields: editlink, tags, permalink, layout, title

Found 73 markdown files in categories/
Found 224 markdown files in pages/

Total markdown files found: 297

Processing files...

=== MARKDOWN METADATA ANALYSIS REPORT ===

Total files processed: 297
Fields checked: editlink, tags, permalink, layout, title


--- Missing "editlink" field ---
Files missing this field: 0
✅ All files have this field!

--- Missing "tags" field ---
Files missing this field: 0
✅ All files have this field!

--- Missing "permalink" field ---
Files missing this field: 0
✅ All files have this field!

--- Missing "layout" field ---
Files missing this field: 0
✅ All files have this field!

--- Missing "title" field ---
Files missing this field: 0
✅ All files have this field!

=== SUMMARY ===
editlink: 100.0% coverage (297/297)
tags: 100.0% coverage (297/297)
permalink: 100.0% coverage (297/297)
layout: 100.0% coverage (297/297)
title: 100.0% coverage (297/297)
🏷️ Tag Validation Report
Markdown Tags Validator
========================
✅ Loaded 108 valid tags from _data/valid-tags.json
📊 Based on analysis of 296 files from 2026-07-18T18:36:42.014Z

Found 73 markdown files in categories/
Found 224 markdown files in pages/

Total markdown files found: 297

Validating tags...

=== TAG VALIDATION REPORT ===

Total files processed: 297
Files with invalid tags: 0

🎉 SUCCESS: All tags are valid!
✅ No invalid tags found in any markdown files.

This report was automatically generated by the Markdown Content Validation workflow.

Result

  • ✅ All tags are valid

@RetroGameDeveloper
RetroGameDeveloper marked this pull request as ready for review August 7, 2026 21:32
@RetroGameDeveloper
RetroGameDeveloper merged commit 0532e02 into master Aug 7, 2026
2 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant