REA: مهندسی معکوس نرمافزار با کمک ایجنت کدنویسی
خلاصهٔ کاملتر
REA ابزاریه که به ایجنت کدنویسیت (مثل Claude Code یا Codex) ابزارهای reverse engineering (یعنی فهمیدن کار یه نرمافزار با بررسی خود برنامه، نه سورسش) رو میده. نصبش با دستور npx rea-agents@latest setup انجام میشه و بعدش ایجنت میتونه فایلهای اجرایی، اپهای JavaScript و Electron، و رفتار مرورگر یا پروسهها رو بررسی کنه.
اولین مثالی که تو سایت اومده، بازی دایناسور کرومه. سؤال اینه که چرا دایناسور کمکم سریعتر میشه. REA از طریق اتصال debugging مرورگر، فایل index.js که واقعاً تو صفحه لود شده رو برمیگردونه و ایجنت قانون سرعت رو پیدا میکنه: سرعت از ۶ شروع میشه، تو هر update بدون برخورد ۰.۰۰۱ اضافه میشه و روی ۱۳ متوقف میشه.
if (this.currentSpeed < this.config.MAX_SPEED) {
this.currentSpeed += this.config.ACCELERATION;
}تیم REA این قانون رو تو یه مرورگر کنترلشده تست کرده: بعد از ۴٬۰۰۰ update سرعت به ۱۰ و بعد از ۱۰٬۰۰۰ به ۱۳ رسیده. بعد ایجنت یه نسخهٔ کوچیک از بازی ساخته که سرعتش قابل تنظیمه.
مثال دوم ماشینحساب ویندوزه: چرا «200 + 10%» میشه ۲۲۰؟ REA دستورهای اسمبلی اپ نصبشده رو بررسی کرده و معلوم شده دکمهٔ % دو تا شاخه داره. بعد از ضرب و تقسیم فقط عدد رو تقسیم بر ۱۰۰ میکنه، ولی بعد از جمع و تفریق اونو در عدد اول هم ضرب میکنه. یعنی ۱۰٪ از ۲۰۰ میشه ۲۰ و جواب نهایی ۲۲۰ هست.
if (operation == multiply || operation == divide) {
percent = current / 100;
} else {
percent = current * previous / 100;
}این خلاصهٔ خوانا رو تیم REA با اسمهای سورس عمومی مایکروسافت نوشته تا شاخهٔ بازیابیشده رو توضیح بده. به گفتهٔ سازندهها، با REA میشه از کلون کردن یه سایت تا بازسازی منطق یه بازی از روی فایل اجراییش (مثل مطالعهٔ موردی DX-Ball) کار کرد.
نکات کلیدی:
- REA با npx rea-agents@latest setup به ایجنت کدنویسی وصل میشه.
- سه نوع هدف رو پوشش میده: باینریهای native، اپهای JavaScript و Electron (حتی آرشیو ASAR)، و فعالیت مرورگر و پروسه.
- تو بازی دایناسور، سرعت از ۶ شروع میشه، هر update ۰.۰۰۱ زیاد میشه و سقفش ۱۳ هست.
- دکمهٔ % ماشینحساب ویندوز (نسخهٔ 11.2508.4.0) بعد از + و × دو قانون متفاوت داره.
- مثال ماشینحساب با REA نسخهٔ 4.1.0 بررسی شده.




