Go / Rust 바이너리 리버스 엔지니어링
필수 수행 (读完后立刻执行)
NOW:../field-journal/precedent-reverse.md읽기NOW: 샘플이 Go/Rust 컴파일 결과물인지 확인 (file/문자열/런타임 특징)NEXT: GoReSym / 관련 플러그인 사용 가능 여부 확인ACT: 런타임 식별 → 심볼/메타데이터 복구 → 비즈니스 로직
적용 시나리오
- 스트리핑된 Go 악성코드/도구
- Rust 배포 바이너리, panic 문자열 기반 분석
- 일반 IDA/Ghidra와 상호 보완하는 언어 특화 접근법
워크플로
Go
□ go.buildid, runtime 심볼 잔재, pclntab 식별
□ GoReSym / redress / IDA Go 플러그인으로 함수명 복구
□ 인터페이스, 슬라이스, 문자열 구조가 디컴파일에서 나타나는 형태 주의
□ 네트워크/암호화 라이브러리 경로: crypto/* net/http
Rust
□ panic 문자열, rust_begin_unwind, crate 경로 단서
□ 제네릭 인스턴스화로 인한 코드 비대; 먼저 문자열 xref 찾기
□ async/tokio 상태 머신은 교차 참조와 결합
동적 분석
□ Frida 여전히 사용 가능; Go 스택 및 스케줄링 주의
□ 로그 및 설정 문자열 기반 중단점 우선 사용
도구 체인
| 도구 | 용도 |
|---|---|
| GoReSym | Go 메타데이터 |
| IDA/Ghidra + Go/Rust 플러그인 | 디컴파일 |
| radare2 | 빠른 문자열 검색 |
| strings / rabin2 | 초기 진단 |
참고
references/go-rust-notes.md../reverse-engineering/go-reverse.md../ida-reverse/../ghidra-reverse/- seed:
field-journal/seed-002_go-malware-stripped.md
라우팅 컨텍스트
상위: MASTER R33
하위: 악성 샘플 흐름 malware-analysis; 일반 RE reverse-engineering
작업 완료 자가 점검
- 주요 함수명 또는 이에 상응하는 매핑을 복구했습니까?
- 언어 런타임 증거를 표시했습니까?
- 체크리스트를 완료했습니까?