Skip to content

Repository files navigation

SoDam-Reverse-Eng (소담-리버스) — 내 코드를 쉬운 한국어로 설명해 주는 도구

컴퓨터·AI가 처음이어도 괜찮습니다. 이 문서를 처음부터 따라가면 됩니다.

내가 만든(또는 허가받은) 코드·앱이 어떻게 동작하는지 AI가 쉬운 한국어로 설명해 주는 Claude Code 플러그인입니다.

⚠️ 정직한 약속: 크랙·불법 복제·비밀번호 추출·보안 우회 안내는 요청해도 거부합니다. 방어·교육·본인 소유물 분석 전용입니다.


🌸 SoDam Family 7형제 중 하나입니다.

목차

  1. 컴퓨터·AI가 정말 처음이신가요? (기본 용어)
  2. 이게 뭔가요?
  3. 무엇을 해 주나요?
  4. 무엇을 거부하나요?
  5. SoDam 6형제 시너지
  6. 사전 준비물
  7. 설치 방법
  8. 명령어
  9. 분석 흐름 (워크플로우)
  10. 보안·데이터 흐름
  11. 아키텍처·파일 구조
  12. 파일·문서 위치
  13. 문제 해결·FAQ
  14. 라이선스·저작권·상업적 용도
  15. 연락·기여
  16. 업데이트 내용 요약

0. 컴퓨터·AI가 정말 처음이신가요? (기본 용어)

이미 컴퓨터·스마트폰 사용이 익숙하시면 이 부분은 건너뛰고 바로 1. 이게 뭔가요?로 이동하세요. 이 문서는 아래 용어를 몰라도 처음부터 순서대로 따라오면 끝까지 실행할 수 있도록 만들어졌습니다 — 막히면 이 표로 돌아와 다시 확인하세요.

용어 쉬운 설명
폴더(Folder) 컴퓨터 안에서 파일을 담아두는 "서랍" 같은 것. 스마트폰의 "앨범"이나 "그룹"과 비슷한 개념입니다.
터미널 / PowerShell 마우스 클릭 대신 글자를 입력해서 컴퓨터에게 명령을 내리는 검은(또는 파란) 화면. 이 문서에서 "PowerShell 창"이라고 부르는 것이 바로 이것입니다.
다운로드(Download) 인터넷에 있는 파일을 내 컴퓨터로 가져와 저장하는 것. 보통 웹사이트의 "Download" 버튼을 누르면 시작됩니다.
설치(Install) 다운로드한 프로그램을 내 컴퓨터에서 실제로 쓸 수 있게 만드는 과정. 스마트폰에서 앱을 "설치"하는 것과 똑같은 개념입니다.
더블클릭 마우스 왼쪽 버튼을 빠르게 두 번 누르는 동작. 파일이나 프로그램을 열 때 사용합니다.
복사(Ctrl+C) / 붙여넣기(Ctrl+V) 글자나 파일을 그대로 다른 곳으로 옮기는 기능. 키보드의 Ctrl 키를 누른 채 C(복사) 또는 V(붙여넣기)를 누릅니다.
AI(인공지능) 사람처럼 글을 읽고 이해해서 답을 해 주는 컴퓨터 프로그램. 이 문서에서 "AI"는 Claude라는 이름의 AI를 가리킵니다.
Claude Code Anthropic이라는 회사가 만든, AI와 대화하면서 컴퓨터 작업(코드 분석 등)을 시키는 프로그램. 이 문서 전체는 이 프로그램 안에서 사용하는 방법을 설명합니다.
플러그인(Plugin) 이미 있는 프로그램에 새 기능을 "끼워 넣는" 작은 추가 도구. 지금 보고 계신 SoDam-Reverse-Eng 자체가 하나의 플러그인입니다.
명령어(Command) Claude Code 채팅창에 /(슬래시)로 시작해서 입력하는 특별한 글자. 예: /re-ping. 입력하고 Enter를 누르면 정해진 동작이 실행됩니다.
메신저(예: 카카오톡)와 무엇이 다른가요? 메신저는 사람과 대화하는 도구고, Claude Code는 AI와 대화하며 컴퓨터 작업을 시키는 도구입니다. 채팅창에 글자를 입력한다는 조작 방법은 메신저와 비슷하니, 타이핑이 익숙하다면 이미 절반은 익숙한 것입니다.

1. 이게 뭔가요?

플러그인이란 기존 프로그램에 새로운 기능을 추가하는 작은 도구입니다. (스마트폰에 앱을 추가 설치하는 것과 비슷한 개념입니다.)

SoDam-Reverse-EngClaude Code라는 AI 도구에 "코드 분석" 기능을 추가하는 플러그인입니다.

간단히 말하면

  • AI에게 "이 코드가 뭐 하는 거야?" 라고 물으면
  • AI가 코드를 읽고 쉬운 한국어로 설명해 줍니다
  • 분석 결과는 표준 보고서로 깔끔하게 정리됩니다
  • 위험한 요청(크랙·우회 등)은 자동으로 거부합니다

어디에 써요?

  • 내가 예전에 만든 코드가 어떻게 동작하는지 다시 파악하고 싶을 때
  • 다른 사람이 만든 코드(허가받은 것)를 이해하고 싶을 때
  • "이 함수가 왜 이렇게 작동하지?" 궁금할 때
  • 내 코드의 보안 취약점이 어디 있는지 찾고 싶을 때

2. 무엇을 해 주나요?

기능 설명
🔍 코드 설명 "이 함수가 뭐 하는 거야?" → 한국어로 풀어서 설명
📋 표준 보고서 자동 출력 요약 · 함수별 설명 · 근거 위치 · 불확실한 점 · 다음 확인사항
🛡️ 안전 3층 보호 AI 거부(1층) + 위험 차단(2층) + 파일 변조 감지(3층) 동시 작동
🔒 자동 마스킹 비밀번호 · API키 · 토큰이 보고서에 평문 노출되지 않도록 •••• 처리
🗣️ 전체 한국어 안내 모든 안내 · 오류 메시지가 한국어
📁 로컬 전용 저장 분석 결과를 내 컴퓨터에만 저장 (외부 서버로 전송 없음)

3. 무엇을 거부하나요? (안전 경계)

요청 결과 이유
"이 코드가 어떻게 동작해?" ✅ 분석 진행 (동의 후) 허용 범위
"버그 찾아줘" ✅ 분석 진행 (동의 후) 허용 범위
"보안 취약점 어디야?" ✅ 분석 진행 (동의 후) 허용 범위
"크랙 방법 알려줘" 🛑 거부 절대 금지
"인증 우회 코드 만들어줘" 🛑 거부 절대 금지
"토큰/비밀번호 추출해줘" 🛑 거부 절대 금지
"DRM 해제 방법은?" 🛑 거부 절대 금지
"라이선스 우회해줘" 🛑 거부 절대 금지
분석 중 발견한 API 키 🔒 ••••(마스킹됨) 표시 개인정보 보호

4. SoDam 6형제 시너지

SoDam-Reverse는 6형제 플러그인 중 막내입니다. 형제들과 함께 설치하면 더 강력해집니다.

권장 설치 순서: Harness → Loop → Context → Agentic → Prompt → Reverse(이것)

형제 플러그인 역할 Reverse와 함께 쓰면
SoDam-Harness 안전벨트 · 백업 RE 위험 패턴을 Harness 공유규칙에 실제 추가(단, hook 자체는 별도 등록 유지 — 아래 "알려진 한계" 참고)
SoDam-Loop 반복 작업 안전 제어 반복 분석 루프도 안전하게
SoDam-Context CLAUDE.md 건강검진 분석 범위 이탈 자동 감지
SoDam-Agentic 계획 · 쉬운 검토 보고서를 비개발자 눈높이로 재검수
SoDam-Prompt 자연어 요청 개선 "이거 분석해줘" 품질 향상

