Search
Duplicate
moon
sun

[실전]파괴적_리버스엔지니어링_REA(1)기본개념 및 예제

목차(클릭하세요)
💡
일반인에게도 열린 리버스 엔지니어링 방식, 진짜 가치는 CLI와 연결될 때, 이제 시작이다!
[해당 깃허브 레포지토리] 현재 약 44만개 스타를 받음
rea
morluto
[참고영상1]
소프트웨어는 끝났다? 앱 통째로 복사하는 미친 오픈소스.. ㄷㄷ
▶ 오늘 영상에서 쓴 Reverse Engineer Anything(REA) 깃허브: https://github.com/morluto/rea 이미 있는 소프트웨어를 그대로 다시 만들 수 있게 해주는 Reverse Engineer Anything(REA)이 오픈소스로 풀리면서, 해외에서는 "소프트웨어는 끝났다"는 말까지 나왔습니다. 깃허브 스타는 벌써 15만 개가 넘었습니다. REA는 클로드 코드 같은 AI 에이전트가 Ghidra·Hopper·IDA 같은 분석 툴로 앱을 뜯어보고 똑같이 다시 만들게 해주는 MCP입니다. 윈도우 그림판을 직접 리버스 엔지니어링해서 원래 없던 에셋 리스트 패널까지 붙여 보고, 정말 소프트웨어가 끝난 건지, 앞으로 소프트웨어 개발에 어떤 의미인지 짚어 봤습니다. 🔑 영상에서 확인할 내용 REA 구조: 에이전트 → REA MCP → Ghidra·Hopper·IDA·Chrome 브라우저 → Pseudo 코드·근거·모르는 부분 미국 국가안보국(NSA)이 20년 가까이 내부에서 쓰다 2019년 오픈소스로 공개한 Ghidra 등, REA 안의 툴은 전부 원래 있던 것 깃허브 링크를 클로드 코드에 붙여넣고 설치까지 맡기는 방법 윈도우 그림판을 다시 만들고 붙여넣은 그림이 쌓이는 에셋 리스트를 11분 만에 붙인 과정 전문가용이라기보다 일반인·바이브 코더용인 이유와, 앞으로 핵심 로직이 서버로 옮겨갈 수 있다는 전망 📝 영상 순서 🚀 Part 1. REA가 돌아가는 방식: 개념도로 에이전트가 기존 분석 툴을 대신 쓰는 구조와 기존 AI 리버싱 MCP와의 차이를 설명합니다 🚀 Part 2. 설치와 그림판 다시 만들기: 깃허브 링크로 설치하고, 그림판에 원래 없던 에셋 리스트 패널을 붙여 테스트합니다 🚀 Part 3. 해외 결과물: 실제 기기를 조종하는 앱, 게임 섞기, 웹사이트 분석까지 다른 사람들이 만든 것들을 살펴봅니다 🚀 Part 4. 소프트웨어는 정말 끝났나: REA를 언제 써야 하는지, 소프트웨어가 가는 방향, REA 없이도 되는 리버스 엔지니어링 🔗 관련 링크 🛠 Reverse Engineer Anything 깃허브: https://github.com/morluto/rea 다시 만든 앱은 개인 공부용으로만 쓰시고, 상업적으로 판매되는 앱을 분석해서 똑같이 만드는 것은 불법이라는 점 꼭 지켜 주세요. ⏰ 타임라인 00:00 소프트웨어가 끝났다는 REA 등장 00:33 사람들의 반응 01:06 REA가 정확히 뭔가 01:22 개념도로 보는 REA 구조 02:31 REA 안의 툴은 새로운 게 아니다 (NSA가 만든 Ghidra) 03:32 원래 있던 AI 리버싱 MCP와 뭐가 다른가 04:20 REA 설치 방법 05:22 윈도우 그림판 리버스 엔지니어링 시작 05:53 리버스 엔지니어링으로 만든 해외 결과물 06:26 상업용 앱 복제는 불법 07:25 다시 만든 그림판 테스트 07:55 새로 붙인 에셋 리스트 기능 08:33 11분 만에 완성한 그림판 09:29 REA는 언제 써야 하나 09:49 REA가 보여주는 소프트웨어 방향 10:43 REA 없이도 되는 리버스 엔지니어링 11:15 소프트웨어는 정말 끝났을까 #REA #ReverseEngineerAnything #리버스엔지니어링 #클로드코드 #바이브코딩
[참고영상2]
[기본 용어 정리]
리버스 엔지니어링 기본 용어
용어
뜻
페이지 속 비유와 연결
리버스 엔지니어링
완성된 결과물을 거꾸로 뜯어보며 구조와 동작 원리를 알아내는 일
찌개를 맛보고 레시피를 알아내기
소스 코드
개발자가 사람이 읽을 수 있는 언어로 작성한 프로그램 원본
레시피
컴파일
소스 코드를 CPU가 실행하는 기계어로 바꾸는 과정. 이때 변수 이름, 주석, 구조가 사라짐
레시피대로 찌개를 끓이는 것
바이너리 (실행 파일)
컴파일된 결과물. 윈도우의 .exe, .dll 등
다 끓인 찌개
어셈블리
기계어(0과 1)를 사람이 겨우 읽을 수 있게 1:1로 옮긴 저수준 명령어
성분을 하나하나 나열한 목록
디스어셈블러
기계어를 어셈블리로 풀어 주는 도구
성분표 뽑기
디컴파일러
기계어를 C언어 비슷한 코드로 되돌려 주는 도구 (Ghidra, IDA의 Hex-Rays)
성분표로 레시피 비슷한 것을 재구성
의사 코드 (Pseudo code)
디컴파일러가 만든, 원본과 똑같지는 않지만 동작을 짐작할 수 있는 코드. 이름이 사라져 FUN_00401A30처럼 표시됨
재료 이름이 지워진 레시피
심볼
함수 이름, 변수 이름 같은 이름 정보. 배포할 때 지우는 경우가 많고, 이를 스트리핑이라고 함
레시피 속 재료 이름
난독화 (Obfuscation)
프로그램은 똑같이 동작하게 두면서, 분석하기 어렵도록 코드를 일부러 꼬아 놓는 기법
레시피를 암호문과 헛갈리는 단계로 뒤섞기
정적 분석
프로그램을 실행하지 않고 파일 내용만 읽어서 분석하는 것
성분 분석
동적 분석
프로그램을 실제로 실행하며 동작, 통신, 파일 접근을 관찰하는 것
끓이는 과정을 CCTV로 찍기
후킹 / 인스트루먼테이션
실행 중인 프로그램의 특정 함수에 끼어들어 오가는 값을 엿보거나 바꾸는 기법. 대표 도구는 Frida
조리 중간에 냄비 속을 들여다보기
클린룸 설계
분석 팀은 동작 설명서만 쓰고, 원본을 본 적 없는 구현 팀이 그 설명서만 보고 새로 만드는 방식. 저작권 침해를 피하기 위한 절차
맛 설명서만 받은 다른 요리사가 새로 끓이기

