REA 기반 요금징수시스템 분석 구조도

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-asTShark 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 라우팅

요금징수 대상별 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에 적힌 기능만 인용함. 없는 기능을 지어내지 않음