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.242.36)"] 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

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

ForgeNet (ID: 1)

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

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

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

fnfOzvSRNWZocUmD') OR 473=(SELECT 473 FROM PG_SLEEP(15))-- (ID: 379)

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

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

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

fnfOzvSRHVyb8uov (ID: 960)

fnfOzvSRgJJDQmPn' OR 874=(SELECT 874 FROM PG_SLEEP(15))-- (ID: 378)

fnfOzvSR8RD2636h')) OR 892=(SELECT 892 FROM PG_SLEEP(15))-- (ID: 380)

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

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

@@j1Pva (ID: 385)

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

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

@@0qIpf (ID: 982)

fnfOzvSRFAlDsgsv')) OR 454=(SELECT 454 FROM PG_SLEEP(15))-- (ID: 977)

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

fnfOzvSR6DdKfb78' OR 174=(SELECT 174 FROM PG_SLEEP(15))-- (ID: 975)

fnfOzvSRUmfgVrlT') OR 253=(SELECT 253 FROM PG_SLEEP(15))-- (ID: 976)

fnfOzvSRKUV2z7tw (ID: 363)

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

BlackForge (ID: 4)

DeviceForge (ID: 3)

XNUVault (ID: 5)

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

fnfOzvSRITqSg560' OR 500=(SELECT 500 FROM PG_SLEEP(15))-- (ID: 1166)

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

fnfOzvSRZlL828HE') OR 806=(SELECT 806 FROM PG_SLEEP(15))-- (ID: 221)

@@z8z82 (ID: 227)

fnfOzvSRpwz5eH6f (ID: 802)

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

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

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

fnfOzvSRy9uWnVqU' OR 789=(SELECT 789 FROM PG_SLEEP(15))-- (ID: 817)

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

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

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

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

fnfOzvSRGOrWTHeS')) OR 907=(SELECT 907 FROM PG_SLEEP(15))-- (ID: 929)

fnfOzvSRpT4lKeqv' OR 215=(SELECT 215 FROM PG_SLEEP(15))-- (ID: 569)

fnfOzvSRjMJjMYsu')) OR 563=(SELECT 563 FROM PG_SLEEP(15))-- (ID: 571)

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

fnfOzvSRpldK2e1b' OR 372=(SELECT 372 FROM PG_SLEEP(15))-- (ID: 91)

fnfOzvSRBHhkUb4G') OR 88=(SELECT 88 FROM PG_SLEEP(15))-- (ID: 92)

fnfOzvSRwqpjxrhg')) OR 966=(SELECT 966 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)

@@R8ypA (ID: 98)

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

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

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

fnfOzvSRnPRnP5N7') OR 799=(SELECT 799 FROM PG_SLEEP(15))-- (ID: 331)

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

fnfOzvSRigFMDA34 (ID: 204)

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

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

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

fnfOzvSR'|||' (ID: 212)

fnfOzvSRi8qG7fjf' OR 415=(SELECT 415 FROM PG_SLEEP(15))-- (ID: 220)

fnfOzvSRmwphfxF4')) OR 502=(SELECT 502 FROM PG_SLEEP(15))-- (ID: 222)

fnfOzvSRsXnpsy4I') OR 525=(SELECT 525 FROM PG_SLEEP(15))-- (ID: 1167)

@@svz3T (ID: 1173)

fnfOzvSRHmeDE3P4 (ID: 912)

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

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

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

fnfOzvSRssI4sQYI (ID: 554)

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

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

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

fnfOzvSR6YX8QXqd') OR 918=(SELECT 918 FROM PG_SLEEP(15))-- (ID: 818)

@@PP9kH (ID: 824)

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

fnfOzvSRXMg38EwM') OR 192=(SELECT 192 FROM PG_SLEEP(15))-- (ID: 570)

fnfOzvSR6bgtc4Q4' OR 232=(SELECT 232 FROM PG_SLEEP(15))-- (ID: 927)

@@1p8yk (ID: 576)

fnfOzvSRGhOzH5bu (ID: 1151)

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

fnfOzvSRx8WPj48T (ID: 672)

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

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

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

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

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

@@vXxZy (ID: 934)

fnfOzvSRTBnNg5iA (ID: 315)

ASMVault (ID: 6)

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

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

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

fnfOzvSR0JLUGJBF (ID: 77)

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

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

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

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

-1 OR 3+411-411-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)

fnfOzvSR (ID: 8)

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

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

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

fnfOzvSRTzlJ7RWy' OR 885=(SELECT 885 FROM PG_SLEEP(15))-- (ID: 330)

fnfOzvSReQCXv5KK')) OR 823=(SELECT 823 FROM PG_SLEEP(15))-- (ID: 332)

@@dmow6 (ID: 337)

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

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

fnfOzvSRoetGcSXT')) OR 781=(SELECT 781 FROM PG_SLEEP(15))-- (ID: 819)

fnfOzvSR8pfDTZMc') OR 84=(SELECT 84 FROM PG_SLEEP(15))-- (ID: 928)

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

fnfOzvSRWfxJHKCh')) OR 668=(SELECT 668 FROM PG_SLEEP(15))-- (ID: 1168)

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

fnfOzvSR9x4IFBX8' OR 475=(SELECT 475 FROM PG_SLEEP(15))-- (ID: 687)

fnfOzvSRLWDChyKN') OR 810=(SELECT 810 FROM PG_SLEEP(15))-- (ID: 688)

fnfOzvSRJbYZjKx2')) OR 577=(SELECT 577 FROM PG_SLEEP(15))-- (ID: 689)

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

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

@@SZLpn (ID: 694)

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

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

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