در این صفحه

مهندسی معکوس ، با عامل برنامه نویسی شما

بفهمید نرم‌افزار
چطور کار می‌کند.

از دستیار برنامه‌نویسی خود دربارهٔ یک برنامه، بازی یا وب‌سایت سؤال کنید. REA ابزارهایی برای بررسی کدِ پشت پاسخ در اختیارش می‌گذارد.

راه اندازی REA

این درخواست را در دستیار برنامه‌نویسی خود وارد کنید:

عامل برنامه نویسی شما

REA را با npx rea-agents@latest setup نصب کن و به این دستیار برنامه‌نویسی متصل کن. ابتدا برنامهٔ تغییرات را نشان بده و منتظر تأیید من بمان. سپس نصب را بررسی کن.

یا این دستور را در ترمینال اجرا کنید:

npx rea-agents@latest setup

برنامهٔ تغییرات را بررسی و تأیید کنید، سپس دستیار را دوباره راه‌اندازی کنید.

روش‌های دیگر نصب: curl ←

اولین بار یا گمشده Node.js یا یک عامل برنامه نویسی ؟ راهنمای راه اندازی گام به گام را دنبال کنید →

روش کار

مهندسی معکوس یعنی فهمیدن سازوکار نرم‌افزار با بررسی خود برنامه. با REA، دستیار شما می‌تواند کد را دنبال کند، یک قابلیت را توضیح دهد و در بازسازی آن کمکتان کند.

  1. دربارهٔ یک قابلیت بپرسید

    یک برنامه یا صفحه را همراه با یک سؤال به دستیار بدهید.

  2. برنامه را بررسی کنید

    REA کد، ارجاع‌ها و مشاهدات زمان اجرا را برمی‌گرداند.

  3. بفهمید و سپس تغییری را امتحان کنید

    دستیار شما از یافته‌ها برای توضیح یا بازسازی قابلیت استفاده می‌کند.

دیدن بررسی کامل ماشین‌حساب

چرا نتیجهٔ 200 + 10% در ماشین‌حساب 220 می‌شود؟

دستورها را گام‌به‌گام دنبال کنید

اصلی x64 * دستورالعمل های انتخاب شده
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 چه چیزی فراهم می‌کند
دستورالعمل های کنترل کننده ، کد و تماس های کامپایل شده.
دستیار چه چیزی توضیح می‌دهد
کدام شاخه اعمال می شود ، چه چیزی محاسبه می شود و چگونه آن را بازسازی کنیم.
مونتاژ انتخاب شده از ماشین حساب نصب شده DLL. افکار و پاسخ ها یافته ها را نشان می دهد. با مثال ماشین حساب ادامه دهید ↓

دو نمونه را امتحان کنیم: سرعت یک بازی را تغییر دهیم، سپس دکمهٔ % ماشین‌حساب را بازسازی کنیم.

مثال 01 * بازی دایناسور Chrome

چرا دایناسور سریع‌تر می‌شود؟

با ادامهٔ دویدن، بازی سریع‌تر می‌شود. برای بازسازی آن با کنترل سرعت، ابتدا باید بفهمیم سرعت چگونه تغییر می‌کند.

1. دربارهٔ سرعت بپرسید

نمونهٔ پرسش · بازی دایناسور

برای بازرسی این بازی دایناسور از REA استفاده کنید. چرا سریع تر می شود ؟ قانون سرعت را نشان دهید ، سپس یک نسخه کوچک با سرعت قابل تنظیم بسازید.

2. قاعدهٔ سرعت را پیدا کنید

REA به عامل اجازه می‌دهد کد بازی در حال اجرا را بخواند. سرعت از 6 شروع می‌شود و تا زمانی که کمتر از 13 باشد، در هر به‌روزرسانی کمی افزایش می‌یابد.

3. نتیجه را بازی کنید

این قاعده را در بازی کوچک زیر بازسازی کردیم و یک لغزندهٔ سرعت افزودیم. بازی را شروع کنید، سپس سرعت دلخواهتان را انتخاب کنید.

6 → 10 → 13

قانون اصلی: از 6 شروع کنید ، سپس به سمت 13 افزایش دهید.

نوار لغزنده را حرکت دهید تا سرعت خود را تنظیم کنید. فضا یا پرش یک کاکتوس را پاک می کند.
آزمایشگاه سرعت را باز کنید →
اسکریپت ، چک ها و نحوه امتحان کردن تحلیل را ببینید

هدف بازرسی شده: نسخه مرورگر مشتق شده از Chromium wayou.

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 نسخه مرورگر HTTP را از طریق یک اتصال اشکال زدایی محلی بازرسی کرد و نسخه بارگذاری شده را بازگرداند index.js، از جمله منبع و هضم آن.

تنظیمات انتخاب شده از اسکریپت بازرسی شده
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6

ما عملکرد به روز رسانی بازی اصلی را در یک بررسی مرورگر کنترل شده ، با موانع و برنامه ریزی خودکار غیرفعال نامیدیم. پس از 4000 به روز رسانی ، سرعت 10.0 بود ؛ پس از 10000 ، 13.0 بود ، به یک اعشاری گرد شده بود.

