Testing Ground

A semi-private place where I can test out wiki functionality as new features are added.

Original RE Flowchart Overview

The hand-maintained version, kept untouched as the reference to compare against.

flowchart TD subgraph RE_Physical-Analysis [Physical Analysis] direction LR Target_Selection([Target\n Selection]); click Target_Selection "https://www.mediawiki.org" Identify_Components[Identify\n Components]; click Identify_Components "/view/Main_Page" Create_Block_Diagram[/Create\n Block\n Diagram/] Contains_Prog_IC{Contains\n Programmable\n IC?} Complete_Documentation([Complete\n Documentation]) End_Phase1((Extract Data)) Target_Selection --> Identify_Components Identify_Components --> Create_Block_Diagram --> Contains_Prog_IC -->|No| Complete_Documentation Contains_Prog_IC -->|Yes| End_Phase1 end subgraph RE_Prog-Extraction [Programmable Device Extraction] direction LR Start_Phase2((Extract Data)) Chip_Locked{Chip\n Locked?} Read_Chip_Memory[/Extract\n Chip\n Memory/] Vulnerability_Exists{Vulnerability\n Exists?} Exploit_Chip[Exploit\n Chip] Find_Vuln[Find\n Vulnerability] Start_Phase2 --> Chip_Locked Chip_Locked -->|No| Read_Chip_Memory Chip_Locked -->|Yes| Vulnerability_Exists Vulnerability_Exists -->|Yes| Exploit_Chip Vulnerability_Exists -->|No| Find_Vuln end subgraph RE_Induced-Fault [Fault Injection Workflow] direction LR subgraph FI_Side-Channel [Side Channel Analysis]; end subgraph FI_Voltage [Voltage Fault Injection]; end subgraph FI_EM [Electromagnetic Fault Injection]; end FI_Side-Channel --> FI_Voltage FI_Side-Channel --> FI_EM end subgraph RE_Microscope-Extraction [Microscope Workflow] direction LR ME_Sample-Preparation[Sample Preparation] subgraph ME_Optical-Extraction [Optical Microscope]; end subgraph ME_Electron-Extraction [Electron Microscope]; end ME_Sample-Preparation --> ME_Optical-Extraction ME_Sample-Preparation --> ME_Electron-Extraction end subgraph RE_Firmware [Firmware Reverse Engineering] direction LR subgraph FW_Tool-Selection [Tool Selection]; end subgraph FW_Tool-Configuration [Tool Configuration]; end subgraph FW_AI-Usage [Using AI]; end subgraph FW_Beginner [Getting Started]; end subgraph FW_Intermediate [Intermediate]; end subgraph FW_Advanced [Advanced Techniques]; end FW_Tool-Selection --> FW_Tool-Configuration --> FW_Beginner --> FW_Intermediate --> FW_Advanced FW_Beginner --> FW_AI-Usage end RE_Physical-Analysis --> RE_Prog-Extraction RE_Prog-Extraction --> RE_Induced-Fault RE_Prog-Extraction --> RE_Microscope-Extraction RE_Induced-Fault --> RE_Firmware RE_Microscope-Extraction --> RE_Firmware

Assembled RE Flowchart Overview

The same diagram, assembled at page-render time from the five part pages below by the <composediagram> tag. Nothing here is hand-maintained except the five edges joining the parts — edit any part page and this updates by itself.