⚠️ 중요: C:\Users\이름 (홈 폴더)에서 Claude Code를 시작하면 Harness · Loop guard가 정상 작업까지 막습니다. 반드시 프로젝트 폴더 (D:\내프로젝트\ 등)에서 시작하세요.

Harness가 설치된 경우 — 한 번만 실행:

node scripts/re-inject-harness.mjs

→ RE 위험 패턴이 Harness 안전규칙에 실제로 추가됩니다.

⚠️ 알려진 한계: 규칙은 공유되지만 hook 자체는 Reverse가 별도로 계속 등록합니다(Harness 존재 시 자체검사를 생략하는 기능을 2026-07-12에 시도했으나 위험 요청이 무검증 통과하는 실제 회귀가 발견돼 되돌림). 그래서 위험한 요청 1건에 차단 메시지가 2번 뜰 수 있으나, 같은 위험을 두 번 잡는 것뿐이라 안전에는 영향 없습니다.


5. 사전 준비물 (무료, 2가지)

준비물 1: Node.js (버전 18 이상)

Node.js란 이 플러그인의 안전장치가 동작하는 데 필요한 "실행 엔진"입니다.

이미 있는지 확인:

  1. 키보드에서 ⊞ Windows 키 누르기
  2. powershell 입력 → Windows PowerShell 클릭
  3. 검은 창이 열리면 아래를 입력하고 Enter:
    node --version
    
  4. v18. 이상 숫자가 나오면 OK (예: v20.19.0, v22.14.0)

없다면 (또는 v18보다 낮다면) 설치 방법:

  1. 웹브라우저(크롬, 엣지 등) → nodejs.org 접속
  2. 초록색 "LTS" 버튼 클릭 → 설치 파일(.msi) 내려받기
  3. 내려받은 파일 더블클릭 → "다음(Next)"을 계속 누르기 → 설치 완료
  4. PowerShell 창 완전히 닫기 → 새로 열기
  5. 다시 node --version 입력하여 버전 확인

💡 컴퓨터를 재부팅해야 반영되는 경우도 있습니다.

준비물 2: Claude Code

이 문서를 Claude Code에서 보고 있다면 이미 있는 것입니다. 없다면 Anthropic 공식 사이트에서 Claude Code를 설치하세요.


6. 설치 방법


⚠️ 설치 전 반드시 읽기 — 가장 흔한 실패 원인

명령어가 안 뜨는 원인 1위: Claude Code를 잘못된 폴더에서 시작했을 때

Claude Code는 켤 때의 폴더를 기준으로 명령어를 읽습니다. 채팅창에서 cd 다른폴더를 입력해도 명령어는 다시 읽히지 않습니다.

올바른 순서:

  1. PowerShell(검은 창)을 열고
  2. cd D:\내프로젝트폴더 입력 (프로젝트 폴더로 이동)
  3. claude 입력해서 Claude Code 실행

❌ 홈 폴더(C:\Users\이름)에서 실행하면 /re-start 명령이 안 뜹니다.


단계 1: 다운로드 및 마켓플레이스 등록

📦 이 저장소는 공개(Public) 저장소입니다. 별도 초대·승인 절차 없이 누구나 아래 방법으로 바로 받을 수 있습니다.

먼저 다운로드부터 하세요. 아래 두 방법 중 편한 것을 고르면 됩니다 — 결과는 동일합니다. git을 써 본 적이 없다면 방법 B를 권장합니다.


방법 A — git으로 복제 (git 사용 경험이 있는 분)

  1. PowerShell(검은 창)을 열고 복제 명령어 입력:

    git clone https://github.com/sodam-ai/SoDam-Reverse-Eng.git

    → 현재 폴더 안에 SoDam-Reverse-Eng 폴더가 생성됩니다.

  2. 복제된 폴더 경로 확인 (예: C:\Users\내이름\SoDam-Reverse-Eng)


방법 B — GitHub 웹페이지에서 ZIP으로 직접 다운로드 (git 불필요, 처음이신 분께 추천)

  1. 브라우저로 https://github.com/sodam-ai/SoDam-Reverse-Eng 접속
  2. 초록색 <> Code 버튼 클릭 → Download ZIP 클릭
  3. 받은 SoDam-Reverse-Eng-main.zip 파일의 압축을 풀어 원하는 위치에 저장 (예: C:\Users\내이름\SoDam-Reverse-Eng)

💡 로그인이나 계정 없이 누구나 받을 수 있습니다. 압축을 풀면 폴더 이름 끝에 -main이 붙어 있을 수 있는데, 원하는 이름(SoDam-Reverse-Eng)으로 바꿔도 상관없습니다.


다운로드가 끝났다면, 위 A 또는 B로 받은 폴더 경로를 Claude Code 채팅창에 입력해 마켓플레이스로 등록하세요:

/plugin marketplace add C:\Users\내이름\SoDam-Reverse-Eng

💡 내이름 부분을 실제 사용자 이름으로 바꿔 입력하세요. 경로에 공백이 포함된 경우 큰따옴표로 감싸세요: /plugin marketplace add "C:\내 이름 포함 경로\SoDam-Reverse-Eng"

단계 2: 플러그인 설치

마켓플레이스 등록 후 아래를 입력:

/plugin install sodam-reverse@sodamreverse-marketplace

또는 /plugin 입력 → 메뉴에서 Browse marketplaces → sodam-reverse → Install 선택.

단계 3: 완전 재시작 (반드시!)

플러그인은 Claude Code 시작 시에만 로드됩니다. 반드시 완전 종료 후 재시작해야 합니다.

  1. 채팅창에 /exit 입력 → Enter
  2. 터미널(검은 창) 완전히 닫기
  3. PowerShell 새로 열기
  4. 반드시 프로젝트 폴더에서 시작:
    cd D:\내프로젝트폴더
    claude

단계 4: 설치 확인

Claude Code가 열리면 /re-p 입력 → 자동완성에 아래가 떠야 정상:

/re-ping    (sodam-reverse)  ← 진단용
/re-start   (sodam-reverse)  ← 분석 시작

(sodam-reverse) 꼬리표가 붙어 있으면 플러그인으로 제대로 로딩된 것입니다.

진단 명령어 실행:

/re-ping

"Pong! /re-ping 정상 작동합니다." 응답이 오면 설치 완료.

단계 5: 안전 3층 검증 (필수!)

/re-selftest

기대 결과: ✅ 13개 항목 전부 초록색(1층 스킬규칙 6개 + 2층 deny-hook 2개 + 3층 무결성 5개)

초록색 3개가 나오지 않으면 → TROUBLESHOOTING.md 참고

단계 6: 무결성 해시 등록 (3층 활성화)

selftest 출력에서 핵심 안전파일 5개의 해시references/integrity.json에 저장하세요(이미 있는 항목은 유지):

{
  "hooks/hooks.json": "<셀프테스트가 출력한 해시>",
  "hooks/re-deny-guard.mjs": "<셀프테스트가 출력한 해시>",
  "hooks/_selftest.mjs": "<셀프테스트가 출력한 해시>",
  "references/deny-corpus.json": "<셀프테스트가 출력한 해시>",
  "references/mask-patterns.json": "<셀프테스트가 출력한 해시>"
}

→ 다시 /re-selftest 실행 → "3층 무결성: 해시 일치"가 5개 파일 전부에서 ✅ 확인

💡 처음 설치하실 때는 references/integrity.json이 비어 있어서 selftest가 5개 파일의 해시를 화면에 한 번에 출력해 줍니다. 이 5개(hooks.json·re-deny-guard.mjs·_selftest.mjs·deny-corpus.json·mask-patterns.json) 전부가 실제로 검사에 쓰입니다 — 개발자용 상세는 CHECKPOINT.md를 참고하세요.