مینی بازی جدید این قانون سرعت را حفظ می کند. کد نقاشی ، پریدن و برخورد آن یک پیاده سازی آموزشی کوچک است. آزمایشگاه را باز کنید برای دیدن کد جدید و اجرای همان بررسی سرعت.

برای بازرسی هدف خود ، مراحل اتصال مرورگر استفاده از صفحه دایناسور. به نماینده خود URL صفحه و نقطه پایان اشکال زدایی محلی خود را بدهید ، سپس دستور بالا را کپی کنید.

کد سرعت بازرسی شده · Chromium نویسندگان * مجوز bsd

مثال 02 * ماشین حساب Windows

دکمهٔ % ماشین‌حساب را بازسازی کنید.

دکمهٔ % پس از + و × رفتار متفاوتی دارد. هر دو قاعده را پیدا کنیم و در یک ماشین‌حساب کوچک امتحان کنیم.

1. دربارهٔ دکمهٔ % بپرسید

نمونهٔ پرسش · ماشین‌حساب

از REA برای بازرسی دکمه % ماشین حساب Windows استفاده کنید. قوانین را پس از + و × بازیابی کنید ، سپس یک ماشین حساب کوچک بسازید که از هر دو استفاده کند.

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.

خلاصه قابل خواندن از % handler
if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

از برنامه نصب شده به یک دکمه کار %

  1. 01 * REA می خواند calc.exeبرنامه ماشین حساب را راه اندازی می کندکد باز می شود ms-calculator:. سپس نماینده کتابخانه برنامه نصب شده را انتخاب می کند.
  2. 02 * REA کتابخانه را می خواندکد % handler را برگردانیدعملکرد اپراتور را بررسی می کند و از ثابت استفاده می کند 100.
  3. 03 · نماینده شما آن را تفسیر می کندقوانین را توضیح دهید و بازتولید کنیدشاخه را با منبع مایکروسافت بررسی کنید ، سپس + و × بالا را امتحان کنید.
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

بازرسی با REA 4.1.0: Windows ماشین حساب 11.2508.4.0, x64. خلاصه قابل خواندن از نام های منبع عمومی مایکروسافت برای توضیح شاخه بازیابی شده استفاده می کند.

درصد پیاده سازی · موارد تست مایکروسافت · راهنمای راه اندازی بومی

مطالعات موردی REA.

یک قابلیت از برنامه یا بازی منتشرشده را همراه با کد و نتایج بررسی‌شده ببینید.

ویترین ها →

Android * تجزیه و تحلیل APK

چگونه یک احراز هویت یک کد ورود را تولید می کند

کد ورود شش‌رقمی Aegis را در APK منتشرشده دنبال کنید، سپس ساعت نمایشی را جابه‌جا کنید تا ببینید چرا کد هر 30 ثانیه تغییر می‌کند.

مطالعه موردی اندروید را بخوانید

Electron * ردیابی ویژگی

چگونه Notion متن و HTML را کپی می کند

JavaScript بسته‌بندی‌شدهٔ Notion را تا کلیپ‌بورد سیستم دنبال کنید و ببینید کپی چگونه داده‌های غنی بلوک‌ها را حفظ می‌کند.

مطالعه موردی Notion را بخوانید

بومی * بازسازی

محاسبه DX-Ball از سمت چپ / راست موقعیت صدا

بازسازی کنید که موقعیت توپ در یک بازی Windows محصول 1996 چگونه به صدای چپ یا راست تبدیل می‌شود.

مطالعه موردی DX-Ball را بخوانید

اولین تحقیق شما

REA را در یک برنامه کوچک امتحان کنید.

نمونه یادداشت های ما را دانلود کنید ، صادرات CSV آن را ردیابی کنید و یک ورودی تغییر یافته را بررسی کنید.

مثال هدایت شده را امتحان کنید

هدف خود را انتخاب کنید.

این راهنماها راه‌اندازی و نخستین بررسی هر نوع نرم‌افزار را توضیح می‌دهند.

برنامه های کد ماشین

توابع ، رشته ها ، مرجع ها و روابط فراخوان تابع را در فایل های اجرایی و کتابخانه ها بازرسی کنید.

تجزیه و تحلیل برنامه های کد ماشین راهنما

JavaScript و Electron

ماژول های نقشه ، مسیرها ، IPC و وابستگی های بومی از یک پوشه برنامه یا آرشیو ASAR.

گردش کار برنامه

مرورگر و فعالیت زمان اجرا

ضبط مرورگر انتخاب شده یا فعالیت فرآیند ، سپس مقایسه نتایج در سراسر اجرا می شود.

راهنمای مشاهده مرورگر
یک پروژهٔ بزرگ‌تر را امتحان کنید
مثال prompt * وب سایت

برای بازرسی از REA استفاده کنید https://rea.tools/. این وب سایت را برای من کلان کنید.

بله این یکی

مثال سریع * بازسازی بازی

از REA برای بازسازی این بازی از فایل اجرایی آن استفاده کنید. بازیابی منطق گیم پلی در C و تست آن در برابر اصلی.

مطالعه موردی DX-Ball را ببینید →

سؤالی دارید؟

بالا