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