중지. 엔드포인트를 호출하기 전에 이 SKILL.MD 전체를 읽으십시오.
analyze-elf은(는) 무엇을 하나요?
컴파일된 ELF 바이너리에서 기능을 리버스 엔지니어링합니다. 디스어셈블러가 아니라 — "이 바이너리가 무엇을 하는가?"라는 질문에 답하는 기능 추출기입니다.
사용 시기
- 컴파일된 CLI 도구(Bun SEA, Go, Rust, C/C++)가 무엇을 하는지 이해할 때
- CLI 명령어, 플래그, 도움말 텍스트 추출
- 상태 머신, 프로토콜 스키마, 이벤트 타입 복구
- JSON-RPC 메서드 및 Zod 데이터 모델 매핑
- Mermaid 다이어그램이 포함된 기소 브리핑 워크스루 생성
빠른 시작
# 기본 명령어 — 기능 추출, 워크스루 생성
.pi/skills/analyze-elf/run.sh features /path/to/binary --goal "미션 시스템 이해"
# AST 분석 포함 (/treesitter 사용, 느리지만 더 깊게)
.pi/skills/analyze-elf/run.sh features /path/to/binary --ast --goal "모든 RPC 메서드 찾기"
# 프로그램적 사용을 위한 JSON 출력
.pi/skills/analyze-elf/run.sh features /path/to/binary --output-format json
# 로우레벨 ELF 정보 (헤더, 심볼, 런타임 탐지)
.pi/skills/analyze-elf/run.sh elf /path/to/binary
# 정규식을 사용한 문자열 추출
.pi/skills/analyze-elf/run.sh strings /path/to/binary --pattern "mission|worker"
명령어
| 명령어 | 설명 |
|---|---|
features | 기본. 기능 추출 → Mermaid 다이어그램 워크스루 생성 |
elf | 로우레벨: 헤더, 섹션, 심볼, 런타임 탐지 |
strings | 정규식 필터 문자열 추출 |
features가 추출하는 것
| 카테고리 | 방법 | 예시 |
|---|---|---|
| CLI 명령어 | 도움말 텍스트 패턴 매칭 | exec, daemon, mcp |
| 상태 머신 | 열거형 할당 패턴 (M.State="값") | orchestrator_turn, paused |
| 이벤트 타입 | KH.literal("type_name") 패턴 | mission_accepted, worker_completed |
| JSON-RPC 메서드 | method: KH.literal("name") 패턴 | droid.session_notification |
| Zod 스키마 | KH.object({...}) 필드 추출 | Feature, WorkerHandoff, State |
| npm 패키지 | 번들된 package.json의 "name": "pkg" | @grpc/grpc-js |
| API 라우트 | /api/ 및 /v1/ 경로 리터럴 | /api/auth/login |
| 클래스/함수 | /treesitter를 통한 AST (--ast 플래그 필요) | MissionRunner, spawnWorker |
구성
/treesitter (AST 분석)
--ast가 전달되면, 이 스킬은:
.rodata에서 JS 소스 문자열을 추출합니다- JS 관련 행(함수/클래스/import/Zod 패턴)으로 필터링합니다
- 청크를
/treesitter parse --language javascript로 파이프합니다 - 클래스, 함수, 메서드 시그니처를 추출합니다
/create-walkthrough (자동 생성)
features 명령어는 다음이 포함된 기소 브리핑을 생성합니다:
- Mermaid CLI 명령어 트리
- Mermaid 상태 머신 다이어그램
- Mermaid 이벤트 타입 분류
- 필드 타입이 포함된 스키마 테이블
- 위험 평가 ("무엇이 잘못될 수 있는가")
/create-figure
elf 명령어를 통해 DOT 형식의 의존성 및 모듈 다이어그램을 사용할 수 있으며,
/create-figure를 통해 렌더링할 수 있습니다.
의존성
pyelftools— 구조화된 ELF 파싱httpx— /scillm API 호출typer— CLIloguru— 로깅- 시스템:
binutils(readelf, nm, strings)