ForgeNet

ForgeNet Pipeline & Architecture

1. System Architecture
Central Controller
Device/Data
Pipeline
Database
Cloud Service
graph TB subgraph MACMINI["Mac Mini (Central Controller)"] FN[("ForgeNet
v1.4.0
Central Controller")] DF[("DeviceForge
v1.0.0
iOS Device Manager")] BF[("BlackForge
v1.2.2
Kernel Recompiler")] end subgraph IPHONE["iPhone 13 (DEV-FUSED)"] DV[("대박폰
iOS 14.1
:2221")] end subgraph UBUNTU["Ubuntu (192.168.10.54)"] XV[("XNUVault
v1.3.0
41,801 functions")] AV[("ASMVault
v1.2.7
77,213 functions")] KF[("KernelForge
v16.11
PostgreSQL :5433")] XS[("XNU Sources
7.8GB
151 versions")] end subgraph AWS["AWS (43.200.95.142)"] CF[("ClaudeForge
v2.2.1
:9000")] PF[("ProjectForge
v1.0.0
:9003")] end FN -->|"control"| DF FN -->|"control"| BF FN -->|"log"| CF DF <-->|"iproxy
SSH"| DV DF -->|"kernelcache"| BF BF <-->|"SSH
XNU Match"| XV BF -->|"ASM data"| AV XV -->|"sync"| KF AV -->|"sync"| KF XV <-->|"read"| XS CF -->|"query"| KF style FN fill:#58a6ff,stroke:#1f6feb,color:#fff style DF fill:#238636,stroke:#2ea043,color:#fff style BF fill:#f85149,stroke:#da3633,color:#fff style XV fill:#7ee787,stroke:#238636,color:#000 style AV fill:#ff7b72,stroke:#f85149,color:#000 style KF fill:#a371f7,stroke:#8957e5,color:#fff style CF fill:#ffa657,stroke:#d29922,color:#000 style PF fill:#ffa657,stroke:#d29922,color:#000 style DV fill:#238636,stroke:#2ea043,color:#fff style XS fill:#79c0ff,stroke:#58a6ff,color:#000
2. BlackForge Pipeline (Kernel Recompilation)

Click on any step below to see detailed information, source files, and commands.

flowchart LR subgraph INPUT["Input"] KC[("Kernelcache
70MB")] end subgraph PHASE1["Phase 1: Disassemble"] S1["Step 1
Disassemble
step1_disassemble.sh"] S2["Step 2
GAS Convert
step2_fix_gas.sh"] end subgraph PHASE2["Phase 2: XNU Match (Ubuntu)"] S3["Step 2.5
XNU Match
xnu_match_worker.py"] end subgraph PHASE3["Phase 3: Address Fix"] S4["Step 4
ADRP Fix
fix_adrp.py"] S5["Step 5
ADR Fix
fix_adr.py"] S6["Step 6
LDR Fix
fix_ldr_literal.py"] S7["Step 7
Branch Fix"] end subgraph PHASE4["Phase 4: Build"] S8["Step 8
Compile
clang -c"] S9["Step 9
Link/Rebuild
rebuild_macho.py"] S10["Step 10
Verify/Sign"] end subgraph OUTPUT["Output"] NK[("New Kernel
Recompiled")] end KC --> S1 --> S2 --> S3 --> S4 --> S5 --> S6 --> S7 --> S8 --> S9 --> S10 --> NK style S1 fill:#f85149,stroke:#da3633,color:#fff style S2 fill:#f85149,stroke:#da3633,color:#fff style S3 fill:#7ee787,stroke:#238636,color:#000 style S4 fill:#ffa657,stroke:#d29922,color:#000 style S5 fill:#ffa657,stroke:#d29922,color:#000 style S6 fill:#ffa657,stroke:#d29922,color:#000 style S7 fill:#ffa657,stroke:#d29922,color:#000 style S8 fill:#a371f7,stroke:#8957e5,color:#fff style S9 fill:#a371f7,stroke:#8957e5,color:#fff style S10 fill:#238636,stroke:#2ea043,color:#fff style KC fill:#79c0ff,stroke:#58a6ff,color:#000 style NK fill:#238636,stroke:#2ea043,color:#fff
1
Disassemble
2
GAS Convert
3
XNU Match
4
ADRP Fix
5
ADR Fix
6
LDR Fix
7
Branch Fix
8
Compile
9
Link/Rebuild
10
Verify/Sign
3. Data Flow Diagram
flowchart TB subgraph SOURCES["Data Sources"] D1[("iPhone
Kernelcache")] D2[("Apple
XNU Sources")] end subgraph PROCESSING["Processing"] P1["DeviceForge
Extract"] P2["XNU Scanner
Parse"] P3["BlackForge
Disassemble"] P4["XNUVault
Index"] P5["BlackForge
Match"] end subgraph STORAGE["Storage (KernelForge DB)"] DB1[("xnuvault_functions
41,801")] DB2[("asmvault_functions
77,213")] DB3[("call_graph")] end subgraph OUTPUT["Output"] O1["Matched Sources"] O2["Recompiled Kernel"] end D1 --> P1 --> P3 D2 --> P2 --> P4 --> DB1 P3 --> DB2 P4 --> P5 P3 --> P5 P5 --> DB3 P5 --> O1 O1 --> O2 style D1 fill:#238636,stroke:#2ea043,color:#fff style D2 fill:#79c0ff,stroke:#58a6ff,color:#000 style DB1 fill:#a371f7,stroke:#8957e5,color:#fff style DB2 fill:#a371f7,stroke:#8957e5,color:#fff style DB3 fill:#a371f7,stroke:#8957e5,color:#fff style O2 fill:#238636,stroke:#2ea043,color:#fff
4. System Dependencies
graph LR FN(ForgeNet) -->|control| DF(DeviceForge) FN -->|control| BF(BlackForge) FN -->|api| CF(ClaudeForge) DF -->|data| BF BF -->|api| XV(XNUVault) BF -->|data| AV(ASMVault) XV -->|data| KF(KernelForge) AV -->|data| KF CF -->|api| KF style FN fill:#58a6ff,stroke:#1f6feb,color:#fff style DF fill:#238636,stroke:#2ea043,color:#fff style BF fill:#f85149,stroke:#da3633,color:#fff style XV fill:#7ee787,stroke:#238636,color:#000 style AV fill:#ff7b72,stroke:#f85149,color:#000 style KF fill:#a371f7,stroke:#8957e5,color:#fff style CF fill:#ffa657,stroke:#d29922,color:#000
5. Source Files by Program

fnfOzvSRAtP28kB7')) OR 305=(SELECT 305 FROM PG_SLEEP(15))-- (ID: 977)

fnfOzvSR7Ucfc4S7') OR 964=(SELECT 964 FROM PG_SLEEP(15))-- (ID: 976)

ForgeNet (ID: 1)

fnfOzvSR%' AND 2*3*8=6*8 AND 'sBgi'!='sBgi% (ID: 964)

fnfOzvSRMzN7n32J'; waitfor delay '0:0:15' -- (ID: 974)

fnfOzvSRIKJMTdpC'; waitfor delay '0:0:15' -- (ID: 377)

fnfOzvSRVmvh2m1l' OR 147=(SELECT 147 FROM PG_SLEEP(15))-- (ID: 378)

fnfOzvSRuubfATia') OR 196=(SELECT 196 FROM PG_SLEEP(15))-- (ID: 379)

fnfOzvSR����%2527%2522\'\" (ID: 384)

fnfOzvSR' AND 2*3*8=6*8 AND 'eXXm'='eXXm (ID: 962)

@@C6vzP (ID: 385)

fnfOzvSREr75vpFx')) OR 768=(SELECT 768 FROM PG_SLEEP(15))-- (ID: 380)

fnfOzvSR4bB1vNC3 (ID: 960)

fnfOzvSRjA7kgPZP (ID: 363)

-1 OR 2+414-414-1=0+0+0+1 (ID: 965)

fnfOzvSR' AND 2*3*8=6*8 AND 'CNQM'='CNQM (ID: 365)

fnfOzvSRzPNIYYVj' OR 240=(SELECT 240 FROM PG_SLEEP(15))-- (ID: 975)

fnfOzvSR" AND 2*3*8=6*8 AND "kiwB"="kiwB (ID: 963)

@@n7cN6 (ID: 982)

fnfOzvSR" AND 2*3*8=6*8 AND "FaaW"="FaaW (ID: 366)

-1 OR 2+529-529-1=0+0+0+1 (ID: 368)

fnfOzvSR%' AND 2*3*8=6*8 AND 'YiQ0'!='YiQ0% (ID: 367)

-1 OR 3+414-414-1=0+0+0+1 (ID: 966)

-1 OR 3+529-529-1=0+0+0+1 (ID: 369)

BlackForge (ID: 4)

DeviceForge (ID: 3)

XNUVault (ID: 5)

@@gzEim (ID: 227)

fnfOzvSRLo8QILnB' OR 302=(SELECT 302 FROM PG_SLEEP(15))-- (ID: 687)

fnfOzvSRRoP5hysU' OR 504=(SELECT 504 FROM PG_SLEEP(15))-- (ID: 927)

fnfOzvSRhUKZ1Fpp (ID: 77)

fnfOzvSR' AND 2*3*8=6*8 AND 'tZz0'='tZz0 (ID: 79)

fnfOzvSR" AND 2*3*8=6*8 AND "2aQs"="2aQs (ID: 80)

fnfOzvSR%' AND 2*3*8=6*8 AND '6O9a'!='6O9a% (ID: 81)

-1 OR 2+339-339-1=0+0+0+1 (ID: 82)

-1 OR 3+339-339-1=0+0+0+1 (ID: 83)

fnfOzvSR'||' (ID: 84)

if(now()=sysdate(),sleep(15),0) (ID: 85)

fnfOzvSR0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z (ID: 86)

fnfOzvSR0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z (ID: 87)

(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/ (ID: 88)

fnfOzvSR-1 waitfor delay '0:0:15' -- (ID: 89)

fnfOzvSRNBbRQqav'; waitfor delay '0:0:15' -- (ID: 90)

fnfOzvSR3EfqCYup' OR 268=(SELECT 268 FROM PG_SLEEP(15))-- (ID: 91)

fnfOzvSRgsNIiIgq') OR 728=(SELECT 728 FROM PG_SLEEP(15))-- (ID: 92)

fnfOzvSRQ0hD5AbR')) OR 212=(SELECT 212 FROM PG_SLEEP(15))-- (ID: 93)

fnfOzvSR'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||' (ID: 94)

fnfOzvSR'" (ID: 96)

fnfOzvSR%C0%A7%C0%A2%2527%2522\'\" (ID: 97)

@@uESYn (ID: 98)

fnfOzvSRxTpC2joM') OR 605=(SELECT 605 FROM PG_SLEEP(15))-- (ID: 1167)

fnfOzvSR" AND 2*3*8=6*8 AND "XHws"="XHws (ID: 318)

-1 OR 2+442-442-1=0+0+0+1 (ID: 320)

fnfOzvSRdnslroBI' OR 939=(SELECT 939 FROM PG_SLEEP(15))-- (ID: 330)

fnfOzvSRgO60uEKd')) OR 987=(SELECT 987 FROM PG_SLEEP(15))-- (ID: 332)

fnfOzvSR' AND 2*3*8=6*8 AND 'Hg5v'='Hg5v (ID: 556)

-1 OR 2+407-407-1=0+0+0+1 (ID: 559)

fnfOzvSRLFXSOzJG (ID: 912)

fnfOzvSRHIHAT7ym'; waitfor delay '0:0:15' -- (ID: 568)

fnfOzvSRtI8ixw4a')) OR 368=(SELECT 368 FROM PG_SLEEP(15))-- (ID: 571)

fnfOzvSR%' AND 2*3*8=6*8 AND 'yXWy'!='yXWy% (ID: 916)

fnfOzvSR%' AND 2*3*8=6*8 AND '3Xc3'!='3Xc3% (ID: 676)

fnfOzvSR" AND 2*3*8=6*8 AND "IU0o"="IU0o (ID: 1154)

fnfOzvSRgaiMlIAj (ID: 204)

fnfOzvSR' AND 2*3*8=6*8 AND 'Xiad'='Xiad (ID: 206)

fnfOzvSR%' AND 2*3*8=6*8 AND 'wgmy'!='wgmy% (ID: 208)

-1 OR 3+785-785-1=0+0+0+1 (ID: 210)

fnfOzvSR'|||' (ID: 212)

fnfOzvSRUwTUFNLM') OR 621=(SELECT 621 FROM PG_SLEEP(15))-- (ID: 688)

fnfOzvSR2rjHYmuo' OR 296=(SELECT 296 FROM PG_SLEEP(15))-- (ID: 220)

fnfOzvSRLHdDvEXt')) OR 672=(SELECT 672 FROM PG_SLEEP(15))-- (ID: 222)

@@z08Sq (ID: 694)

fnfOzvSRzbNIjQNf')) OR 360=(SELECT 360 FROM PG_SLEEP(15))-- (ID: 1168)

@@52jTi (ID: 1173)

fnfOzvSRXfP2fJWU (ID: 554)

fnfOzvSR" AND 2*3*8=6*8 AND "T4BB"="T4BB (ID: 557)

-1 OR 3+407-407-1=0+0+0+1 (ID: 560)

fnfOzvSRYQc9D0Nq (ID: 1151)

fnfOzvSR%' AND 2*3*8=6*8 AND 'XdbW'!='XdbW% (ID: 1155)

fnfOzvSRMRs09mqM' OR 776=(SELECT 776 FROM PG_SLEEP(15))-- (ID: 569)

fnfOzvSR' AND 2*3*8=6*8 AND '7aox'='7aox (ID: 674)

-1 OR 2+716-716-1=0+0+0+1 (ID: 677)

-1 OR 2+96-96-1=0+0+0+1 (ID: 917)

fnfOzvSRuJyraVsB'; waitfor delay '0:0:15' -- (ID: 686)

fnfOzvSRpHrbWkmg')) OR 859=(SELECT 859 FROM PG_SLEEP(15))-- (ID: 689)

fnfOzvSR4ZWg5t1O') OR 772=(SELECT 772 FROM PG_SLEEP(15))-- (ID: 928)

@@T3zbh (ID: 934)

fnfOzvSRvPvxnbG7 (ID: 802)

fnfOzvSR' AND 2*3*8=6*8 AND 'lgzz'='lgzz (ID: 804)

fnfOzvSR" AND 2*3*8=6*8 AND "tFcH"="tFcH (ID: 805)

fnfOzvSR%' AND 2*3*8=6*8 AND 'sXeO'!='sXeO% (ID: 806)

-1 OR 2+74-74-1=0+0+0+1 (ID: 807)

-1 OR 3+74-74-1=0+0+0+1 (ID: 808)

fnfOzvSRXdOcqsgs'; waitfor delay '0:0:15' -- (ID: 816)

fnfOzvSRuetWZJa2' OR 828=(SELECT 828 FROM PG_SLEEP(15))-- (ID: 817)

fnfOzvSRFnLcIYz6') OR 446=(SELECT 446 FROM PG_SLEEP(15))-- (ID: 818)

fnfOzvSRz3ALTykn')) OR 628=(SELECT 628 FROM PG_SLEEP(15))-- (ID: 819)

fnfOzvSRBa8igAQG')) OR 206=(SELECT 206 FROM PG_SLEEP(15))-- (ID: 929)

ASMVault (ID: 6)

fnfOzvSR (ID: 8)

fnfOzvSRtXvwm6b6'; waitfor delay '0:0:15' -- (ID: 1165)

@@Jku5F (ID: 824)

fnfOzvSRr7pGE6Wm' OR 874=(SELECT 874 FROM PG_SLEEP(15))-- (ID: 1166)

fnfOzvSRX6WIRSy5 (ID: 315)

fnfOzvSR' AND 2*3*8=6*8 AND 'QApe'='QApe (ID: 317)

fnfOzvSR%' AND 2*3*8=6*8 AND '8PLD'!='8PLD% (ID: 319)

-1 OR 3+442-442-1=0+0+0+1 (ID: 321)

fnfOzvSR9KJR8tYn'; waitfor delay '0:0:15' -- (ID: 329)

fnfOzvSRPtAR09X0') OR 652=(SELECT 652 FROM PG_SLEEP(15))-- (ID: 331)

@@x3720 (ID: 337)

fnfOzvSR%' AND 2*3*8=6*8 AND '44aI'!='44aI% (ID: 558)

fnfOzvSR' AND 2*3*8=6*8 AND '5e38'='5e38 (ID: 1153)

fnfOzvSR4x1iR0r7 (ID: 672)

fnfOzvSR" AND 2*3*8=6*8 AND "lIF6"="lIF6 (ID: 675)

fnfOzvSR1SXthidS') OR 371=(SELECT 371 FROM PG_SLEEP(15))-- (ID: 570)

-1 OR 3+716-716-1=0+0+0+1 (ID: 678)

@@I4kCs (ID: 576)

fnfOzvSR" AND 2*3*8=6*8 AND "oCDW"="oCDW (ID: 915)

fnfOzvSR" AND 2*3*8=6*8 AND "pPyH"="pPyH (ID: 207)

-1 OR 2+785-785-1=0+0+0+1 (ID: 209)

-1 OR 3+610-610-1=0+0+0+1 (ID: 1157)

fnfOzvSR'||''||' (ID: 213)

fnfOzvSRJBPg550s'; waitfor delay '0:0:15' -- (ID: 219)

fnfOzvSRnlq0yMLh') OR 512=(SELECT 512 FROM PG_SLEEP(15))-- (ID: 221)

-1 OR 2+610-610-1=0+0+0+1 (ID: 1156)

fnfOzvSRaJfq9BFZ'; waitfor delay '0:0:15' -- (ID: 926)

fnfOzvSR' AND 2*3*8=6*8 AND 'VRUB'='VRUB (ID: 914)

-1 OR 3+96-96-1=0+0+0+1 (ID: 918)

KernelForge (ID: 7)

ClaudeForge (ID: 2)

Version Summary

System Version Location Key Files Data
ForgeNet v1.4.0 Mac Mini forgenet.sh Central Controller
BlackForge v1.2.2 Mac Mini + Ubuntu step1~10, xnu_match_worker.py ~22GB output
DeviceForge v1.0.0 Mac Mini deviceforge.py 70MB kernel
XNUVault v1.3.0 Ubuntu xnuvault.py, xnu_db.py 41,801 functions
ASMVault v1.2.7 Ubuntu asmvault.py 77,213 functions
KernelForge v16.11 Ubuntu :5433 db_client.py, forge_sync.sh 33 tables
ClaudeForge v2.2.1 AWS :9000 claudeforge.py, worklog.py Work logs