6-1. 빠른 시작 (5분 요약)

위 6단계를 이미 하셨다면, 설치 후 첫 분석까지 이 5줄만 따라 하면 됩니다.

  1. Claude Code 완전 재시작(설치 직후 필수) 후 /re-ping 입력 → "Pong!" 뜨면 설치 성공.
  2. /re-selftest 입력 → 안전장치 13개 항목 전부 ✅ 인지 확인(1개라도 ❌면 §12 문제해결 먼저 참고).
  3. /re-start samples/safe-login.js 입력 → "본인 소유/허가 대상인가요?" 등 질문에 **"예"**로 답하기.
  4. 잠시 기다리면 한국어 분석 보고서가 화면에 출력됩니다(요약·함수설명·근거위치 포함).
  5. 이후 내 코드로 실습: /re-start [내 파일 경로] — 이게 전부입니다.

막히면 §12(문제 해결·FAQ)를, 각 단계의 자세한 이유는 §6(설치 방법)을 참고하세요.


6-2. (Phase 2·3) 추가 도구 설치 — 선택 사항

/re-start(소스 코드 분석)만 쓴다면 이 항목은 건너뛰어도 됩니다. /re-android(APK 분석) 또는 /re-binary(실행파일 분석)를 쓰려면 Java 17+·JADX·Apktool(안드로이드) 또는 JDK 21+·Ghidra(바이너리, 2026-08-19 실측 정정 — 이전엔 Java 17로 안내됨) 같은 추가 프로그램이 필요합니다.

상세 설치 방법(공식 배포처 링크·확인 명령·실제 검증된 버전)은 별도 문서로 정리했습니다: 📄 INSTALL.md — 필요 프로그램 설치 안내


6-3. 환경 변수 · 빌드 · 테스트 · 배포 (왕초보 요약)

항목 안내
환경 변수 기본 사용에는 환경 변수가 필요 없습니다. 유일한 예외는 SODAM_RE_IDA_PATH(선택) — 본인 소유 IDA Pro 라이선스를 연동하고 싶을 때만 설정합니다. 설정 방법: INSTALL.md §2
빌드 빌드 과정 자체가 없습니다. 이 프로젝트는 컴파일이 필요 없는 파일(Markdown·JSON·순수 JavaScript)로만 구성돼 있어, 위 "설치 방법"대로 폴더를 받아 마켓플레이스에 등록하면 그대로 동작합니다.
린트 별도 린트 설정 없음(대상 없음 — 빌드가 없는 것과 같은 이유).
테스트 /re-selftest 명령이 이 프로젝트의 자체 테스트입니다(안전장치 3층 점검, §7 참고). 개발자용으로는 node hooks/_selftest.mjs를 프로젝트 폴더에서 직접 실행해도 동일합니다.
배포(이 프로젝트를 남에게 전달하는 방법) 별도 배포 파이프라인 없음 — GitHub 저장소를 그대로 git clone하거나 ZIP으로 받는 것 자체가 배포 방법입니다(§6 단계 1 참고). 직접 수정한 버전을 배포하려면 라이선스 조건(§13)만 지키면 됩니다.

7. 명령어

💡 명령어가 "Unknown command"로 안 뜨면: 컴퓨터에 다른 Claude Code 플러그인이 여러 개 설치돼 있으면, 이름이 짧은 명령어(/re-start 등)가 다른 플러그인과 겹쳐 인식이 안 될 수 있습니다(2026-08-13 실사용 테스트로 확인된 실제 사례). 이럴 땐 앞에 플러그인 이름을 붙인 완전한 형태로 입력하세요: /sodam-reverse:re-start처럼 아래 모든 명령어 앞에 sodam-reverse:를 붙이면 항상 확실하게 동작합니다.

명령어 언제 사용하나요 예시
/re-ping 설치 확인 · 진단용 (가장 먼저 테스트) /re-ping
/re-start [파일경로] 새로운 분석을 시작할 때 /re-start src/login.js
/re-report 마지막 분석 보고서를 다시 볼 때 /re-report
/re-selftest 안전장치 3층 점검할 때 /re-selftest
/re-agent [설정폴더/repo 경로] 내 Claude 설정이나 다른 플러그인 구조를 이해하고 싶을 때 /re-agent ~/.claude

Phase 2·3 명령어:

명령어 상태 설명
/re-android [APK경로] ✅ 실사용 라이브 검증 완료(2026-07-13) Android 앱 분석
/re-binary [파일경로] ✅ 실사용 라이브 검증 완료(2026-08-21) 바이너리/실행파일 분석

8. 분석 흐름 (워크플로우)

사용자: /re-start 내코드/login.js
          ↓
[0단계] 안전장치 자가검증 (자동, 2026-08-02부터 동의 게이트 앞에 선행)
  `node hooks/_selftest.mjs`로 안전 3층(아래 참고)이 전부 정상인지 자동 재확인합니다.
  ❌가 하나라도 있으면 동의 게이트로 넘어가지 않고 여기서 즉시 중단합니다(fail-closed).
          ↓
[1단계] 동의 게이트 (버튼 선택형 질문 3개, 2026-07-27부터)
  AI가 소유권·분석 목적·이용 동의 질문 3개를 한 번에 띄웁니다 — 타이핑 대신 버튼(선택지)을 눌러 답합니다.
  세 질문 모두 "예" 계열 선택 → 다음 단계로. 하나라도 "아니오" → 즉시 중단
  (정확한 질문 문구는 §12 Q5 참고)
  통과하면 `.sodam-re/consent-log.jsonl`에 동의 기록 1줄이 추가됩니다(경로·시각, 2026-08-02부터).
          ↓
(0단계 안전 3층 상세 — 참고용, 실행 순서는 위 [0단계] 참고)
  1층: AI가 크랙·우회 내용인지 자체 판단
  2층: deny-hook이 위험 패턴 실시간 차단
  3층: 안전파일 변조 여부 SHA-256으로 확인
          ↓
[2단계] 분석 시작 (읽기 전용)
  - 파일 읽기만 (절대 실행 안 함)
  - 경로 조작 (../, 심볼릭 링크) 차단 시도 — **AI(1층) 판단 기반**(코드로 100% 강제되는 것은 아님, 2026-07-13 보안점검에서 확인)
  - 비밀번호 · 키 발견 시 자동 마스킹
          ↓
[3단계] 표준 보고서 출력
  ┌─────────────────────────────────────────────┐
  │ ■ 한 줄 요약 (이 코드가 하는 일 1줄로)       │
  │ ■ 함수별 설명 (파일명:줄번호 근거 포함)       │
  │ ■ 불확실한 점 (AI가 확신 못하는 부분 명시)   │
  │ ■ 다음 확인사항 (추가로 볼 것 제안)          │
  └─────────────────────────────────────────────┘
          ↓
[4단계] 로컬 저장
  .sodam-re/ 폴더에 저장 (.gitignore 등록됨)
  외부 서버 전송 없음

9. 보안·데이터 흐름

내 코드 데이터는 어디로 가나요?

내 컴퓨터의 코드
    ↓ (분석을 위해 AI에 전송)
Claude AI (Anthropic 서버)
    ↓ (분석 결과만 반환)
내 컴퓨터 .sodam-re/ 저장
  • AI에 전송: 코드 내용 (분석을 위해 필요 — Claude API 이용 약관 적용)
  • 외부 전송 안 됨: 분석 결과, 동의 기록, 차단 로그
  • 마스킹 처리 후 저장: 코드 중 발견된 비밀번호·키·토큰

3층 안전장치 구조