1. REA가 핫한 이유

1-1. REA는 도대체 무엇인가?

•
REA=Reverse Engineer Anything
•
Claude Code, Codex, antigravity 같은 코딩 에이전트에 REA를 연결하여 바로 사용가능
•
AI가 Ghidra(기드라) 같은 분석 도구를 직접 호출해 조작
•
REA는 기존 리버스 엔지니어링 도구들을 하나로 묶은 로컬 분석 도구
◦
MCP, CLI, 스킬이 모두 제공 됨
◦
컴퓨터에서 돌아가는 웬만한건 다 뜯어볼 수 있다고 알려짐(플레이스테이션, 웹,앱, 안드로이드 등)

1-2. 화제가 된 사건

•
한 개발자가 어도비 앱 7개를 다시 만들어 무료로 공개함 (ArtCraft)
◦
포토샵, 프리미어, 라이트룸, 일러스트레이터 등
◦
Claude Opus 5.5로 Rust 언어로 작성
◦
계기: 어도비 해지 위약금에 대한 불만
•
커뮤니티 반응: "이제 소프트웨어의 시대는 끝났다"

1-3. 프로그램은 왜 '금고'였나?

•
프로그램의 두 모습
◦
소스 코드: 사람이 읽을 수 있는 글자
◦
실행 파일: 컴파일을 거친 0과 1의 기계어
•
비유: 코드는 레시피, 실행 파일은 다 끓인 된장찌개
•
컴파일하면 변수 이름, 주석, 구조가 사라짐
•
회사들은 레시피는 금고에 두고 찌개만 판매함 (어도비, MS, 게임사)
•
디컴파일러(Ghidra 등)는 오래전부터 있었음
◦
결과물이 FUN_00401A30 같은 이름 없는 코드라 해석에 전문가가 몇 주씩 걸림
•
자물쇠가 튼튼해서가 아니라 따는 데 너무 오래 걸려서 아무도 안 따던 금고

