업데이트로 돌아가기
New releaseSep 12, 2026

ipsw v3.1.716

iOS/macOS 연구용 스위스 아미 나이프

공유

IPSW Logo

ipsw

iOS/macOS 연구용 스위스 아미 나이프


ipsw는 Apple 펌웨어 연구 및 리버스 엔지니어링을 위한 명령줄 툴킷입니다. IPSW와 OTA를 다운로드하고 압축을 해제하며, Mach-O 바이너리와 dyld shared cache를 검사하고, kernelcache를 분석하며, 연결된 iOS 기기와 함께 작업할 수 있습니다.

Agent skill · 설치 · CLI 예제 · 문서

AI 에이전트와 함께 ipsw 사용하기

Claude Code, Codex, Gemini CLI 또는 스킬을 지원하는 다른 에이전트에서 작업 중이라면 **ipsw-skill**로 시작하세요. 펌웨어 추출, 바이너리 분석, Apple 플랫폼 연구를 위한 명령 참조와 워크플로를 에이전트에 제공합니다.

ipsw CLI를 설치한 다음 스킬을 추가하세요:

npx skills add https://github.com/blacktop/ipsw-skill --skill ipsw

그런 다음 자연어로 작업을 요청할 수 있습니다. 예를 들어:

iPhone 15 Pro용 최신 IPSW를 다운로드하고 kernelcache를 추출해줘.

이 dyld shared cache에서 SpringBoardServices의 Objective-C 헤더를 덤프해줘.

이 두 kernelcache의 KEXT를 비교해줘.

스킬 README에는 Claude Code 플러그인과 Gemini CLI 확장을 포함한 개별 에이전트용 설정 지침이 있습니다.

설치

macOS

메인테이너의 Homebrew tap에는 extras 빌드가 포함되어 있습니다:

brew install blacktop/tap/ipsw

Homebrew core formula도 사용할 수 있습니다: brew install ipsw.

Linux

sudo snap install ipsw

Windows

scoop bucket add blacktop https://github.com/blacktop/scoop-bucket.git
scoop install blacktop/ipsw

GitHub Releases에서 바이너리를 다운로드할 수도 있습니다. 다른 패키지와 선택적 종속성에 대해서는 설치 가이드를 참조하세요. 일부 명령은 호스트 OS나 빌드 변형에 따라 달라집니다. 예를 들어 Frida 지원은 별도의 빌드가 있습니다.

할 수 있는 일

영역도구
펌웨어IPSW, OTA, macOS 설치 프로그램, Xcode, KDK 다운로드; 구성 요소 추출 및 빌드 비교
Mach-O로드 명령, 심볼, 서명, 엔타이틀먼트 검사; ARM64 코드 디스어셈블
dyld shared cache심볼 및 상호 참조 찾기, dylib 추출, Objective-C 헤더 덤프, Swift 메타데이터 검사
커널KEXT 추출, 시스템 콜 및 심볼 검사, kernelcache 비교
펌웨어 구성 요소IMG4 파싱, AEA 아카이브 복호화, iBoot 및 코프로세서 펌웨어 검사
기기기기 및 앱 목록, AFC로 파일 전송, 로그 캡처, 개발자 이미지 마운트
App Store Connect인증서, 번들 ID, 기기, 프로비저닝 프로파일 관리
연구크래시 로그 심볼화, SSH 디버깅, Frida 추적, LLM으로 디컴파일

CLI 예제

예제 파일 경로를 자신의 경로로 바꾸세요. ipsw --help를 실행하거나 하위 명령에 --help를 추가하면 해당 옵션을 볼 수 있습니다.

펌웨어 다운로드 및 추출

# Download the latest IPSW for iPhone 15 Pro
ipsw download ipsw --device iPhone16,1 --latest

# Inspect a local IPSW and extract its kernelcache
ipsw info /path/to/firmware.ipsw
ipsw extract --kernel /path/to/firmware.ipsw

# Compare two firmware builds
ipsw diff /path/to/old.ipsw /path/to/new.ipsw

dyld shared cache 탐색

ipsw dyld info /path/to/dyld_shared_cache_arm64e

# Extract Foundation for use in other tools
ipsw dyld extract /path/to/dyld_shared_cache_arm64e Foundation

# Dump headers directly from the cache
ipsw class-dump /path/to/dyld_shared_cache_arm64e SpringBoardServices --headers -o headers

Objective-C 분석을 위해 캐시를 직접 사용하세요: 추출된 dylib은 캐시의 다른 곳에 저장된 메타데이터를 여전히 참조할 수 있습니다.

바이너리 및 kernelcache 검사

# Select an architecture explicitly for universal binaries
ipsw macho info /path/to/binary --arch arm64e
ipsw macho disass /path/to/binary --arch arm64e --symbol _main

# Search a directory of binaries for an imported symbol
ipsw macho search /path/to/binaries --import 'CCCrypt'

# List KEXTs, then extract one by its full bundle ID
ipsw kernel kexts /path/to/kernelcache
ipsw kernel extract /path/to/kernelcache com.apple.driver.ASIOKit -o kexts

연결된 기기와 함께 작업

ipsw idev list
ipsw idev apps ls
ipsw idev afc ls /
ipsw idev syslog

LLM으로 디컴파일

macho disass와 dyld disass 명령은 --dec를 사용하여 디스어셈블리 결과를 구성된 LLM 제공자에게 보낼 수 있습니다. 제공자 설정, 모델 선택, 예제는 디컴파일러 가이드를 참조하세요.

구성 및 자동화

CLI는 ~/.config/ipsw/config.yaml에서 YAML 구성을 읽습니다. 다른 파일을 선택하려면 --config를 사용하세요. 설정 및 환경 변수는 config.example.yml과 구성 가이드를 참조하세요.

스크립트의 경우 universal 바이너리를 열 때 --arch로 아키텍처를 선택하고, 짧은 이름이 모호할 때는 전체 dylib 경로를 사용하세요. --json을 지원하는 명령은 해당 도움말에 문서화되어 있습니다.

별도의 ipswd 데몬은 자동화를 위한 REST API를 제공합니다. API 참조를 참조하세요.

문서 및 커뮤니티

버그를 보고할 때는 ipsw version, 실행한 명령, 관련 펌웨어 빌드 또는 파일 형식을 포함하세요. 로그와 크래시 보고서에서 개인 정보를 삭제하세요.

빌드 및 기여

소스에서 빌드하려면 Go 1.26 이상과 CGO용 C 툴체인이 필요합니다:

git clone https://github.com/blacktop/ipsw.git
cd ipsw
make build

개발 및 기여 지침은 CONTRIBUTING.md를 참조하세요.

크레딧

도구와 iOS 내부 문서를 제공한 Jonathan Levin, Apple 보안 연구 커뮤니티, 그리고 코드, 버그 보고, 연구로 기여해 주신 모든 분들께 감사드립니다.

라이선스

MIT.

카테고리