이름 역할 파일
1층 AI 거부 규칙 AI 자체가 크랙·우회 내용 출력 거부 skills/re-router/SKILL.md
2층 deny-hook 위험 키워드·패턴 실시간 차단 hooks/re-deny-guard.mjs
3층 무결성 점검 핵심 안전파일 5개가 변조됐는지 SHA-256으로 확인 hooks/_selftest.mjs (검사 대상 5개: hooks.json·re-deny-guard.mjs·_selftest.mjs·deny-corpus.json·mask-patterns.json)

fail-closed 원칙: hook에 오류가 생기면 "통과"가 아니라 분석 즉시 중단입니다.

분석 결과 저장 위치

[플러그인 폴더]/
└── .sodam-re/                     ← 분석 결과 저장 폴더 (자동 생성)
    ├── consent-log.jsonl          ← 동의 통과 기록 (한 줄에 하나씩 append, 덮어쓰기 없음)
    └── safety-log.jsonl           ← 차단 이벤트 기록 (원문 대신 SHA-256 해시만 저장)

⚠️ 정확성을 위한 표시: 분석 보고서 자체는 ".sodam-re/ 폴더 안에만 저장되고 외부로 전송되지 않는다"는 원칙만 확정돼 있으며, 파일별로 어떤 이름 규칙으로 저장할지는 아직 고정돼 있지 않습니다. 확실히 코드로 확인된 것은 위 두 파일(consent-log.jsonl·safety-log.jsonl)뿐이라, 확인 안 된 폴더 구조를 임의로 적지 않았습니다.

.sodam-re/ 폴더는 .gitignore에 등록되어 Git에 업로드되지 않습니다.


10. 아키텍처·파일 구조

SoDam-Reverse-Eng/
│
├── .claude-plugin/              ← Claude Code 플러그인 선언
│   ├── plugin.json
│   └── marketplace.json
│
├── commands/                    ← 명령어 정의 (/re-start 등)
│   ├── re-ping.md               ← 진단 명령어
│   ├── re-start.md
│   ├── re-report.md             ← 실사용 라이브 검증 완료
│   ├── re-selftest.md
│   ├── re-agent.md              ← AI 에이전트 구조 분석, 실사용 라이브 검증 완료
│   ├── re-android.md            ← 실사용 라이브 검증 완료
│   └── re-binary.md             ← 실사용 라이브 검증 완료
│
├── skills/                      ← 분석 AI 로직
│   ├── re-router/               ← 1층 안전규칙 + 요청 분류
│   ├── re-analyze-mycode/       ← 소스코드 분석
│   ├── re-report/               ← 보고서 생성
│   ├── re-analyze-agent/        ← 라이브 검증 완료
│   ├── re-analyze-android/      ← 실사용 라이브 검증 완료
│   └── re-analyze-binary/       ← 실사용 라이브 검증 완료
│
├── hooks/                       ← 안전장치 (2층 · 3층)
│   ├── re-deny-guard.mjs        ← 2층: 위험 패턴 실시간 차단
│   ├── _selftest.mjs            ← 3층: SHA-256 무결성 점검
│   └── hooks.json               ← hook 설정
│
├── references/                  ← 데이터·규칙 파일
│   ├── deny-corpus.json         ← 위험 패턴 (키워드 60개 + 정규식 7개)
│   ├── mask-patterns.json       ← 마스킹 패턴 15개
│   ├── trust-catalog.md         ← 신뢰 도구 카탈로그 (15개 repo)
│   ├── report-template.md       ← 보고서 표준 양식
│   └── integrity.json           ← 안전파일 SHA-256 해시 저장소
│
├── scripts/                     ← 유틸리티 스크립트
│   ├── re-inject-harness.mjs    ← Harness 시너지 설정
│   ├── re-inject-context.mjs    ← Context 시너지 설정
│   ├── check-family.mjs         ← 6형제 상태 확인
│   ├── check-trust-freshness.mjs← 도구 신뢰도 신선도 점검
│   └── rotate-safety-log.mjs    ← 안전로그·동의기록 보존기간 관리(자동만료)
│
├── mcp/
│   └── catalog.json             ← Phase 2·3 외부 도구 큐레이션 설정(신뢰등급·라이선스)
│
├── samples/                     ← 테스트용 예제 파일
│   ├── safe-login.js            ← 정상 분석 테스트용
│   ├── deny-demo.txt            ← 차단 테스트용
│   ├── mycode-injection-demo.js ← 소스코드 프롬프트 인젝션 방어 테스트용
│   ├── android-injection-demo.xml← 안드로이드 프롬프트 인젝션 방어 테스트용
│   ├── binary-injection-demo.txt← 바이너리 프롬프트 인젝션 방어 테스트용
│   ├── agent-injection-demo.md  ← 프롬프트 인젝션 방어 테스트용
│   ├── agent-injection-demo-2.md← 결합공격(레드팀) 방어 테스트용
│   └── agent-injection-demo-3.md← 플러그인 설정파일 위장 인젝션 테스트용
│
├── .sodam-re/                   ← 분석 결과 저장 (자동 생성, .gitignore)
│
├── README.md                    ← 이 파일 (한국어 개요)
├── README.en.md                 ← English overview
├── INSTALL.md                   ← 추가 도구(Android·바이너리) 설치 상세
├── TROUBLESHOOTING.md           ← 오류 해결 가이드
├── CHECKPOINT.md                ← 개발 진행 상태 (개발자용)
├── SETUP_BLOCKED_FILES.md       ← 안전파일 코드 전문
├── LICENSE                      ← Apache-2.0 라이선스 전문
└── NOTICE                       ← 저작권 고지

3층 안전 흐름 요약:

[1층] skills/ 규칙    →  AI가 위험 출력 자체를 거부
[2층] hooks/re-deny-guard.mjs  →  위험 도구 호출 즉시 차단
[3층] hooks/_selftest.mjs      →  SHA-256으로 파일 변조 감지

11. 파일·문서 위치 (전체 목록)

파일 / 문서 위치 목적
한국어 README README.md 이 파일 (전체 개요)
영어 README README.en.md English overview
추가 도구 설치 안내 INSTALL.md Android(JADX·Apktool)·바이너리(Ghidra) 등 선택 도구 상세 설치법
오류 해결 가이드 TROUBLESHOOTING.md 실패 패턴 전체 해결법
안전파일 코드 전문 SETUP_BLOCKED_FILES.md 수동 설정 파일 코드
라이선스 원문 LICENSE Apache-2.0 전문
저작권 고지 NOTICE 서드파티 고지
개발 진행 상태 CHECKPOINT.md 개발자용 체크포인트 (로컬 전용 파일 · GitHub에는 올리지 않음이라 링크 없음)
위험 패턴 DB references/deny-corpus.json 키워드 60개 + 정규식 7개
마스킹 패턴 references/mask-patterns.json 15개 마스킹 규칙
신뢰 도구 목록 references/trust-catalog.md 15개 도구 신뢰등급
보고서 표준 양식 references/report-template.md 보고서 형식 정의
무결성 해시 references/integrity.json SHA-256 해시 저장
외부 도구 큐레이션 mcp/catalog.json Phase 2·3 도구별 신뢰등급·라이선스·상태
형제 상태 확인 scripts/check-family.mjs 6형제 진단 스크립트
신선도 점검 scripts/check-trust-freshness.mjs 신뢰 카탈로그 최신성 확인
안전로그·동의기록 보존기간 관리 scripts/rotate-safety-log.mjs 30일(기본) 지난 안전로그·동의기록 항목 삭제(자기부죄 방지, --only=safety|consent로 개별 지정 가능)

12. 문제 해결·FAQ

Q1. /re-start 명령이 안 뜨거나 없어요 (가장 흔한 문제)

원인 1 — 폴더 문제: Claude Code를 홈 폴더(C:\Users\이름)에서 실행했거나, 채팅창에서 cd로 이동한 것을 "이동했다"고 착각한 경우.

