macOS / Mach-O 리버스 엔지니어링
필수 작업 (읽은 후 즉시 실행)
NOW:../field-journal/precedent-reverse.md읽기NOW: 대상이 macOS/Mach-O/App 번들인지 확인 (iOS IPA →mobile-reverse/)NEXT: tool-index, jtool2/lldb 등 확인ACT: 서명 및 로드 정보 확인 → 정적 분석 → 동적 분석(lldb/Frida)
적용 시나리오
- Mach-O 실행 파일 / dylib / framework
- .app 번들, LaunchAgent/Daemon
- Objective-C / Swift 심볼 및 런타임
- 공증/서명, Hardened Runtime, TCC 관련 행위 분석
- macOS 악성코드 정적/동적 분석 (malware-analysis 와 연계)
워크플로우
1. 패키지 및 서명
file target
codesign -dv --verbose=4 target
spctl -a -vv target 2>&1
otool -L target
2. 정적 분석
□ class-dump / swift-demangle / Hopper / Ghidra / IDA
□ 문자열 및 XPC 서비스명, TCC 민감 API
□ LC_LOAD_dylib 종속성과 rpath
3. 동적 분석
□ lldb / Frida
□ fs_usage / log stream 관찰
□ 네트워크: protocol-reverse 또는 프록시와 연계
도구 체인
| 도구 | 용도 |
|---|---|
| otool / nm / codesign | 시스템 내장 |
| Hopper / Ghidra / IDA | 디컴파일 |
| class-dump / dsdump | ObjC |
| Frida / lldb | 동적 |
| jtool2 | Mach-O |
참고
references/macho-triage.md../mobile-reverse/(iOS)../ghidra-reverse/../malware-analysis/
라우팅 컨텍스트
상위: MASTER R31
하위: iOS → mobile-reverse; 일반 샘플 → malware-analysis
작업 완료 자가 점검
- 서명/Hardened Runtime 상태를 기록했는가?
- 주소 수준/심볼 수준 결론을 도출했는가?
- 체크리스트를 작성했는가?