
1. 이 글을 쓰는 이유
- 거가대교·ITS 현장에서 요금징수는 단감기·차감기·RSE·OBU·정산서버·영상기반 차로가 한 묶음으로 돌아감
- 레거시 바이너리·전문(报文) 포맷·펌웨어만 남아 있고 소스·스펙이 비어 있는 경우가 많음
- 오픈소스 morluto/rea (REA: Reverse Engineer Anything)는 MCP로 에이전트에 리버스 도구를 붙이는 툴셋임 (MIT, TypeScript, npm
rea-agents)
- 이 글은 REA를 소유·운영하는 요금징수시스템의 상호운용·마이그레이션·보안 감사에 맞게 쓰는 실무 가이드임
- 타사·타 기관 장비를 무단으로 분석하거나 요금·인증을 우회하는 용도가 아님
2. REA가 실제로 하는 일 (기능 요약)
- 에이전트(Cursor, Claude Code, Grok Build 등)에 MCP 서버를 등록하고, 조사 지침 스킬
reverse-engineer-anything을 설치함
- 설치:
npx rea-agents setup (또는 skill-only: npx skills add morluto/rea --skill reverse-engineer-anything)
- 분석은 로컬에서 수행되고, 결과는 Evidence(근거·한계)와 함께 돌아옴
- 대상별 대표 도구(공식 README·SKILL 기준):
| 대상 | REA가 돌려주는 것 | 필요 도구 |
| 네이티브 바이너리 | 의사코드·어셈블리·심볼·참조 | Ghidra / Hopper / IDA |
| 펌웨어 이미지 | 영역·추출 결과 → 네이티브 인계 | Binwalk / Unblob (Linux) |
| 패킷 캡처 | 선택 필드·필터·decode-as | TShark 4.x + prlimit (Linux) |
| JavaScript / Electron | 모듈·임포트·IPC·라우트 | Node.js (엔진 불필요) |
| .NET 어셈블리 | 메타데이터·CIL·네이티브 의존성 | 없음(정적) |
| SQLite 스냅샷 | 스키마·인덱스·행 샘플 | Node 네이티브 SQLite 조건 |
- 소스가 완전하면 REA를 건너뛰고 일반 저장소 분석을 쓰라고 스킬이 명시함
- 공식 Disclaimer: 합법 연구·상호운용·보존·소유/인가된 소프트웨어 분석용. DRM·치트·무단 접근 지원 안 함
3. 법적·윤리 프레임 (요금징수에 맞게)
- 해도 되는 것: 우리 차로·정산·연동 시스템의 레거시 이해, 규격 복원, 신규 시스템 이관, 취약점 점검(인가 범위), 장애 원인 분석
- 하면 안 되는 것: 타 사업자 하이패스/영상징수 장비 무단 분해, 요금 계산·인증 우회, 운영 중 타 시스템 패킷 가로채기
- 시작 전 체크: 대상 파일 경로·SHA-256, 인가 문서/티켓, 분석 목적(상호운용 / 감사 / 마이그레이션)을 메모에 남김
- pcap은 이미 저장된 캡처만 검사함. REA
inspect_packet_capture는 라이브 캡처·인터페이스 제어를 하지 않음
4. 요금징수 구성요소 ↔ REA 라우팅

