مهندسی معکوس ، با عامل برنامه نویسی شما
بفهمید نرمافزار
چطور کار میکند.
REA ابزارهایی در اختیار دستیار برنامهنویسی شما میگذارد تا برنامه را بررسی کند و رفتار آن را توضیح دهد.
در حال حاضر می دانم دوباره? به راهنماهای تجزیه و تحلیل بروید →
میخوای عمیق تر بری ؟ وبلاگ را بخوانید →
راه اندازی REA
این درخواست را در دستیار برنامهنویسی خود وارد کنید:
REA را با npx rea-agents@latest setup نصب کن و به این دستیار برنامهنویسی متصل کن. ابتدا برنامهٔ تغییرات را نشان بده و منتظر تأیید من بمان. سپس نصب را بررسی کن.
یا این دستور را در ترمینال اجرا کنید:
npx rea-agents@latest setup
برنامهٔ تغییرات را بررسی و تأیید کنید، سپس دستیار را دوباره راهاندازی کنید.
اولین بار یا گمشده Node.js یا یک عامل برنامه نویسی ؟ راهنمای راه اندازی گام به گام را دنبال کنید →
مهندسی معکوس چیست؟
فهمیدن شیوهٔ کار نرمافزار از راه بررسی خود برنامه.
هدف: درک یک ویژگی به اندازه کافی خوب برای توضیح دهید, تغییرش بده یا دوباره بسازش
مثلاً: چرا ماشینحساب برای 200 + 10% عدد 220 را میدهد؟
پیش از REA · خودتان بررسی میکنید
اصلی 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 · از دستیارتان میپرسید
فقط یک درخواست.
از دستیار با زبان ساده سؤال کنید.
استفاده کنید REA برای بازرسی Windows ماشین حساب. چرا 200 + 10% 220 می دهند؟
بعد از + ، دکمه % طول می کشد درصد از عدد اول
10% of 200 = 20200 + 20 = 220
- REA چه چیزی فراهم میکند
- دستورالعمل های کنترل کننده ، کد و تماس های کامپایل شده.
- دستیار چه چیزی توضیح میدهد
- کدام شاخه اعمال می شود ، چه چیزی محاسبه می شود و چگونه آن را بازسازی کنیم.
بیایید دو مثال را امتحان کنیم. سرعت بازی را تغییر دهید ، سپس به ماشین حساب برگردید و دکمه % آن را بازسازی کنید.
مثال 01 * بازی دایناسور Chrome
چرا دایناسور سریعتر میشود؟
- هدف
- بازی را با سرعت قابل تنظیم
- چرا مهندسی معکوس it ؟
- برای بازتولید شتاب آن ، ما نیاز داریم قانون در بازی در حال اجرا: چقدر سریع شروع می شود ، چقدر افزایش می یابد و چه زمانی متوقف می شود.
نسخهٔ بازسازیشده را بازی کنید
قانون اصلی: از 6 شروع کنید ، سپس به سمت 13 افزایش دهید.
REA چه نتیجهای برگرداند
اسکریپت در واقع در صفحه اجرا می شود. عامل عملکرد به روز رسانی و تنظیمات سرعت خود را می خواند ، سپس از این قانون در یک بازی جدید استفاده می کند.
برای بازرسی این بازی دایناسور از REA استفاده کنید. چرا سریع تر می شود ؟ قانون سرعت را نشان دهید ، سپس یک نسخه کوچک با سرعت قابل تنظیم بسازید.
هدف بازرسی شده: نسخه مرورگر مشتق شده از Chromium wayou.
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}
از 6 شروع کن اضافه کردن 0.001 هر به روز رسانی بدون برخورد ، در حالی که سرعت زیر است 13.
آزمایشگاه سرعت را باز کنید →کاری که هر قسمت انجام میده
- 01 * REA اسکریپت بازی در حال اجرا را بخوانیدکد و تنظیمات واقعی خود را به عامل برگردانید.
- 02 * نماینده شماقانون رو دوباره بساز ، کنترل رو اضافه کناز شتاب بازیابی شده در یک بازی کوچک با کشویی سرعت استفاده کنید.
- 03 * شماتغییر سرعت و بازیشتاب اصلی را امتحان کنید ، سپس سرعت خود را انتخاب کنید.
اسکریپت ، چک ها و نحوه امتحان کردن تحلیل را ببینید
REA نسخه مرورگر HTTP را از طریق یک اتصال اشکال زدایی محلی بازرسی کرد و نسخه بارگذاری شده را بازگرداند index.js، از جمله منبع و هضم آن.
ACCELERATION: 0.001,
MAX_SPEED: 13,
SPEED: 6
ما عملکرد به روز رسانی بازی اصلی را در یک بررسی مرورگر کنترل شده ، با موانع و برنامه ریزی خودکار غیرفعال نامیدیم. پس از 4000 به روز رسانی ، سرعت 10.0 بود ؛ پس از 10000 ، 13.0 بود ، به یک اعشاری گرد شده بود.
مینی بازی جدید این قانون سرعت را حفظ می کند. کد نقاشی ، پریدن و برخورد آن یک پیاده سازی آموزشی کوچک است. آزمایشگاه را باز کنید برای دیدن کد جدید و اجرای همان بررسی سرعت.
برای بازرسی هدف خود ، مراحل اتصال مرورگر استفاده از صفحه دایناسور. به نماینده خود URL صفحه و نقطه پایان اشکال زدایی محلی خود را بدهید ، سپس دستور بالا را کپی کنید.
مثال 02 * ماشین حساب Windows
دکمهٔ % ماشینحساب را بازسازی کنید.
دیدیم چرا 200 + 10% می دهد 220. حالا بیایید قوانین هر دو + و × را بازیابی کنیم و آنها را امتحان کنیم.
- هدف
- یک ماشین حساب کوچک بسازید که هر دو + و × به درستی.
- چرا مهندسی معکوس it ؟
- همان دکمه استفاده می کند قوانین مختلف بعد از + و ×. ما برنامه نصب شده را بررسی می کنیم تا دریابیم درصد به کدام شماره اعمال می شود.
محاسبه را امتحان کنید
10 درصد از 200 = 20 سپس 200 + 20 = 220.
REA چه نتیجهای برگرداند
یک شاخه به 100 تقسیم می شود. دیگری نیز در عدد اول ضرب می شود. عامل از هر دو برای بازسازی دکمه % استفاده می کند.
برای این مثال, previous = 200 و current = 10.
از REA برای بازرسی دکمه % ماشین حساب Windows استفاده کنید. قوانین را پس از + و × بازیابی کنید ، سپس یک ماشین حساب کوچک بسازید که از هر دو استفاده کند.
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 کتابخانه را می خواندکد % handler را برگردانیدعملکرد اپراتور را بررسی می کند و از ثابت استفاده می کند
100. - 03 · نماینده شما آن را تفسیر می کندقوانین را توضیح دهید و بازتولید کنیدشاخه را با منبع مایکروسافت بررسی کنید ، سپس + و × بالا را امتحان کنید.
کد واقعی و نحوه بررسی پاسخ را ببینید
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 را در یک برنامه کوچک امتحان کنید.
نمونه یادداشت های ما را دانلود کنید ، صادرات CSV آن را ردیابی کنید و یک ورودی تغییر یافته را بررسی کنید.
میخواهید بیشتر بدانید؟
به نماینده خود بگویید که چه چیزی می خواهید درک کنید یا بسازید. با REA ، شما می توانید با هم کار بر روی هر چیزی از شبیه سازی این وب سایت به بازسازی یک بازی از فایل اجرایی آن.
برای بازرسی از REA استفاده کنید https://reverseengineeranything.app/. این وب سایت را برای من کلان کنید.
بله این یکی
از REA برای بازسازی این بازی از فایل اجرایی آن استفاده کنید. بازیابی منطق گیم پلی در C و تست آن در برابر اصلی.
برای مراحل راه اندازی و تجزیه و تحلیل ، هدف خود را انتخاب کنید:
برنامه های کد ماشین
توابع ، رشته ها ، مرجع ها و روابط فراخوان تابع را در فایل های اجرایی و کتابخانه ها بازرسی کنید.
تجزیه و تحلیل برنامه های کد ماشین راهنماJavaScript و Electron
ماژول های نقشه ، مسیرها ، IPC و وابستگی های بومی از یک پوشه برنامه یا آرشیو ASAR.
گردش کار برنامهمرورگر و فعالیت زمان اجرا
ضبط مرورگر انتخاب شده یا فعالیت فرآیند ، سپس مقایسه نتایج در سراسر اجرا می شود.
راهنمای مشاهده مرورگرسؤالی دارید؟
سوالات متداول را بخوانید, چت با ما در Discord یا یک شماره GitHub را باز کنید برای اشکالات و درخواست ویژگی.
به جامعه بپیوندید
تحقیقات را به اشتراک بگذارید و از سایر کاربران REA در Discord کمک بگیرید . برای به روز رسانی پروژه ، REA را در X دنبال کنید.