이 페이지에

코딩 에이전트와 함께 리버스 엔지니어링

소프트웨어가
어떻게 작동하는지 알아보세요.

앱, 게임, 웹사이트에 대해 코딩 에이전트에게 질문해 보세요. REA는 답의 근거가 되는 코드를 살펴볼 도구를 제공합니다.

설정REA

이 프롬프트를 코딩 에이전트에 붙여 넣으세요:

코딩 에이전트

npx rea-agents@latest setup을 사용해 REA를 설치하고 이 코딩 에이전트에 연결해 줘. 먼저 설정 변경 계획을 보여 주고 내 승인을 받은 뒤 실행해 줘. 마지막으로 설치를 확인해 줘.

터미널에서 직접 실행할 수도 있습니다:

npx rea-agents@latest setup

설정 변경 계획을 확인하고 승인한 뒤 에이전트를 다시 시작하세요.

다른 설치 방법: curl →

처음 또는 누락 Node.js 아니면 코딩 에이전트? 단계별 설치 가이드를 따르십시오.

작동 방식

리버스 엔지니어링은 프로그램 자체를 살펴보고 소프트웨어의 작동 방식을 이해하는 것입니다. REA를 사용하면 에이전트가 코드를 추적하고 기능을 설명하며 다시 구현하는 일을 도울 수 있습니다.

  1. 한 가지 기능 질문하기

    에이전트에게 프로그램이나 페이지와 질문을 전달하세요.

  2. 프로그램 살펴보기

    REA는 코드, 참조 관계, 실행 중 관찰 결과를 반환합니다.

  3. 이해한 뒤 변경해 보기

    에이전트는 조사 결과를 바탕으로 기능을 설명하거나 다시 구현합니다.

계산기 조사 전체 보기

계산기에서 200 + 10%의 결과가 220인 이유는 무엇일까요?

명령어를 단계별로 따라가기

원본 64*선택한 지침
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
0x180124960: LEA RCX, [RSP + 0x160]
0x180124968: CALL 0x180122650
0x18012496e: LEA RDX, [R13 + 0x160]
0x180124975: LEA RCX, [RSP + 0x78]
0x18012497a: CALL 0x180109720
0x18012497f: MOV RSI, RAX
0x180124982: MOV qword ptr [RSP + 0x28], RAX
0x180124987: LEA RDX, [RSP + 0x160]
0x18012498f: MOV RCX, RAX
0x180124992: CALL 0x180123190
; … value-copy instructions omitted …
0x180124a14: MOV RDX, RDI
0x180124a17: LEA RCX, [RSP + 0xf8]
0x180124a1f: CALL 0x180109720
0x180124a24: LEA R8, [RSP + 0x30]
0x180124a29: MOV RDX, RAX
0x180124a2c: LEA RCX, [RSP + 0xb8]
0x180124a34: CALL 0x180123c10

당신은 명령을 디코딩 함수 호출을 따라 계산을 재구성.

에이전트에게 같은 질문하기

예제 프롬프트*계산기

사용 REA 검사 Windows 계산기 왜 200 + 10% 220 줘?

예제 답변·결과에 따라

+후,%버튼이 걸립니다 첫 번째 숫자의 백분율.

10% of 200 = 20200 + 20 = 220
REA가 제공하는 정보
핸들러의 명령,디 컴파일 된 코드 및 호출.
에이전트가 설명하는 내용
어떤 분기가 적용되는지,무엇을 계산하고 다시 작성하는 방법.
설치된 계산기에서 선택한 어셈블리. 생각과 대답은 그 결과를 보여줍니다. 계산기 예제를 계속 진행하십시오.

두 가지 예제를 해 봅시다. 게임의 속도를 바꾸고, 계산기의 % 버튼을 다시 구현합니다.

예 01·Chrome's 룡 게임

공룡은 왜 점점 빨라질까요?

계속 달리면 게임이 빨라집니다. 속도 조절 기능을 넣어 다시 구현하려면 먼저 속도가 어떻게 변하는지 알아야 합니다.

