코딩 에이전트와 함께 리버스 엔지니어링
소프트웨어가
어떻게 작동하는지 알아보세요.
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 에서 시작한 다음 13 으로 늘립니다.
REA가 반환한 결과
스크립트는 실제로 페이지에서 실행. 에이전트는 업데이트 기능 및 속도 설정을 읽은 다음 새 게임에서 해당 규칙을 사용합니다.
사용 REA 이 공룡 게임을 검사합니다. 왜 더 빨리 얻을 수 있습니까? 속도 규칙을 표시 한 다음 조정 가능한 속도로 작은 버전을 만듭니다.
검사 대상: 와이우의 Chromium-파생 브라우저 에디션.
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}
시작 6. 추가 0.001 충돌없이 각 업데이트,속도가 아래에있는 동안 13.
스피드 랩을 엽니다.각 부분이 하는 일
- 01 · REA실행중인 게임의 스크립트 읽기실제 코드와 설정을 에이전트에 반환합니다.
- 02*귀하의 에이전트규칙 다시 작성,컨트롤 추가속도 슬라이더와 작은 게임에서 복구 가속을 사용합니다.
- 03*당신속도 변경 및 재생원래 가속을 시도한 다음 자신의 페이스를 선택하십시오.
스크립트,검사 및 분석 시도 방법을 참조하십시오
REA 로컬 디버깅 연결을 통해 <URL> 브라우저 버전을 검사하고 로드된 버전을 반환했습니다. index.js,그 원천과 다이제스트를 포함합니다.
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
우리는 장애물과 자동 스케줄링이 비활성화 된 제어 된 브라우저 검사에서 원래 게임의 업데이트 기능을 호출했습니다. 4,000 개의 업데이트 후,속도는 10.0 이었고,10,000 개의 업데이트 후,13.0 이 되었고,10 진수로 반올림되었습니다.
새로운 미니 게임은 그 속도 규칙을 유지합니다. 그리기,점프 및 충돌 코드는 작은 교육 구현입니다. 실험실 열기 새 코드를 확인하고 동일한 속도 검사를 실행합니다.
대상을 직접 검사하려면 다음을 수행하십시오 브라우저 연결 단계 사용 공룡 페이지. 에이전트에 해당 페이지 및 로컬 디버깅 끝점을 지정한 다음 위의 프롬프트를 복사합니다.
예 02·Windows계산기
계산기의 % 버튼을 재현해 봅니다.
우리는 이유를 보았다 200 + 10% 220 을 줍니다. 이제+와 200 에 대한 규칙을 복구하고 시도해 보겠습니다.
- 목표
- 처리하는 작은 계산기를 구축 +및 2018 년 11 월 13 일.
- 왜 그것을 리버스 엔지니어링합니까?
- 같은 버튼 사용 +및 2019 년 이후의 다른 규칙. 우리는 비율이 적용되는 번호를 찾기 위해 설치된 응용 프로그램을 검사합니다.
계산 시도
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
설치된 앱에서 작동%버튼으로
-
01 · REA 읽는다 calc.exe그것은 계산기 응용 프로그램을 시작합니다코드가 열립니다
ms-calculator:. 그런 다음 에이전트는 설치된 앱의 라이브러리를 선택합니다. -
02 · REA 도서관 읽기%핸들러의 코드를 반환합니다이 함수는 연산자를 확인하고 상수를 사용합니다
100. - 03*당신의 에이전트는 그것을 해석규칙 설명 및 재현마이크로 소프트의 소스와 지점을 교차 검사 한 다음 위의+및 200 을 시도하십시오.
실제 코드 및 답변 확인 방법 보기
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://reverseengineeranything.app/. 나를 위해이 웹 사이트를 복제.
예,이 하나.
사용 REA 이 게임을 실행 파일에서 재구성합니다. 다에서 게임 플레이 로직을 복구하고 원본에 대해 테스트합니다.
설정 및 분석 단계에서 대상을 선택합니다:
궁금한 점이 있나요?
자주 묻는 질문 읽기, 에 우리와 함께 채팅 Discord,또는 오픈 GitHub 문제 버그 및 기능 요청.