flowchart TD %% ___ begin Mermaid:RE Physical Analysis ___ subgraph RE_Physical-Analysis [Physical Analysis] direction LR Target_Selection([Target\n Selection]); click Target_Selection "https://www.mediawiki.org" Identify_Components[Identify\n Components]; click Identify_Components "/view/Flash_Extraction" Create_Block_Diagram[/Create\n Block\n Diagram/] Contains_Prog_IC{Contains\n Programmable\n IC?} Complete_Documentation([Complete\n Documentation]) PA_Extract_Data((Extract Data)) Target_Selection --> Identify_Components Identify_Components --> Create_Block_Diagram --> Contains_Prog_IC -->|No| Complete_Documentation Contains_Prog_IC -->|Yes| PA_Extract_Data end %% ___ end Mermaid:RE Physical Analysis ___ %% ___ begin Mermaid:RE Programmable Device Extraction ___ subgraph RE_Prog-Extraction [Programmable Device Extraction] direction LR PDE_Extract_Data((Extract Data)) Chip_Locked{Chip\n Locked?} Read_Chip_Memory[/Extract\n Chip\n Memory/] Vulnerability_Exists{Vulnerability\n Exists?} Exploit_Chip[Exploit\n Chip] Find_Vuln[Find\n Vulnerability] PDE_Memory_File((IC Data)) PDE_Extract_Data --> Chip_Locked Chip_Locked -->|No| Read_Chip_Memory --> PDE_Memory_File Chip_Locked -->|Yes| Vulnerability_Exists Vulnerability_Exists -->|Yes| Exploit_Chip Vulnerability_Exists -->|No| Find_Vuln end %% ___ end Mermaid:RE Programmable Device Extraction ___ %% ___ begin Mermaid:RE Fault Injection Workflow ___ subgraph RE_Induced-Fault [Fault Injection Workflow] direction LR FIW_Memory_File((IC Data)) subgraph FI_Side-Channel [Side Channel Analysis]; end subgraph FI_Voltage [Voltage Fault Injection]; end subgraph FI_EM [Electromagnetic Fault Injection]; end FI_Side-Channel --> FI_Voltage --> FIW_Memory_File FI_Side-Channel --> FI_EM --> FIW_Memory_File end %% ___ end Mermaid:RE Fault Injection Workflow ___ %% ___ begin Mermaid:RE Microscope Workflow ___ subgraph RE_Microscope-Extraction [Microscope Workflow] direction LR MW_Memory_File((IC Data)) MW_Sample-Preparation[Sample Preparation] subgraph MW_Optical-Extraction [Optical Microscope]; end subgraph MW_Electron-Extraction [Electron Microscope]; end MW_Sample-Preparation --> MW_Optical-Extraction --> MW_Memory_File MW_Sample-Preparation --> MW_Electron-Extraction --> MW_Memory_File end %% ___ end Mermaid:RE Microscope Workflow ___ %% ___ begin Mermaid:RE Firmware Reverse Engineering ___ subgraph RE_Firmware [Firmware Reverse Engineering] direction LR FRE_Memory_File((IC Data)) subgraph FW_Tool-Selection [Tool Selection]; end subgraph FW_Tool-Configuration [Tool Configuration]; end subgraph FW_AI-Usage [Using AI]; end subgraph FW_Beginner [Getting Started]; end subgraph FW_Intermediate [Intermediate]; end subgraph FW_Advanced [Advanced Techniques]; end FRE_Memory_File --> FW_Tool-Selection --> FW_Tool-Configuration --> FW_Beginner --> FW_Intermediate --> FW_Advanced FW_Beginner --> FW_AI-Usage end %% ___ end Mermaid:RE Firmware Reverse Engineering ___ %% ___ edges between parts ___ RE_Physical-Analysis --> RE_Prog-Extraction RE_Prog-Extraction --> RE_Induced-Fault RE_Prog-Extraction --> RE_Microscope-Extraction RE_Induced-Fault --> RE_Firmware RE_Microscope-Extraction --> RE_Firmware

Depth levels

The same five parts, drawn at different depths with level (every part) and levelN (part N only). Level 1 draws each part as one block, level 2 draws the part with its inner subgraphs as blocks, and each level after that opens one more layer. Empty subgraphs are placeholders and simply stay blocks.

Level 1 — level="1"

flowchart LR %% ___ begin Mermaid:RE Physical Analysis ___ RE_Physical-Analysis[Physical Analysis] %% ___ end Mermaid:RE Physical Analysis ___ %% ___ begin Mermaid:RE Programmable Device Extraction ___ RE_Prog-Extraction[Programmable Device Extraction] %% ___ end Mermaid:RE Programmable Device Extraction ___ %% ___ begin Mermaid:RE Fault Injection Workflow ___ RE_Induced-Fault[Fault Injection Workflow] %% ___ end Mermaid:RE Fault Injection Workflow ___ %% ___ begin Mermaid:RE Microscope Workflow ___ RE_Microscope-Extraction[Microscope Workflow] %% ___ end Mermaid:RE Microscope Workflow ___ %% ___ begin Mermaid:RE Firmware Reverse Engineering ___ RE_Firmware[Firmware Reverse Engineering] %% ___ end Mermaid:RE Firmware Reverse Engineering ___ %% ___ edges between parts ___ RE_Physical-Analysis --> RE_Prog-Extraction RE_Prog-Extraction --> RE_Induced-Fault RE_Prog-Extraction --> RE_Microscope-Extraction RE_Induced-Fault --> RE_Firmware RE_Microscope-Extraction --> RE_Firmware

Level 1, Physical Analysis at level 2 — level="1" level1="2"