1. 속도에 대해 질문하기

질문 예시 · 공룡 게임

사용 REA 이 공룡 게임을 검사합니다. 왜 더 빨리 얻을 수 있습니까? 속도 규칙을 표시 한 다음 조정 가능한 속도로 작은 버전을 만듭니다.

2. 속도 규칙 찾기

REA를 사용하면 에이전트가 실행 중인 게임의 코드를 읽을 수 있습니다. 속도는 6에서 시작하고, 13 미만인 동안 갱신할 때마다 조금씩 증가합니다.

3. 결과물 플레이하기

아래 미니게임에 이 규칙을 구현하고 속도 슬라이더를 추가했습니다. 시작을 누르고 원하는 속도를 골라 보세요.

6 → 10 → 13

원래 규칙:6 에서 시작한 다음 13 으로 늘립니다.

자신의 속도를 설정하는 슬라이더를 이동합니다. 공간 또는 점프는 선인장을 지 웁니다.
스피드 랩을 엽니다.
스크립트,검사 및 분석 시도 방법을 참조하십시오

검사 대상: 와이우의 Chromium-파생 브라우저 에디션.

REA *로드 index.js *선택한 라인
if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

시작 6. 추가 0.001 충돌없이 각 업데이트,속도가 아래에있는 동안 13.

각 부분이 하는 일

  1. 01 · REA실행중인 게임의 스크립트 읽기실제 코드와 설정을 에이전트에 반환합니다.
  2. 02*귀하의 에이전트규칙 다시 작성,컨트롤 추가속도 슬라이더와 작은 게임에서 복구 가속을 사용합니다.
  3. 03*당신속도 변경 및 재생원래 가속을 시도한 다음 자신의 페이스를 선택하십시오.

REA 로컬 디버깅 연결을 통해 <URL> 브라우저 버전을 검사하고 로드된 버전을 반환했습니다. index.js,그 원천과 다이제스트를 포함합니다.

검사된 스크립트에서 선택한 설정
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

우리는 장애물과 자동 스케줄링이 비활성화 된 제어 된 브라우저 검사에서 원래 게임의 업데이트 기능을 호출했습니다. 4,000 개의 업데이트 후,속도는 10.0 이었고,10,000 개의 업데이트 후,13.0 이 되었고,10 진수로 반올림되었습니다.

새로운 미니 게임은 그 속도 규칙을 유지합니다. 그리기,점프 및 충돌 코드는 작은 교육 구현입니다. 실험실 열기 새 코드를 확인하고 동일한 속도 검사를 실행합니다.

대상을 직접 검사하려면 다음을 수행하십시오 브라우저 연결 단계 사용 공룡 페이지. 에이전트에 해당 페이지 및 로컬 디버깅 끝점을 지정한 다음 위의 프롬프트를 복사합니다.

검사된 속도 코드 · Chromium 저자*비스 디 라이센스

예 02·Windows계산기

계산기의 % 버튼을 재현해 봅니다.

% 버튼은 + 뒤와 × 뒤에서 다르게 작동합니다. 두 규칙을 찾아 작은 계산기에서 시험해 봅시다.

1. % 버튼에 대해 질문하기

질문 예시 · 계산기

사용 REA 검사 Windows 계산기의%버튼. +와 200 이후의 규칙을 복구 한 다음 둘 다 사용하는 작은 계산기를 만듭니다.

2. 두 규칙 찾기

REA는 에이전트가 % 버튼의 코드를 읽도록 돕습니다. 이 코드는 서로 다른 두 규칙을 적용합니다.

+와 함께
첫 번째 숫자의 10%를 가져 가라.10% of 200 = 20 → 200 + 20 = 220
와×
10%를 0.1 로 바꿉니다.200 × 0.1 = 20

3. % 버튼 시험하기

아래에 두 규칙을 다시 구현했습니다. + 또는 ×를 고르고, %를 누른 뒤 =를 누르세요.

200 + 20

10%의 200=20. 그런 다음 200+20=220.

