재컴파일된 kernelcache를 검증하고 서명합니다.
[검증 항목]
• Mach-O 구조 검증
• 섹션 정합성 확인
• 심볼 테이블 검증
• 엔트리포인트 확인
[서명]
• ldid로 ad-hoc 서명
• 코드 서명 검증
[부팅 테스트 (옵션)]
• 대박폰에 전송
• 부팅 시도
• 커널 패닉 확인
[출력]
• output/final/kernelcache.signed - 서명된 커널
ForgeNet
🔍
← 파이프라인 개요
/ BlackForge / Step 10
10
Verify
BlackForge Pipeline · Phase 4
✓ Active
📥 입력 (Input)
kernelcache
📤 출력 (Output)
signed kernel
📋 상세 설명 (Description)
📁 소스 파일 (Source Files)
17개 파일
step1_disassemble.sh
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step1_disassemble.sh
shell
macmini
Step 1: 디스어셈블
소스 코드 로딩 중...
step2_fix_gas.sh
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step2_fix_gas.sh
shell
macmini
Step 2: GAS 변환
소스 코드 로딩 중...
xnu_match.py
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step03-XNU매칭/xnu_match.py
python
macmini
XNU 매칭 스크립트
소스 코드 로딩 중...
xnu_match_worker.py
/home/hacker/docs/800000_forgenet_ubuntu_server/070000_BlackForge_remote_worker/xnu_match_worker.py
python
ubuntu
XNU 원격 매칭 워커
소스 코드 로딩 중...
fix_adrp.py
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step04-ADRP수정/fix_adrp.py
python
macmini
Step 4: ADRP 수정
소스 코드 로딩 중...
fix_adr.py
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step05-ADR수정/fix_adr.py
python
macmini
Step 5: ADR 수정
소스 코드 로딩 중...
rebuild_macho.py
/Users/hacker/docs/700008_forgenet_center/050000_BlackForge_macmini_local/pipeline/steps/step09-리빌드/rebuild_macho.py
python
macmini
Step 9: Mach-O 리빌드
소스 코드 로딩 중...
kernelcache_disasm.py
pipeline/steps/step01-디스어셈블/kernelcache_disasm.py
python
Mac Mini
iOS kernelcache Mach-O를 ARM64 어셈블리로 디스어셈블. Capstone 엔진 사용.
소스 코드 로딩 중...
run.sh
pipeline/steps/step01-디스어셈블/run.sh
shell
Mac Mini
Step 1 실행 스크립트. 입력 검증, 디스어셈블 실행, 결과 검증.
소스 코드 로딩 중...
fix_asm_for_compile.py
pipeline/steps/step02-GAS변환/fix_asm_for_compile.py
python
Mac Mini
디스어셈블된 ARM64를 컴파일 가능한 GAS 형식으로 변환. 절대주소를 레이블로, SVE/MTE 명령어를 .byte로 변환.
소스 코드 로딩 중...
xnu_match.py
pipeline/steps/step03-XNU매칭/xnu_match.py
python
Mac Mini + Ubuntu
XNUVault(41,801 함수)와 ASMVault(77,213 함수)를 사용한 소스 매칭. 분할 인덱스 Lazy 로드 지원.
소스 코드 로딩 중...
fix_adrp.py
pipeline/steps/step04-ADRP수정/fix_adrp.py
python
Mac Mini
ADRP 명령어를 기계어(.byte)로 직접 인코딩. PC-relative 페이지 주소 계산 (21-bit imm, ±4GB 범위).
소스 코드 로딩 중...
fix_adr.py
pipeline/steps/step05-ADR수정/fix_adr.py
python
Mac Mini
ADR 명령어를 기계어(.byte)로 직접 인코딩. PC-relative 직접 주소 계산 (21-bit imm, ±1MB 범위).
소스 코드 로딩 중...
fix_ldr_literal.py
pipeline/steps/step06-LDR수정/fix_ldr_literal.py
python
Mac Mini
LDR literal 명령어를 기계어로 인코딩. GPR(32/64-bit), SIMD(32/64/128-bit) 레지스터 지원.
소스 코드 로딩 중...
fix_branch.py
pipeline/steps/step07-브랜치수정/fix_branch.py
python
Mac Mini
B/BL 분기 명령어를 기계어로 인코딩. 26-bit imm, ±128MB 범위. 내부/외부 참조 처리.
소스 코드 로딩 중...
rebuild_macho.py
pipeline/steps/step09-리빌드/rebuild_macho.py
python
Mac Mini
원본 kernelcache를 베이스로 __TEXT_EXEC 섹션을 재컴파일된 코드로 교체. NOP 패딩 처리.
소스 코드 로딩 중...
blackforge.sh
pipeline/blackforge.sh
shell
Mac Mini
BlackForge v1.2.2 통합 마스터 스크립트. build/quick/verify/status 명령어 지원.
소스 코드 로딩 중...
⌨️ 실행 명령어 (Commands)
# 검증 실행
cd pipeline/steps/step10-검증
./run.sh
# Mach-O 검증
otool -l output/final/kernelcache | head -50
# 서명
ldid -S output/final/kernelcache
# 코드 서명 확인
codesign -dv output/final/kernelcache