이 페이지에

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

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

REA는 코딩 에이전트가 프로그램을 조사하고 동작을 설명할 수 있도록 분석 도구를 제공합니다.

이미 다시 알고? 분석 가이드로 건너뛰기.

더 깊이 가고 싶습니까? 블로그 읽기→

설정REA

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

코딩 에이전트

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

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

npx rea-agents@latest setup

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

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

리버스 엔지니어링이란?

프로그램 자체를 조사해서 소프트웨어의 작동 방식을 알아내는 것입니다.

목표:충분히 기능을 이해 그것을 설명, 변경 또는 그것을 재건하십시오.

예를 들어: 계산기에서 200 + 10%가 왜 220이 될까요?

REA 사용 전 · 직접 조사합니다

원본 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 사용 시 · 에이전트에게 묻습니다

프롬프트 하나면 됩니다.

에이전트에게 일상적인 말로 질문하세요.

예제 프롬프트*계산기

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

예제 답변·결과에 따라

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

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

두 가지 예를 들어 보겠습니다. 게임의 속도를 변경 한 다음 계산기로 돌아가서%버튼을 다시 작성하십시오.

예 01·Chrome's 룡 게임

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

목표
와 게임을 다시 조정 가능한 속도.
왜 그것을 리버스 엔지니어링합니까?
가속도를 재현하려면 실행중인 게임의 규칙:얼마나 빨리 시작,얼마나 증가하고 멈출 때.

재구성한 게임 플레이

6 → 10 → 13

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

자신의 속도를 설정하는 슬라이더를 이동합니다. 공간 또는 점프는 선인장을 지 웁니다.

REA가 반환한 결과

스크립트는 실제로 페이지에서 실행. 에이전트는 업데이트 기능 및 속도 설정을 읽은 다음 새 게임에서 해당 규칙을 사용합니다.

예제 프롬프트*공룡 게임

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

검사 대상: 와이우의 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계산기

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

우리는 이유를 보았다 200 + 10% 220 을 줍니다. 이제+와 200 에 대한 규칙을 복구하고 시도해 보겠습니다.

목표
처리하는 작은 계산기를 구축 +및 2018 년 11 월 13 일.
왜 그것을 리버스 엔지니어링합니까?
같은 버튼 사용 +및 2019 년 이후의 다른 규칙. 우리는 비율이 적용되는 번호를 찾기 위해 설치된 응용 프로그램을 검사합니다.

계산 시도

200 + 20

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

검사된 백분율 규칙의 대화형 그림입니다.

REA가 반환한 결과

한 가지가 100 으로 나뉩니다. 다른 하나는 또한 첫 번째 숫자를 곱합니다. 에이전트는 둘 다 사용하여%단추를 다시 만듭니다.

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

예제 프롬프트*%단추 다시 작성

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

%처리기의 읽을 수 있는 요약
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}
+와 함께
첫 번째 숫자의 10%를 가져 가라.10% of 200 = 20 → 200 + 20 = 220
와×
10%를 0.1 로 바꿉니다.200 × 0.1 = 20

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

  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 작은 응용 프로그램에.

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

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

더 깊이 알아보고 싶나요?

당신이 이해하거나 구축하고 싶은 당신의 에이전트를 말한다. 함께 REA,당신은 아무것도 함께 작업 할 수 있습니다 이 웹 사이트 복제 에 실행 파일에서 게임을 재구성합니다.

프롬프트 예*웹 사이트

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

예,이 하나.

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

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

보 DX-Ball 사례 연구→

설정 및 분석 단계에서 대상을 선택합니다:

기계 코드 프로그램

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

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

JavaScript & Electron

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

애플리케이션 워크플로

브라우저 및 런타임 활동

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

브라우저 관찰 가이드

궁금한 점이 있나요?

자주 묻는 질문 읽기, 에 우리와 함께 채팅 Discord,또는 오픈 GitHub 문제 버그 및 기능 요청.

커뮤니티 참여

조사를 공유하고 다른 사람의 도움을 받으십시오 REA 사용자 Discord. 팔로우 REA 프로젝트 업데이트에 대한 엑스.

상단