/ 디렉터리 / 플레이그라운드 / ipsw-skill
● 커뮤니티 blacktop 🔑 본인 키 필요

ipsw-skill

제작: blacktop · blacktop/ipsw-skill

에이전트에서 'ipsw' CLI(IPSW 다운로드/추출, 커널 캐시 비교, Mach-O 심사, 개인 프레임워크 ObjC 헤더)를 구동하세요.

ipsw-skill은 Claude(및 Codex CLI/Gemini CLI와 같은 호환 에이전트)에게 Blacktop의 'ipsw'(Apple 펌웨어 및 바이너리 분석을 위한 스위스군 CLI)를 구동하는 방법을 가르칩니다. IPSW 및 커널 캐시 다운로드/추출, 개인 프레임워크에서 Objective-C 헤더 덤프, 버전 간 커널 비교, 권한 감사 및 Mach-O 바이너리 검사를 위한 하위 명령을 알고 있습니다. 프레임워크 수준 동작을 디버깅하는 Apple 플랫폼 보안 연구원, 리버스 엔지니어 및 엔지니어를 대상으로 합니다.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

ipsw-skill.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ipsw-skill": {
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ],
      "_inferred": false
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ipsw-skill",
      "command": "claude",
      "args": [
        "plugin",
        "marketplace",
        "add",
        "blacktop/ipsw-skill"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "ipsw-skill": {
      "command": {
        "path": "claude",
        "args": [
          "plugin",
          "marketplace",
          "add",
          "blacktop/ipsw-skill"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add ipsw-skill -- claude plugin marketplace add blacktop/ipsw-skill

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: ipsw-skill

API 검색을 위해 프라이빗 프레임워크에서 Obj-C 헤더 덤프

👤 Apple 내부에 맞서 일하는 보안 연구원, SDK 유지관리자 ⏱ ~30 min advanced

언제 쓸까: 동작 변경을 연구하려면 비공개 프레임워크의 공개 표면(클래스 + 선택기 이름)이 필요합니다.

사전 조건
  • ipsw CLI가 설치되었습니다 — 양조 설치 blacktop/tap/ipsw
  • IPSW에서 추출된 dyld_shared_cache — 다운로드한 IPSW에서 ipsw 추출을 사용하세요.
흐름
  1. IPSW 다운로드
    내가 지정한 iOS 버전에 대해 ipsw 다운로드를 사용하세요.✓ 복사됨
    → IPSW가 로컬에 저장됨
  2. 공유 캐시 추출
    IPSW에서 dyld_shared_cache를 추출합니다.✓ 복사됨
    → 공유 캐시 파일 추출됨
  3. 대상 프레임워크에 대한 덤프 헤더
    <FrameworkName>에 대한 Obj-C 헤더를 덤프합니다.✓ 복사됨
    → 클래스 및 선택기가 포함된 헤더 덤프

결과: 버전별로 비교할 수 있는 읽기 가능한 헤더가 있습니다.

함정
  • 시뮬레이터 바이너리와 장치 바이너리의 혼동 — 항상 연구 중인 장치/아치를 지정하세요. 시뮬레이터 슬라이스가 다릅니다
함께 쓰기: ghidrassistmcp

두 가지 iOS 버전에서 커널 캐시 비교

👤 커널 및 XNU 연구원 ⏱ ~60 min advanced

언제 쓸까: 새로운 iOS 버전이 출시되었습니다. 커널에서 변경된 사항을 확인하고 싶습니다.

흐름
  1. 두 커널 캐시 모두 추출
    IPSW A 및 IPSW B에서 커널 캐시를 추출합니다.✓ 복사됨
    → 디스크에 있는 두 개의 커널 캐시 파일
  2. 차이점
    두 개의 커널 캐시를 비교합니다. 추가/제거/수정된 기호를 나열합니다.✓ 복사됨
    → 기호 카테고리가 포함된 변경 목록

결과: 커널 수준 변경 사항에 대한 집중적인 변경 로그입니다.

함정
  • 기호 재정렬을 의미 있는 변경으로 처리 — 도구 그룹 재정렬과 실제 추가/제거 비교

자격 및 의심스러운 특성에 대해 Mach-O를 감사합니다.

👤 AppSec 검토자, 타사 종속성을 감사하는 개발자 ⏱ ~20 min intermediate

언제 쓸까: 앱과 함께 배송하기 전에 바이너리의 자격 및 가져오기를 확인하고 싶습니다.

흐름
  1. Mach-O 검사
    <path>에 대한 로드 명령, LC_CODE_SIGNATURE 및 자격을 표시합니다.✓ 복사됨
    → 자격 plist + 서명 정보
  2. 수입품 나열
    가져온 기호를 프레임워크별로 그룹화하여 나열합니다.✓ 복사됨
    → 가져오기 테이블 지우기

결과: 검토 스레드에 저장할 수 있는 간결한 감사 보고서입니다.

함께 쓰기: xcodebuild

조합

다른 MCP와 조합해 10배 효율

ipsw-skill + ghidrassistmcp

심층 분석을 위해 관심 있는 기능을 Ghidra에 전달

Mach-O 가져오기에서 의심스러운 기능을 선택하고 Ghidra에서 엽니다.✓ 복사됨

ipsw의 Apple 전용 도구와 함께 더 광범위한 RE 플레이북을 사용하세요.

dyld 캐시 작업을 위해 일반 RE 워크플로우를 ipsw와 결합합니다.✓ 복사됨
ipsw-skill + xcodebuild

로컬 앱을 구축하고 예상한 자격 프로필과 일치하는지 확인하세요.

xcodebuild 후에 아카이브에서 ipsw 자격을 실행하여 로그인된 내용을 감사합니다.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
ipsw download version/device selector 분석할 펌웨어 받기 bandwidth only
ipsw extract IPSW + target (dsc / kernelcache / ramdisk) IPSW에서 특정 아티팩트 가져오기 0
ipsw dyld class-dump dyld_shared_cache + framework 프라이빗 프레임워크 API 연구 0
ipsw kernel diff two kernelcaches 버전별 커널 분석 0
ipsw macho info/ent Mach-O path 이진 분류 0

비용 및 제한

운영 비용

API 쿼터
없음
호출당 토큰
출력은 아티팩트 크기에 따라 다릅니다. 범위 명령을 엄격하게
금액
무료; 다운로드 비용은 대역폭만
에이전트가 50MB의 기호를 컨텍스트에 붙여넣지 않도록 ipsw의 필터링 플래그를 사용하십시오.

보안

권한, 시크릿, 파급범위

자격 증명 저장: 기본 작동에는 필요하지 않습니다.
데이터 외부 송신: 'ipsw 다운로드'는 Apple의 공개 서버에서 IPSW를 가져옵니다. 스킬 자체에서는 추가 원격 측정이 없습니다.

문제 해결

자주 발생하는 오류와 해결

ipsw: 명령을 찾을 수 없습니다

Homebrew 탭을 통해 CLI를 설치합니다. Brew install blacktop/tap/ipsw.

확인: which ipsw
다운로드 시간 초과

Apple 서버는 속도를 제한할 수 있습니다. --resume으로 다시 시도하세요. 네트워크에서 대용량 다운로드를 허용하는지 확인하세요.

확인: curl -I https://appldnld.apple.com/...
클래스 덤프가 비어 있음을 반환합니다.

올바른 장치/아치에 대한 공유 캐시를 가리켰는지 확인하세요. 시뮬레이터 캐시는 장치 캐시와 별개입니다.

확인: ipsw dyld info <cache>

대안

ipsw-skill 다른 것과 비교

대안언제 쓰나단점/장점
ghidrassistmcpGhidra를 통한 본격적인 분해 및 스크립팅을 원합니다.훨씬 더 무겁습니다. 느린 시작
ida-pro-mcp이미 IDA Pro 라이선스를 취득했으며 MCP 통합을 원합니다.상용 도구
reverse-engineering-assistant더 광범위한 RE 워크플로 도우미를 원합니다.Apple에만 국한되지 않음

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기