- 단감기·차감기·정산서버 ELF/PE:
open_binary → 함수 목록·디컴파일·문자열로 요금·차로 상태 전이 추적
- OBU·RSE·차로제어기 펌웨어:
inspect_firmware_regions / extract_firmware 후 추출된 ELF에 다시 open_binary
- DSRC·정산 전문 pcap:
inspect_packet_fields로 필드명 확인 → inspect_packet_capture로 선택 필드·display_filter 적용
- 영상기반 요금징수 UI: ASAR/추출 트리에
analyze_javascript_application (IPC·모듈 관계)
- 정산·년슴스 연동 .NET:
inspect_managed_artifact로 CIL·메타데이터 확인
- 로컬 정산 DB: 정지된 스냅샷에
inspect_sqlite_database (스키마 우선)
5. 실무 커스텀: 전용 에이전트 스킬
- REA는 원본 스킬을 에이전트 스킬 디렉터리에 설치함. 요금징수 현장용으로는 라우팅표·금지사항·산출물 템플릿을 좁힌 스킬을 옆에 두는 방식이 안전함
- 원본 MCP 도구를 바꾸지 않음. “무엇을 먼저 열고, 무엇을 문서로 남길지”만 고정함
- 아래는 드롭인 예시
SKILL.md 핵심임 (전체 파일은 글 하단·저장소 메모에 동일본 보관)
---
name: rea-toll-collection-its
description: 소유·운영 요금징수(ITS) 구성요소를 REA로 인가 범위 안에서 분석한다.
metadata:
version: "1"
inspired_by: "morluto/rea reverse-engineer-anything"
---
# 경계
- 허용: 소유·인가된 시스템, 상호운용·마이그레이션·감사
- 금지: 무단 분석, 요금·인증 우회, 타 시스템 공격
# 라우팅
- 네이티브: open_binary → analyze_function / decompile
- 펌웨어: inspect_firmware_regions → extract_firmware → open_binary
- pcap: inspect_packet_fields → inspect_packet_capture
- Electron/JS: analyze_javascript_application
- .NET: inspect_managed_artifact
- SQLite 스냅샷: inspect_sqlite_database
# 산출
인가 / Evidence / 한계 / 다음 액션(스펙·테스트 벡터)
- 에이전트에 원본
reverse-engineer-anything을 설치한 뒤, 이 지침을 프로젝트 룰·추가 스킬로 붙이면 됨
- 별도 공개 GitHub 레포는 만들지 않음. 원본 REA가 이미 MIT로 공개돼 있고, 커스텀은 지침 파일 수준이라 포스팅·로컬 스킬로 충분하다고 판단함
6. 적용 시나리오 4가지 (읽기 쉬운 흐름)
6-1. 레거시 정산서버 바이너리 → 마이그레이션 명세
rea inspect /path/toll-server --provider ghidra --json 으로 개요 확인
- 요금·차로·전문 송수신 관련 심볼/문자열을 검색한 뒤 함수 단위로 디컴파일
- Evidence 주소를 표로 옮겨 “추정”과 “관찰”을 분리해 이관 스펙 초안 작성
6-2. RSE–OBU DSRC 상호운용
- 운영 인가 하에 확보한 pcap만 사용
inspect_packet_fields로 프로토콜/필드 후보 확인 후, UDP/커스텀 포트에 decode_as 적용
- 반복 헤더·길이·체크섬 후보를 표로 정리 → 신규 RSE/시뮬레이터 적합성 테스트에 투입
6-3. 단감기·OBU 펌웨어 영역 파악
inspect_firmware_regions로 파티션·압축 영역 오프셋 확인
- 필요 시 새 출력 디렉터리로
extract_firmware 후, 나온 ELF만 골라 네이티브 분석
- 공식 문서 한계: 에뮬레이션·장치 실행·임의 취약점 스캔은 이 마일스톤 밖임
6-4. 영상기반 요금징수 Electron 앱
- ASAR 또는 추출 트리에
analyze_javascript_application
- 카메라·정산 API·preload IPC 경계를 Evidence로 확보 → 내부 보안 리뷰·버전 비교에 활용
7. 빠른 시작 명령
# 에이전트 등록
npx rea-agents@latest setup
# JS/Electron (엔진 불필요)
npx -y rea-agents@latest analyze-javascript-application /abs/path/to/app --json
# 네이티브 (provider 필요)
rea inspect /abs/path/toll-bin --provider ghidra --json
# 펌웨어 (Binwalk/Unblob 경로 export 후)
rea inspect-firmware-regions /abs/path/fw.bin
# 패킷 (Linux + REA_TSHARK_COMMAND)
rea inspect-packet-capture /abs/path/dsrc.pcapng --fields data.data --display_filter udp
8. 한눈에 정리
| 항목 | 내용 |
| 도구 | REA (morluto/rea) — MCP + CLI + skill |
| 적용 대상 | 소유·운영 요금징수 바이너리·펌웨어·pcap·JS·.NET |
| 커스텀 | 요금징수 전용 SKILL 라우팅·산출 템플릿 |
| 목적 | 상호운용·마이그레이션·인가된 보안 감사 |
| 금지 | 무단 분석·요금/인증 우회·타 시스템 공격 |
| 핵심 습관 | Evidence와 한계를 함께 기록 |
9. 출처·참고
- Upstream: github.com/morluto/rea (MIT) · rea.tools
- 문서: installation, native-investigation, firmware-analysis, packet-captures, javascript-application-workflows, managed-code-analysis, DISCLAIMER.md
- 스킬:
.agents/skills/reverse-engineer-anything/SKILL.md
- 본문은 공식 README·docs에 적힌 기능만 인용함. 없는 기능을 지어내지 않음