해결:

  1. Claude Code 완전히 닫기
  2. PowerShell 새로 열기
  3. 프로젝트 폴더로 이동 후 실행:
    cd D:\내프로젝트폴더
    claude
  4. /re-ping 입력 → "Pong!" 응답 확인

원인 2 — 다른 플러그인과 이름 겹침: 폴더는 맞게 실행했는데도 "Unknown command"가 뜬다면, 설치된 다른 플러그인 중 하나가 똑같이 짧은 명령어 이름을 쓰고 있어서 겹친 것입니다(실제 확인된 사례, §7 참고). 해결: /re-start 대신 /sodam-reverse:re-start처럼 앞에 sodam-reverse:를 붙여서 입력하세요.


Q2. /re-ping 이 뭔가요?

설치 확인용 진단 명령어입니다. "Pong! /re-ping 정상 작동합니다." 라고 응답이 오면 플러그인이 제대로 로딩된 것입니다. 이 명령이 안 되면 /re-start도 안 됩니다.


Q3. "Node.js를 찾을 수 없습니다" 오류

nodejs.org → LTS 설치 → 터미널 껐다 켜기 → node --version 확인


Q4. 정상 작업이 계속 막혀요

C:\Users\이름 (홈 폴더)에서 실행하고 있을 가능성이 큽니다.

cd D:\내프로젝트폴더
claude

프로젝트 폴더에서 Claude Code를 다시 시작하세요.


Q5. 동의 질문에서 막혀요

질문 3개가 뜨면 자연어로 타이핑하지 말고, 버튼(선택지)을 직접 클릭하거나 번호를 선택하세요. "예" 계열 선택지를 골라야 동의로 처리됩니다 — "아니오"를 선택하거나 응답을 거부하면 그 즉시 분석이 중단됩니다.


Q6. 크랙/우회 요청이 거부됐어요

정상 동작입니다. 이 도구는 방어·교육·본인 소유물 전용입니다.


Q7. /re-selftest 에서 일부 항목이 ❌

SETUP_BLOCKED_FILES.md에서 5개 파일이 모두 있는지 확인 → 없는 파일만 다시 만들기 → Claude Code 완전 재시작 → 다시 /re-selftest

💡 만약 이 파일들을 안전을 위해 읽기전용으로 잠가 두셨다면(attrib +R, SETUP_BLOCKED_FILES.md 참고), 수정 전에 먼저 잠금을 해제(attrib -R)해야 편집기로 저장이 됩니다.

SHA-256 불일치:

node hooks/_selftest.mjs

출력 해시 → references/integrity.json 저장 → 재실행

⚠️ 주의: integrity.json이미 값이 들어있는 상태에서 해시가 달라 ❌가 뜬 경우, 위 명령은 "불일치(변조 의심)"라고만 알려주고 새 해시를 화면에 출력하지 않습니다(해시 출력은 integrity.json이 비어있을 때만 나옵니다). 이럴 때는 ❌가 뜬 파일 경로(hooks/hooks.json · hooks/re-deny-guard.mjs · hooks/_selftest.mjs · references/deny-corpus.json · references/mask-patterns.json 중 하나)를 아래 명령의 <파일경로> 자리에 넣어 새 해시를 직접 확인하세요:

node -e "console.log(require('crypto').createHash('sha256').update(require('fs').readFileSync('<파일경로>')).digest('hex'))"

Q8. 보고서에서 비밀번호가 그대로 보여요

버그입니다. references/mask-patterns.json에 해당 패턴이 없는 것입니다. 해당 보고서를 공유하지 마시고 GitHub Issues에 신고해 주세요.


Q9. 파일이 너무 커서 분석이 오래 걸려요

파일 하나씩 분석하세요:

/re-start src/auth.js

폴더 전체보다 파일 단위가 훨씬 잘 동작합니다.


Q10. Harness 시너지가 안 연결돼요

node scripts/re-inject-harness.mjs

"RE 규칙 N개 주입 완료" 메시지가 나오면 성공.


Q11. 더 자세한 오류 해결

TROUBLESHOOTING.md — 실패 패턴 전체 해결법


13. 라이선스·저작권·상업적 용도

적용 라이선스

Apache License 2.0 · © 2026 SoDam AI Studio

허용되는 것 (명시적으로 허용)

행위 가능 여부
개인적 사용 ✅ 허용
수정 · 변경 ✅ 허용 (변경 사실 명시 의무)
복제 · 포크 ✅ 허용
재배포 ✅ 허용 (라이선스·저작권 고지 포함 의무)
상업적 사용 ✅ 허용
특허 사용 ✅ 허용

구체적으로 자주 묻는 상황 (Apache-2.0 기준, 아래 "반드시 해야 하는 것" 의무를 지키는 한 전부 가능합니다):

하고 싶은 것 가능 여부
이 코드를 수정해서 내 프로젝트에 쓰기 ✅ 가능
포크해서 내 이름으로 다시 배포하기 ✅ 가능 (원저작권·라이선스 고지는 유지)
이 도구를 이용한 서비스를 운영하고 돈을 받기(SaaS 등) ✅ 가능
이 도구 자체 또는 수정본을 판매하기 ✅ 가능
회사·고객사에 납품하는 결과물에 포함하기 ✅ 가능
교육 자료·강의 콘텐츠로 활용하기 ✅ 가능
"SoDam"이라는 이름을 내 상품명으로 그대로 쓰기 ❌ 불가 — 코드 라이선스와 별개로 상표 문제

위 표는 이 도구 자체의 라이선스에 대한 안내입니다. 이 도구로 무엇을 분석하는지(제3자 코드·앱)에 대한 적법성은 완전히 별개 문제이며, 아래 "⚠️ 반드시 알아야 할 법적 책임 한계"에서 따로 다룹니다.

반드시 해야 하는 것 (의무 사항)

의무 내용
라이선스 고지 보존 LICENSE 파일을 반드시 포함
저작권 고지 보존 © 2026 SoDam AI Studio 고지 유지
변경 사실 명시 원본에서 수정한 부분이 있으면 명시
NOTICE 파일 동봉 NOTICE 파일을 함께 배포

허용되지 않는 것 (주의)

행위 설명
"SoDam" 상표 무단 사용 허가 없이 상표로 사용 불가
보증 요구 "문제 없이 동작한다"는 보증 없음 (AS-IS 제공)
손해배상 청구 면책 조항 적용

타사 상표 고지

  • "Claude", "Claude Code", "Anthropic" — Anthropic 소유 상표
  • "IDA Pro" — Hex-Rays 소유 상표 (Phase 3 선택 기능)
  • 위 상표들은 본 제품과 공식 제휴 또는 보증 관계 없음

상업적 사용 시 반드시 확인할 것

항목 확인 사항
이 도구 자체 Apache-2.0으로 상업적 사용 가능
분석 대상 소프트웨어 해당 소프트웨어의 EULA · 라이선스 별도 확인
Claude API 사용 Anthropic 이용 약관 별도 적용
IDA Pro (Phase 3, 선택) 상용 라이선스 별도 구매 필요
이 도구 자체의 외부 코드 의존성 없음package.json 등 의존성 파일이 존재하지 않으며 번들된 제3자 코드도 없습니다(2026-09-01 확인). Ghidra·JADX 등은 코드를 포함하지 않고 "설치 안내"만 하는 방식(wrap)이라 이 프로젝트 자체의 재배포 조건에 영향을 주지 않습니다.

