프로토콜 리버스 엔지니어링은(는) 무엇을 하나요?
필수 조치 사항 (읽은 후 즉시 실행)
지금: ../field-journal/precedent-reverse.md 읽기 — 권한 및 일반 작업 경계 확인
지금: 작업이 프로토콜/트래픽/직렬화 형식 역공학인지 확인(순수 웹 파라미터 서명 → js-reverse/로 이동)
지금: 대상 네트워크 상호작용이 있는 경우 → ../scripts/case-init.ps1 실행하여 스코프 설정; auth가 승인되지 않은 경우 대상에 ACT 금지
다음: ../tool-index.md 읽기; 도구가 없으면 부트스트랩 (tshark/wireshark 등은 수동 설치 필요)
실행: 워크플로 Phase 1로 진입, 프레임 레이아웃 또는 메시지 사전 초안 작성
적용 시나리오
- 사용자 정의 TCP/UDP 바이너리 프로토콜
- Protobuf / gRPC / FlatBuffers / MessagePack
- WebSocket / MQTT / 사설 RPC
- PCAP / PCAPNG로 필드 및 상태 머신 복원
- 클라이언트-서버 검증, 시퀀스 번호, 암호화된 프레임 헤더
이 스킬을 사용하지 않는 경우
| 상황 | 이동 대상 |
|---|
| HTTP 파라미터 서명 / JS 암호화만 해당 | js-reverse/ |
| TLS 인증서 문제만 해당 | pentest-tools/ 또는 브라우저 프록시 |
| 펌웨어 내 프로토콜 스택 심층 분석 + 시뮬레이션 | firmware-pentest/ 후 다시 이 스킬 |
워크플로
Phase 1 — 수집 및 분류
□ 샘플 확보: PCAP / 프록시 내보내기 / 클라이언트 로그 / 바이너리
□ 방향 표시: C→S / S→C; 핸드셰이크, 하트비트, 재연결 여부
□ 고정 헤더? 매직 넘버? 길이 필드? TLV? 고정 길이?
□ 압축(zlib/gzip/lz4) 또는 암호화(AES/ChaCha 프레임 내부) 여부
□ tshark -r cap.pcap -T fields -e frame.number -e ip.src -e tcp.payload
Phase 2 — 프레임 레이아웃 복원
□ 여러 동일 타입 메시지 정렬, 불변 바이트 / 증가하는 시퀀스 번호 찾기
□ 길이 필드: 빅엔디안/리틀엔디안, 헤더 포함/미포함
□ 체크섬: CRC16/32, checksum, HMAC 위치
□ 상태 머신 그리기: Connect → Auth → Ready → Request/Response → Close
□ 도구: Wireshark 사용자 정의 디섹터 초안 / ImHex / 010 Editor 템플릿 / Kaitai Struct
Phase 3 — 직렬화 및 암호화
□ Protobuf: .proto 복원 (blackboxprotobuf / pbtk / protoc --decode_raw)
□ gRPC: HTTP/2 헤더 + protobuf 본문
□ 암호화: 키 파생 찾기(클라이언트 so/dll/JS) → ida-reverse / js-reverse / apk-reverse와 연계
□ 재생: 권한이 부여된 스코프 내에서만 수행; 무해한 필드부터 시작 후 민감한 작업
Phase 4 — 산출물
필수 산출물:
- 메시지 타입 표 (name / opcode / fields)
- 최소 1개의 재현 가능한 디코딩 명령어 또는 스크립트
- 증거: 원본 hex 발췌 + 디코딩 결과 (비식별화)
도구 체인
| 도구 | 필수 | 용도 | 부트스트랩 |
|---|
| tshark / Wireshark | 강력 권장 | PCAP 분석 | 수동 / winget |
| Python3 | 예 | 디코딩 스크립트 | 시스템 |
| blackboxprotobuf | 선택 | 알 수 없는 protobuf | pip |
| ImHex / 010 | 선택 | 구조 템플릿 | 수동 |
| IDA / r2 / Ghidra | 필요 시 | 클라이언트 직렬화 함수 | 해당 스킬 참조 |
참고
references/protocol-workflow.md — 프레임 레이아웃 및 Protobuf 빠른 참조
- 관련:
../ida-reverse/ ../js-reverse/ ../firmware-pentest/ ../pentest-tools/
라우팅 컨텍스트
상위: MASTER-ROUTING R21 · routing.md
하위: 클라이언트 알고리즘 필요 시 → ida-reverse/js-reverse; 재생 활용 필요 시 → pentest-tools/api-security
동급: malware-analysis(C2 프로토콜), digital-forensics(트래픽 포렌식)
작업 완료 자가 점검