flowchart TD %% ___ begin Mermaid:RE Physical Analysis ___ RE_Physical-Analysis[Physical Analysis] %% ___ end Mermaid:RE Physical Analysis ___ %% ___ begin Mermaid:RE Programmable Device Extraction ___ RE_Prog-Extraction[Programmable Device Extraction] %% ___ end Mermaid:RE Programmable Device Extraction ___ %% ___ begin Mermaid:RE Fault Injection Workflow ___ RE_Induced-Fault[Fault Injection Workflow] %% ___ end Mermaid:RE Fault Injection Workflow ___ %% ___ begin Mermaid:RE Microscope Workflow ___ RE_Microscope-Extraction[Microscope Workflow] %% ___ end Mermaid:RE Microscope Workflow ___ %% ___ begin Mermaid:RE Firmware Reverse Engineering ___ subgraph RE_Firmware [Firmware Reverse Engineering] direction LR FRE_Memory_File((IC Data)) FW_Tool-Selection[Tool Selection] FW_Tool-Configuration[Tool Configuration] FW_AI-Usage[Using AI] FW_Beginner[Getting Started] FW_Intermediate[Intermediate] FW_Advanced[Advanced Techniques] FRE_Memory_File --> FW_Tool-Selection --> FW_Tool-Configuration --> FW_Beginner --> FW_Intermediate --> FW_Advanced FW_Beginner --> FW_AI-Usage end %% ___ end Mermaid:RE Firmware Reverse Engineering ___ %% ___ edges between parts ___ RE_Physical-Analysis --> RE_Prog-Extraction RE_Prog-Extraction --> RE_Induced-Fault RE_Prog-Extraction --> RE_Microscope-Extraction RE_Induced-Fault --> RE_Firmware RE_Microscope-Extraction --> RE_Firmware

Individual Components

Each part is an ordinary diagram page with its own editor, preview and history, and each renders on its own as well as inside the assembled overview above.

Physical Analysis

Mermaid:RE Physical Analysis — edit

flowchart LR Target_Selection([Target\n Selection]); click Target_Selection "https://www.mediawiki.org" Identify_Components[Identify\n Components]; click Identify_Components "/view/Flash_Extraction" Create_Block_Diagram[/Create\n Block\n Diagram/] Contains_Prog_IC{Contains\n Programmable\n IC?} Complete_Documentation([Complete\n Documentation]) PA_Extract_Data((Extract Data)) Target_Selection --> Identify_Components Identify_Components --> Create_Block_Diagram --> Contains_Prog_IC -->|No| Complete_Documentation Contains_Prog_IC -->|Yes| PA_Extract_Data

Programmable Device Extraction

Mermaid:RE Programmable Device Extraction — edit

flowchart LR PDE_Extract_Data((Extract Data)) Chip_Locked{Chip\n Locked?} Read_Chip_Memory[/Extract\n Chip\n Memory/] Vulnerability_Exists{Vulnerability\n Exists?} Exploit_Chip[Exploit\n Chip] Find_Vuln[Find\n Vulnerability] PDE_Memory_File((IC Data)) PDE_Extract_Data --> Chip_Locked Chip_Locked -->|No| Read_Chip_Memory --> PDE_Memory_File Chip_Locked -->|Yes| Vulnerability_Exists Vulnerability_Exists -->|Yes| Exploit_Chip Vulnerability_Exists -->|No| Find_Vuln

Fault Injection Workflow

Mermaid:RE Fault Injection Workflow — edit

flowchart LR FIW_Memory_File((IC Data)) subgraph FI_Side-Channel [Side Channel Analysis]; end subgraph FI_Voltage [Voltage Fault Injection]; end subgraph FI_EM [Electromagnetic Fault Injection]; end FI_Side-Channel --> FI_Voltage --> FIW_Memory_File FI_Side-Channel --> FI_EM --> FIW_Memory_File

Microscope Workflow

Mermaid:RE Microscope Workflow — edit

flowchart LR MW_Memory_File((IC Data)) MW_Sample-Preparation[Sample Preparation] subgraph MW_Optical-Extraction [Optical Microscope]; end subgraph MW_Electron-Extraction [Electron Microscope]; end MW_Sample-Preparation --> MW_Optical-Extraction --> MW_Memory_File MW_Sample-Preparation --> MW_Electron-Extraction --> MW_Memory_File

Firmware Reverse Engineering

Mermaid:RE Firmware Reverse Engineering — edit

flowchart LR FRE_Memory_File((IC Data)) subgraph FW_Tool-Selection [Tool Selection]; end subgraph FW_Tool-Configuration [Tool Configuration]; end subgraph FW_AI-Usage [Using AI]; end subgraph FW_Beginner [Getting Started]; end subgraph FW_Intermediate [Intermediate]; end subgraph FW_Advanced [Advanced Techniques]; end FRE_Memory_File --> FW_Tool-Selection --> FW_Tool-Configuration --> FW_Beginner --> FW_Intermediate --> FW_Advanced FW_Beginner --> FW_AI-Usage