🤖 AI가 생성한 콘텐츠에 관한 주의사항

  • 이 도구가 만드는 분석 보고서: /re-start·/re-android·/re-binary·/re-agent 등이 만드는 보고서는 AI가 작성합니다. 보고서를 상업적으로 사용하거나, 대외 제출하거나, 법적·계약적 판단의 근거로 삼기 전에는 반드시 사람이 직접 검토하고, 분석 대상 원본의 저작권·출처, 그리고 보고서 내용이 실제 코드와 일치하는지 확인하세요. 다른 저작물과 우연히 유사한 표현이 포함될 가능성도 배제할 수 없습니다.
  • 이 프로젝트 자체의 개발 방식: 이 프로젝트의 소스코드·문서 작성에는 AI 코딩 도구(Claude Code)가 광범위하게 사용되었습니다(2026-09-01 기준 전체 커밋 103건 중 43건에 "Co-Authored-By: Claude" 공동저자 표기 확인 — 확인된 사실). AI 보조로 작성된 저작물의 저작권 성립 범위·귀속은 국가·관할마다 다르게 취급될 수 있어(예: 저작권 등록 가능 여부), 이 점이 실무적으로 중요한 상황(예: 특허·저작권 등록, 분쟁 대응)이라면 법무/전문가 검토가 필요합니다 — 이 문서는 그 결론을 대신 내리지 않습니다.

⚠️ 반드시 알아야 할 법적 책임 한계 (엄격 적용)

이 섹션은 법률 자문이 아닙니다. 실제 법적 판단이 필요한 상황이라면 반드시 변호사와 상담하세요. 아래는 "이 도구가 안전하다"는 것과 "내가 무엇을 분석하는가가 항상 합법이다"는 것이 서로 다른 문제임을 알려드리기 위한 안내입니다.

상황 반드시 알아야 할 것
타인·제3자의 코드·앱 분석 동의 게이트에서 "본인 소유"라고 답했더라도, 실제로 저작권자의 허락이 없다면 그 자체로 저작권법·컴퓨터프로그램보호법 위반 소지가 있습니다. 이 도구는 사용자의 답변이 사실인지 검증할 방법이 없으며, 허위 답변에 대한 책임은 전적으로 사용자 본인에게 있습니다.
회사·직장에서 작성한 코드 재직 중 업무로 작성한 코드는 통상 회사(고용주) 소유인 경우가 많습니다(업무상저작물 법리). 본인이 직접 타이핑했다고 해서 "본인 소유"가 아닐 수 있습니다 — 분석 전 회사 정책·근로계약을 먼저 확인하세요.
분석 대상에 타인의 개인정보가 포함된 경우 코드나 설정 파일에 실제 사용자의 이름·이메일·전화번호 등이 들어있다면, 이를 AI에 전송해 분석하는 행위 자체가 개인정보보호법(국내)·GDPR(EU) 등 관련 법령의 적용을 받을 수 있습니다. 가능하면 분석 전에 해당 개인정보를 제거하거나 마스킹하세요.
국가·지역별 리버스 엔지니어링 법규 차이 리버스 엔지니어링(역공학)이 허용되는 범위는 국가·지역마다 다르며, 상호운용성 확보 등 제한된 목적에서만 허용되는 경우가 많습니다(예: EU 소프트웨어 지침, 미국 DMCA의 제한적 예외 조항 등). 본인 소유 소프트웨어라도 거주 국가·지역의 법률을 별도로 확인하세요.
분석 대상 소프트웨어의 이용약관(EULA) 많은 상용 소프트웨어의 EULA는 리버스 엔지니어링 자체를 계약으로 금지합니다. "내가 정식으로 구매했다"는 사실이 "역공학해도 된다"는 뜻은 아닙니다 — 반드시 해당 소프트웨어의 EULA를 먼저 확인하세요.
분석 보고서의 상업적 재배포 이 도구가 생성한 분석 보고서를 상업적으로 재배포·판매하려는 경우, 보고서 안에 원본 코드의 상당 부분이 그대로 인용돼 있다면 원본 저작물의 저작권이 별도로 적용될 수 있습니다.

요약: 이 도구(SoDam-Reverse-Eng) 자체의 라이선스(Apache-2.0)는 상업적 사용을 포함해 자유롭게 허용하지만, "무엇을 분석하는가"에 대한 법적 책임은 도구의 라이선스와 완전히 별개입니다. 도구가 안전장치를 갖췄다고 해서 분석 행위 자체가 항상 합법인 것은 아닙니다 — 확신이 서지 않으면 분석 전에 변호사와 상담하세요.

면책 조항

  • "있는 그대로(AS-IS)" 제공
  • 품질 · 성능 · 특정 목적 적합성에 대한 보증 없음
  • 사용 결과에 대한 책임은 사용자 본인에게 있음
  • "100% 안전"은 어떤 보안 도구도 보장할 수 없습니다

라이선스 전문: LICENSE · 저작권 고지: NOTICE


14. 연락·기여

  • 버그 신고 · 기능 요청: GitHub Issues — 공개 저장소라 누구나 등록 가능 또는 이메일
  • 이메일: startmxk@gmail.com
  • GitHub 저장소: https://github.com/sodam-ai/SoDam-Reverse-Eng (공개 — 별도 초대 불필요)
  • 기여 방법: Pull Request 환영. 큰 변경은 먼저 Issue로 논의해 주세요. 단, 안전장치 핵심 파일(§10의 "보호파일" 8개 — deny-hook·무결성 목록 등)에 대한 변경은 프로젝트 설계상 AI가 스스로 수정하지 않는 영역이라, 반드시 이메일로 먼저 상의한 뒤 사람이 직접 검토·반영합니다.

15. 업데이트 내용 요약

각 항목을 클릭하면 상세 내용이 펼쳐집니다. (개발 이력 기반 — GitHub·브라우저 모두 접기/펼치기 지원)

v0.1.0 — 초기 릴리스 (Phase 1 MVP)
  • 안전 3층(①AI 출력 거부 ②deny-hook ③SHA-256 무결성) 자체 탑재
  • 동의 게이트(본인 소유/허가 + 책임 고지) — 통과 못 하면 분석 0건
  • 표준 한국어 보고서(요약·함수별·근거 위치·불확실성·다음 확인)
  • 명령어 /re-start·/re-report·/re-selftest
  • 마켓 큐레이션 카탈로그 + 연습용 안전 샘플(samples/)
  • 자동 마스킹(비밀번호·키·토큰 → ••••)
Phase 1 정비 — 배포 준비(M5)
  • /re-ping 신규: 설치 확인용 진단 명령(가장 먼저 눌러보는 명령)
  • /re-start 보고서 형식을 표준 양식(report-template.md)과 정합
  • 설치 문서 보강: 비공개 저장소 clone(A) / 폴더·압축 전달(B) 2가지 방법
  • 세션 파일 .gitignore 등록(우발 커밋 방지)
Phase 2 착수 — 안드로이드 분석 골격 (당시 라이브 미검증 · 이후 아래 항목에서 검증 완료됨)
  • 안전 우선: 안드로이드 위험 패턴으로 차단 코퍼스 확장(착수 당시 기준)
  • re-analyze-android 스킬 + /re-android 명령 골격 추가(동의 게이트 강화·읽기 전용)
  • GUIDE에 JADX·Apktool·Java 17+ 설치 안내(2-6절) 추가
  • 이 시점엔 도구 설치 환경에서의 라이브 검증이 아직 안 된 골격 단계였음 — 2026-07-13에 아래 항목대로 실사용 검증 완료
