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
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
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
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
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 |