1-4. AI가 금고를 따기 시작함

•
기계적인 되돌리기는 원래 가능했음
•
사람이 지쳐서 못 하던 일은 "이 함수가 무슨 일을 하는지" 알아내는 해석
•
AI는 이름 없는 코드 수만 줄을 지치지 않고 해석함: 몇 주 → 몇 분
•
이것이 "소프트웨어는 끝났다"는 말이 나온 이유

2. REA 개요와 작동 원리

2-1. 작동 구조

•
사용자가 에이전트(클로드 코드 등)에 "이 앱 기능을 똑같이 만들어 달라"고 지시
•
에이전트가 REA MCP를 호출하고, REA가 분석 툴(Ghidra, Hopper, IDA)에 작업 지시
•
웹사이트와 일렉트론 앱은 Chrome 브라우저로 화면 구조와 네트워크까지 분석
•
분석 결과물 3종
◦
Pseudo 코드(=의사코드): 동작을 사람이 읽을 수 있게 적은 설명
▪
디테일한 코드는 아님
◦
근거: 해당 동작이 일어나는 이유
◦
모르는 부분: 분석하지 못한 영역
•
에이전트가 코드 작성, 테스트, 재질문을 반복해 원하는 기능이 모두 구현될 때까지 진행

2-2. 핵심 분석도구: Ghidra

•
미국 국가안보국(NSA)이 내부에서 약 20년간 사용했던 리버스 엔지니어링 도구, 2019년 오픈소스로 공개
•
기능: 기계어를 명령어로 풀고 C언어 비슷한 코드로 재조립
•
비유: 찌개의 성분 분석 (무엇이 들어갔는지는 알려 주지만, 왜 넣었는지는 사람이 해석)
•
한계: 사람이 쓰라고 만든 프로그램이라 AI가 바로 쓰기엔 불편하고, 바로 리버스 엔지니어링이 끝나지 않았음

2-3. 보조 분석도구 및 REA의 핵심

•
IDA((Interactive DisAssembler)
◦
1990년대부터 사용
◦
버스 엔지니어링 업계의 사실상 표준 도구
◦
보안 연구, 악성코드 분석, 취약점 연구에서 가장 오래 쓰여 온 상용 도구
•
Hopper(=Hopper Disassembler)
◦
프랑스 개발자가 만든 비교적 저렴한 상용 도구
◦
macOS와 Linux용 (Windows 미지원)
◦
맥과 iOS 앱 분석에 강점 (Objective-C, Swift 구조 해석)
◦
디스어셈블과 디컴파일(의사 코드) 모두 지원
•
REA의 역할: 기존 분석 툴을 에이전트가 쓰기 쉽게 하나로 연결
◦
네이티브 분석: Ghidra, IDA, Hopper
◦
안드로이드 앱 분석: JADX
◦
실행 관찰: Frida

3. 설치와 실습, 사례

3-1. 설치 방법(A와 B중 선택)

•
방법 A: 깃허브 README의 설치 명령어를 터미널에 입력
•
방법 B: 깃허브 링크를 에이전트에 붙여넣고 "클로드 코드에 맞게 셋업해줘" 요청
•
설치 후에는 위에서 설명한 Ghidra, IDA, JADX 등이 제대로 작동되는지, 연결 상태를 확인하는 것도 좋음
•
Agent에 따라 MCP연결을 따로 설정해줘야 하는 경우가 있음

3-2. [실습1] 윈도우 그림판 재구현(APP)

•
지시: 그림판을 리버스 엔지니어링해 간단한 그림판 제작
[예시 프롬프트]
윈도우 그림판을 rea 사용해서 새로운 간단한 그림판을 만들어주고, 추가기능으로 우측패널에 내가 붙여넣기하는 그림들이 에셋으로 리스트로 저장되는 기능을 넣어줘.
JavaScript
복사
•
추가 기능: 붙여넣은 그림이 우측 패널에 에셋 리스트로 저장되는 기능
•
대략 10분 정도만에 초안이 완성됨
•
핵심 기능이였던 에셋 역시 제대로 구현된 것을 볼 수 있음
[초안 파일 다운로드]
rea-paint.zip
16.5 KiB

3-3. [실습2] 단축주소 bit.ly 재구현(Web)

[타겟 사이트] bit.ly
•
애용하는 사이트 중 하나
•
원하는 단축주소로 링크를 생성할 수 있는 장점
[예시 프롬프트]
https://bitly.com/ 이 사이트를 rea활용해서 bit.link 사이트를 만들꺼야. 먼저 핵심기능은 내가 원하는 단축주소로 바꿀 수 있어야 하는 거야. 그걸 제대로 구현해내
JavaScript
복사
•
해당 서비스를 나를 위한 맞춤형 비공개 서비스로 전환하기 위해 REA진행
•
1일 최대 5회까지 사용가능, 접속자 통계 정보 등을 구현
•
특히, 실제로 웹 서비스로 이용하기 위해 구글 fire_base서비스 연동
•
작업 과정은 Agent-Desktop모드를 활용하여 대부분 자동으로 진행되었으나, 구글 로그인, blaze유료 결제 같은 risk있는 작업은 사람 클릭이 필요 했음
•
실제 만들어본 서비스: 양파고의 bit.link
•
VIP를 위한 비공개 서비스로 실제로 내가 사용 예정
•
테스트 결과: 매우 잘됨
•
이 페이지를 단축주소로 테스트 해본 결과 오류없이 작동

4. 활용 기준과 법적 유의

4-1. 권장 사용 시점

•
내가 쓰는 앱에 원하는 기능을 추가할 때 (그림판 + 에셋 리스트 사례)
•
개인용 앱을 만들 때 잘 만든 도구의 플로우를 확인해 가져오기

4-2. 비권장( 법적 문제)

•
남의 앱을 통째로 베끼거나 같은 앱을 찍어낼 때 → 불법 복제 앱이 됨
•
프로덕션급 앱 제작에는 부적합하다는 전문가 의견

4-3. 법적 기준

•
상업용 앱을 임의로 분석해 똑같이 만드는 행위는 불법
•
라이선스가 걸린 앱은 소프트웨어 관련 법 준수
•
재구현한 앱은 개인 공부용으로만 사용

5. 전망과 결론

5-1. 소프트웨어 방향과 기업 대응

•
대부분의 소프트웨어가 사실상 오픈소스처럼 될 것
◦
모델 성능이 좋아져 프론트엔드와 백엔드를 누구나 구현할 수 있음
◦
스타트업 웹서비스를 코덱스와 클로드가 흡수하는 중
•
기업 대응 예상
◦
반대로 기업은 핵심 로직과 오프라인 기능을 앱에 탑재하기를 꺼림
◦
해당 기능을 서버에서 제공하는 방식으로 이동

5-2. REA 없이도 가능한 방식

•
REA를 사용하지 않더라도, Agent에게 기능 분석 요청, 스크린샷 촬영 후 추론해 비슷하게 재현할수 도있음
•
REA의 장점: 파일 내부까지 세밀하게 분석해 완성도 향상
•
예측컨대 한두 달 안에 분석 기능이 Agent의 기본 기능이 될 가능성도 있음

5-3. 한계

➡️ 폴리싱이 진짜 승부처
•
프로토타입보다 매끄럽게 다듬는 ‘폴리싱’이 훨씬 어렵고 오래 걸림
◦
웹보다 앱, 앱보다 게임으로 갈수록 더 어려움
◦
반응 속도, 미세한 끊김, 손에 붙는 느낌
•
프로토타입은 몇 주, 폴리싱은 몇 년이 걸리기도 함
•
ArtCraft는 폴리싱 단계가 통째로 빠진 상태
[앞으로의 주요 Point]
오픈소스 개발자들이 AI와 함께 달려들면 폴리싱도 빨라질까?

5-3. 지금 REA가 가지는 가치

•
CLI방식과 연결될 때의 가치는 무궁무진
•
이게 뭔소리인가?
◦
REA방식으로 만든 프로그램을 CLI로 연결시켜, AGent에서 해당 프로그램의 작업을 모두 다 말로 시킬 수 있는 시대가 열린 것임
•
즉, 만들어진 프로그램이 사람에게 최적화된 방식이 아니라 AI가 CLI로 제어하기에 최적화된 방식 이라는 점
◦
ArtCraft의 경우 CLI용 설치 프로그램이 아예 별로도 존재함