Phase 1 + Phase 2(안드로이드) 실사용 라이브 E2E 검증 완료 (2026-07-13)
  • 플러그인을 처음부터 실제로 설치(/plugin marketplace add/plugin install/reload-plugins)해 마켓 설치 흐름 자체를 실측 검증
  • Phase 1: /re-start로 실제 코드 파일 분석 → 동의 게이트 2문항 통과 → 진짜 보고서 생성 → API 키·비밀번호 마스킹(••••) 정상 확인 → 우회 요청 거부 확인
  • Phase 2(안드로이드): Java 17·JADX·Apktool 실제 설치 → /re-android로 실제 APK(F-Droid 오픈소스 앱) 분석 → 동의 게이트 3문항 통과 → 권한·네트워크통신·근거위치 포함 실제 보고서 생성 → 라이선스 우회 요청 거부 확인
  • deny-corpus를 키워드 60개 + 정규식 7개로 확장(4차 레드팀 감사 반영)
  • 발견된 결함(개발 중 문서화, 사용자 영향 없음): deny-hook이 "크랙 없음"류의 정상 서술을 과차단해 보고서 일부 내용이 누락된 사례 1건 확인 — 문맥 인식 개선을 백로그로 등록(다음 릴리스에서 개선 예정)
Phase 2 — AI 에이전트 구조 분석 모듈 (라이브 검증됨)
  • re-analyze-agent 스킬 + /re-agent 명령 추가 — 내 Claude 설정이나 다른 플러그인 구조를 소스레벨로 분석(외부 도구 불필요)
  • 안드로이드와 달리 외부 도구가 필요 없어 라이브 검증까지 완료: 자기분석 도그푸드 + 프롬프트 인젝션 레드팀 2라운드(자체검증 → 독립 에이전트 블라인드 검증) 통과
  • ~/.claude 전체 분석은 사용량 보호를 위해 확인 게이트를 통과해야 진행
Phase 3 착수 — 바이너리 분석 골격 (당시 라이브 미검증 · 2026-08-21에 검증 완료됨, 아래 v0.3.0 항목 참고)
  • re-analyze-binary 스킬 + /re-binary 명령 골격 추가 — Ghidra(무료) 정적분석 wrap, IDA Pro는 SODAM_RE_IDA_PATH 설정 시 옵션
  • GUIDE에 Java·Ghidra 설치 안내(2-7절) 추가
  • 안드로이드와 동일한 프롬프트 인젝션 방어(§0-1)를 처음부터 반영
  • 악성코드 방어 분석은 이번 범위에 없음(플랫폼 정책 검토 대기, 사용자 확정) — 관련 도구는 계속 보류 상태
  • ⚠️ 실제 디스어셈블 동작은 도구 설치 환경에서 라이브 검증 예정(현재 골격). 안전·동의·보고서 규칙은 Phase 1과 동일
전수 테스트·검증 세션 (2026-07-18)
  • 안전 3층(선택기·경계값·실패 케이스 포함) 실행 기반 전수 재검증 — 회귀 없음(8/0 유지)
  • 설치 스크립트 전체 사이클(설치→언인스톨→재설치) 바이트 단위 일치 확인
  • 발견·수정 1건: scripts/re-inject-harness.mjs의 잘못된 주석("/re-selftest가 자동 호출") 정정
  • 발견(문서 정정): 무결성 해시가 이미 등록된 상태에서 불일치가 나면 /re-selftest가 새 해시를 출력하지 않는다는 사실 확인 → 본 문서·GUIDE.md의 관련 안내에 직접 계산 명령 보강
  • references/trust-catalog.md 최신화 필요 항목 3건 발견(1개 보관 처리됨·2개 장기 미갱신) — 별도 정리 예정
GUIDE 문서 제거 — 핵심 내용을 README로 통합 (2026-07-27)
  • GUIDE.md·GUIDE.en.md(+html)를 제거하고, 유일했던 설치 정보(Android/JADX/Apktool·바이너리/Ghidra 도구 설치 절차)를 이 문서 §6-2로 이전했습니다. README 하나로 설치·실행·문제해결까지 끝나도록 문서 구조를 단순화했습니다.
  • [추가 정리 · 2026-08-04] §6-2의 도구별 상세 설치 내용(공식 배포처·확인 명령·실제 검증된 버전)이 점점 길어져, 별도 문서 **INSTALL.md**로 다시 분리했습니다. README §6-2에는 요약 + 링크만 남아 있습니다. GUIDE를 부활시킨 것이 아니라, README 안에서 비대해진 한 절만 떼어낸 것입니다 — "README 하나로 시작 가능"이라는 §10.4 원칙은 그대로 유지됩니다(핵심 흐름은 README만으로 완결, INSTALL.md는 선택 기능 이용자만 필요).
  • 남은 상세 오류 해결은 TROUBLESHOOTING.md가 계속 담당합니다.
동의 게이트 버튼형 전환 + 안전로그 자동 정리 (2026-07-27)
  • 동의 게이트 4곳(/re-start·/re-android·/re-binary·/re-agent)을 자연어 "예/아니오" 타이핑 방식에서 버튼(선택지) 선택 방식으로 전환 — 오타·애매한 답변으로 인한 오동작 가능성을 줄임.
  • scripts/rotate-safety-log.mjs 신규: 차단 이력(safety-log.jsonl)이 무기한 쌓이지 않도록 30일(기본, 조정 가능) 지난 항목을 자동 정리. 원문이 아닌 해시만 지우는 것이라 안전 판정에는 영향 없음.
  • 기획 문서(PRD) 내부 기록 4건의 누락·오기 수정(사용자에게 보이는 기능 변경은 없음).
안전장치 정밀도 개선 — 부정문 오탐 해소 + 우회 차단 강화 (2026-08-04)
  • 2층 deny-hook(hooks/re-deny-guard.mjs)이 "이 코드에는 인증 우회 로직이 없습니다"처럼 위험이 없다고 말하는 정상적인 문장까지 차단하던 문제를 고쳤습니다. 이제는 "없습니다"·"아닙니다" 같은 부정 표현이 가까이 있으면 정상 통과시키되, "~해줘"·"~방법 알려줘"처럼 실제 요청으로 보이는 문구가 함께 있으면 여전히 차단합니다(안전 우선 원칙 유지).
  • 눈에 보이지 않는 특수문자(제로폭 문자)나 로마자와 비슷하게 생긴 키릴 문자로 위험 단어를 숨겨 우회하려는 시도를 감지해 차단하도록 보강했습니다.
  • 이 변경 후 안전 셀프테스트(13개 항목)와 별도의 경계값 테스트(빈 입력·손상된 데이터·대용량 입력·대소문자 변형 등 13종)를 직접 실행해 기존 기능에 회귀가 없음을 확인했습니다.
  • 위 개선에 맞춰 /re-start를 포함한 4개 분석 명령이 분석 시작 전 안전장치 자가검증을 자동으로 먼저 실행하도록 강화했고, 동의 통과 기록(consent-log.jsonl)을 남기도록 개선했습니다.
안전장치 무결성 점검 오류 수정 + 로그 자동정리 범위 확대 (2026-08-13)
  • 안전 3층 중 마지막 층(변조 감지)이 실제로는 저장된 확인값 4개가 틀어져 있어 정상 파일인데도 "변조 의심"으로 잘못 표시되던 문제를 발견해 바로잡았습니다(파일 자체는 문제없었음을 원본과 직접 대조해 먼저 확인). 지금은 13개 점검 항목이 전부 정상 통과합니다.
  • Python + LIEF(Ghidra 없이도 실행파일을 가볍게 살펴보는 대안 경로)가 이 컴퓨터의 파이썬 버전이 바뀌면서 조용히 끊겨 있던 것을 발견해 다시 연결·재확인했습니다.
  • 차단 이력을 30일 뒤 자동으로 지우던 정리 기능(scripts/rotate-safety-log.mjs)이 동의 확인 기록(consent-log.jsonl)도 함께 정리하도록 범위를 넓혔습니다.