검사된 백분율 규칙의 대화형 그림입니다.
실제 코드 및 답변 확인 방법 보기

이 예제에서는, previous = 200 그리고 current = 10.

%처리기의 읽을 수 있는 요약
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

설치된 앱에서 작동%버튼으로

  1. 01 · REA 읽는다 calc.exe그것은 계산기 응용 프로그램을 시작합니다코드가 열립니다 ms-calculator:. 그런 다음 에이전트는 설치된 앱의 라이브러리를 선택합니다.
  2. 02 · REA 도서관 읽기%핸들러의 코드를 반환합니다이 함수는 연산자를 확인하고 상수를 사용합니다 100.
  3. 03*당신의 에이전트는 그것을 해석규칙 설명 및 재현마이크로 소프트의 소스와 지점을 교차 검사 한 다음 위의+및 200 을 시도하십시오.
REA·선택한 원래의 지침
0x180124945: MOV EAX, dword ptr [R13 + 0x18]
0x180124949: CMP EAX, 0x5c
0x18012494c: JZ 0x180124aba
0x180124952: CMP EAX, 0x5b
0x180124955: JZ 0x180124aba
0x18012495b: MOV EDX, 0x64
운영자의 신분증*마이크로 소프트의 소스
#define IDC_MUL 92      // 0x5c
#define IDC_DIV 91      // 0x5b
#define IDC_PERCENT 118 // 0x76

0x64 = 100

검사와REA4.1.0:Windows계산기 11.2508.4.0,x64. 읽을 수있는 요약은 복구 된 지점을 설명하기 위해 마이크로 소프트의 공개 소스에서 이름을 사용합니다.

백분율 구현 · 마이크로소프트의 테스트 케이스 · 기본 설정 가이드

REA 사례 연구.

출시된 앱이나 게임의 기능을 코드와 검증 결과와 함께 살펴보세요.

전시→

안드로이드·APK분석

인증자가 로그인 코드를 생성하는 방법

Aegis의 배포 APK에서 여섯 자리 로그인 코드를 추적하고 데모 시계를 움직여 30초마다 바뀌는 이유를 확인하세요.

안드로이드 사례 연구 읽기

Electron·기능 추적

Notion이 텍스트와 HTML을 복사하는 방법

Notion에 패키징된 JavaScript에서 시스템 클립보드까지 추적하며 복사가 서식 있는 블록 데이터를 보존하는 방식을 살펴보세요.

읽Notion사례 연구

네이티브 프로그램 · 재구현

DX-Ball의 좌우 음향 배분 계산

1996년 Windows 게임에서 공의 위치가 좌우 소리로 바뀌는 방식을 복원합니다.

읽DX-Ball사례 연구

첫 번째 조사

시도해봐 REA 작은 응용 프로그램에.

우리의 노트 예제를 다운로드,그 추적 CSV 수출,하나의 변경된 입력을 확인합니다.

가이드 예제를 사용해보십시오

조사 대상을 선택하세요.

이 가이드는 소프트웨어 종류별 설정과 첫 조사를 안내합니다.

기계 코드 프로그램

실행 파일 및 라이브러리에서 함수,문자열,참조 및 함수 호출 관계를 검사합니다.

기계 코드 프로그램 분석 가이드

JavaScript & Electron

응용 프로그램 폴더에서 모듈,경로 및 기본 종속성을 매핑하거나 ASAR 아카이브

애플리케이션 워크플로

브라우저 및 런타임 활동

선택한 브라우저 또는 프로세스 활동을 캡처 한 다음 여러 실행에서 결과를 비교합니다.

브라우저 관찰 가이드
더 큰 프로젝트 시도하기
프롬프트 예*웹 사이트

사용 REA 검사 https://rea.tools/. 나를 위해이 웹 사이트를 복제.

예,이 하나.

예제 프롬프트*게임 재구성

사용 REA 이 게임을 실행 파일에서 재구성합니다. 다에서 게임 플레이 로직을 복구하고 원본에 대해 테스트합니다.

보 DX-Ball 사례 연구→

궁금한 점이 있나요?

상단