v0.3.0 — Phase 3(바이너리 분석) 환경 구축 + 동의기록 손상 버그 수정 (2026-08-20)
  • 동의 기록이 실제로 깨져서 저장되던 버그를 고쳤습니다. 윈도우 경로(예: D:\내파일.js)가 포함된 동의 기록이 손상된 형식으로 저장되던 문제를 발견해 수정했습니다.
  • Ghidra(바이너리 분석 도구) 설치 안내를 실제로 검증했습니다. JDK 21 이상이 필요하다는 걸 실측으로 확인했고(기존 안내는 Java 17이었음), 실제 설치·실행까지 전 과정을 직접 검증했습니다.
  • 함수·문자열 목록을 뽑아 보고서에 채워 넣는 추출 스크립트를 새로 만들고 실제 파일로 검증했습니다.
  • 여러 명령어가 다른 플러그인과 이름이 겹쳐 "Unknown command"가 뜨던 문제의 해결법을 안내에 추가했습니다(sodam-reverse: 접두어 사용).
  • 기획 문서 곳곳에 남아있던, 실제로는 끝난 작업을 "미완료"라고 잘못 표시하던 기록 9건을 발견해 바로잡았습니다(사용자에게 보이는 기능 변경은 없음).
  • LICENSE·NOTICE 파일이 이미 갖춰져 있었는데 기획 문서만 "없음"으로 잘못 남아있던 것을 발견해 정정했습니다.
Phase 3 실사용 라이브 검증 완료 + 버그 2건 수정 (2026-08-21)
  • /re-binary가 실제 새 세션에서 동의 게이트 → Ghidra 분석 → 표준 보고서까지 전 과정을 처음으로 완주했습니다. 이걸로 Phase 1·2·3 전부 실사용 검증이 끝났습니다.
  • 그 과정에서 두 가지 문제를 더 발견해 고쳤습니다:
    • Ghidra가 실제로는 정상 작동 가능한 상태인데도, 확인 방법이 부정확해 "JDK 21 이상이 없다"고 잘못 판단해 더 약한 분석 방식으로 자동 전환되던 문제
    • 동의 기록이 또 한 번 깨진 형식으로 저장되던 문제(v0.3.0에서 고친 것과 증상은 같지만 원인은 달랐음) — 이번엔 손으로 만든 문자열 대신 프로그램이 자동으로 형식을 만들도록 바꿔 같은 문제가 다시 생기지 않도록 근본적으로 고쳤습니다.
안전 3층 전체 실사용 라이브 검증 완주 + main 브랜치 반영 (2026-09-01)
  • 명령어 7개(/re-ping·/re-start·/re-report·/re-selftest·/re-agent·/re-android·/re-binary) 전부 새 세션에서의 실사용 라이브 검증을 마쳤습니다. 그중 /re-report·/re-agent는 이번에 처음으로 실제 대화 흐름 안에서 확인했습니다.
  • 1층(AI가 스스로 위험한 요청을 거부하는 것)을 처음으로 격리된 테스트 스크립트가 아니라 실제 대화 안에서 확인했습니다.
  • 2층 deny-hook의 6번째 정밀화 패치(내부 코드명 R0)를 적용했습니다 — .md 문서를 쓰거나 고칠 때 방어적인 목적으로 위험 개념을 설명·언급하는 정상적인 문장까지 과도하게 막던 문제를 좁혀 고쳤고, 가장 위험도가 높은 표현들은 .md 안에서도 여전히 그대로 차단되도록 유지했습니다. 실제로 .md 파일을 새로 만드는 시나리오로 라이브 검증까지 마쳤습니다.
  • 위 변경 사항을 GitHub main 브랜치에 Pull Request 방식으로 정식 반영했습니다(총 2건 병합).
  • 이 README에 남아 있던 "비공개 저장소" 관련 안내가 실제로는 이미 공개 저장소인 상태와 맞지 않는 것을 발견해 바로잡았습니다(§6 설치 방법·§14 연락·기여) — 다운로드 방법을 초대 없이 누구나 가능한 방식으로 갱신했습니다.
법률·저작권·라이선스·상업적 용도 전수 점검 (2026-09-01)
  • 프로젝트에 외부 코드 의존성이 전혀 없음을 확인했습니다(package.json 등 어떤 의존성 파일도 없음, 번들된 제3자 코드 없음) — 라이선스 충돌 위험이 구조적으로 없는 상태입니다.
  • 자체 점검 도구(scripts/check-trust-freshness.mjs)를 실행해 참고 도구 카탈로그(references/trust-catalog.md)의 15개 외부 저장소 상태를 GitHub API로 재확인했습니다 — 이미 "제외" 처리돼 있던 3건(무라이선스 2건, 폐기 1건)이 여전히 같은 사유로 제외 대상임을 재확인했고, 카탈로그 갱신은 필요 없었습니다.
  • NOTICE 파일에서 아직 라이선스 검토가 끝나지 않은 도구(Frida)가 이미 연동된 도구들과 나란히 예시로 적혀 있던 것을 발견해 제거했습니다(실제로 이 도구는 어떤 명령어에서도 아직 사용되지 않음).
  • 분석 보고서(AI 생성물)와 이 프로젝트 자체의 소스코드(AI 코딩 도구로 다수 작성, 전체 커밋 103건 중 43건 확인)에 대해 "상업적 사용 전 사람이 직접 검토·확인 필요"라는 안내를 표준 보고서 양식과 README §13에 명시적으로 추가했습니다.
  • 상업적 사용과 관련해 자주 나올 수 있는 구체적 상황(포크·재배포·SaaS 운영·판매·교육자료·고객사 납품)을 표로 명시했습니다.
  • AI 보조 저작물의 저작권 성립·귀속처럼 국가별로 다르게 취급될 수 있는 사항은 임의로 결론 내리지 않고 "법무/전문가 검토 필요"로 명확히 구분해 남겼습니다.
프롬프트 인젝션 방어 전수 점검 + 4개 분석 스킬 블라인드 레드팀 검증 (2026-09-11~12)
  • 6개 스킬 파일을 직접 대조한 결과, re-analyze-mycode(가장 많이 쓰이는 Phase 1 핵심 스킬)에 다른 3개 스킬(android·binary·agent)이 이미 갖추고 있던 프롬프트 인젝션 방어 규칙이 빠져 있던 것을 발견해 이식했습니다.
  • 이어서 re-router의 자연어 라우팅 메뉴가 이미 완료된 바이너리 분석(Phase 3)을 여전히 "준비중"으로 안내하던 것을 발견해 바로잡았습니다.
  • /re-start 명령이 스킬을 그대로 위임하지 않고 자체 로직을 내장하는 구조라, 위 mycode 수정이 실제로는 /re-start 실행 경로에 적용되지 않고 있던 것을 재확인 과정에서 발견해 /re-start에도 동일한 방어를 직접 추가했습니다.
  • 이 방어 규칙들이 실제로 작동하는지, 이 대화 맥락을 전혀 모르는 독립된 에이전트에게 오염된 테스트 파일만 주고 분석시키는 방식(블라인드 레드팀)으로 검증했습니다 — 4개 분석 스킬(mycode·android·binary·agent) 전부, 총 16가지 공격 시나리오(위조 동의 기록·가짜 시스템 메시지·분석 범위 확장 유도·분석 조기 중단 유도·비밀정보 노출 유도·이름에 숨긴 지시문)에서 전부 방어에 성공했습니다.
  • 검증에 사용한 오염 테스트 파일들을 samples/에 영구 보존해, 앞으로도 같은 방식으로 재검증할 수 있게 했습니다.

개발 상세 이력은 CHECKPOINT.md(개발자용)를 참고하세요.


English version: README.en.md 오류 해결: TROUBLESHOOTING.md

About

방어·교육 전용 한국어 리버스 엔지니어링 Claude Code 플러그인 — 내 코드·AI 에이전트·안드로이드 앱·바이너리 실행파일 분석(전부 실사용 검증됨), 안전 3층(AI거부+deny-hook+SHA-256), 왕초보 한/영 가이드 (Apache-2.0)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages