تصور کنید سالها آموزش سخت در زمینه زبان اسمبلی و ابزارهای پیچیده، حالا در یک دستور سادهی npm خلاصه شده است. اگر توسعهدهندهای هستید که امنیت کد خود را به «پنهان بودن» تکیه داده، باید بدانید که این دیوار دفاعی همین حالا فرو ریخته است.
طبق گزارش Decrypt، پروژه REA (Reverse Engineer Anything) در بازه ۶ تا ۱۵ اکتبر ۲۰۲۶، جهشی خیرهکننده از ۱۰ هزار به بیش از ۲۴۸ هزار ستاره در گیتهاب داشت. این رشد سریع شامل یک جهش تکروزه با ۳۰ هزار ستاره بود و با انتشار ۸ بهروزرسانی در بازه ۳ تا ۱۱ اکتبر همراه شد. این اتفاق باعث شد ادعاهایی مانند «پایان عصر نرمافزارهای بسته» توسط چهرههایی مثل Matthew Berman، که میلیونها دنبالکننده دارد، مطرح شود. او پیشنهاد کرد که توانایی تحلیل خودکار باینریها، نرمافزارهای Closed-source را منسوخ میکند. اما واقعیت فنی متفاوت و ظریفتر است: REA یک دکامپایلر جدید نیست، بلکه یک لایه ارکستراسیون پیشرفته است. این پروژه یک سرور پروتکل زمینهٔ مدل (MCP) و ابزار CLI با مجوز MIT است. این معماری در واقع همان چارچوبی است که عاملهای هوش مصنوعی را به ابزارهای مهندسی معکوس متصل میکند تا تحلیل باینریها را تسهیل کند.

برای دههها، مهندسی معکوس (Reverse Engineering) یک قلعهی تخصصی و یک مانع مهارتی بود که تسلط سالیانهای بر زبان اسمبلی و ابزارهای پیچیدهای مثل Ghidra، Hopper و IDA Pro را میطلبید. REA با پیادهسازی پروتکل MCP، این نیاز به مهارتهای تخصصی را حذف میکند و به عامل (Agent)های هوشمندی مانند Claude Code، Cursor، Gemini CLI و Codex اجازه میدهد مستقیماً با این ابزارهای حرفهای تعامل کنند. در این چرخه، عامل میپرسد یک ویژگی خاص چگونه کار میکند و REA کدهای شبهکد (Pseudocode)، ردپای اجرا (Execution Traces) و سوابق ساختاریافتهی شواهد را به او تحویل میدهد.
همانطور که در بحثهای گذشتهی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، دسترسی ابزارهای هوشمند به محیط سیستم کاربر، مرز بین تحلیل و بهرهبرداری را کمرنگ میکند.

سازوکار ارکستراسیون در REA
به نقل از مستندات پروژه، REA به عنوان لایهای عمل میکند که درخواستهای عامل را به دستورات ابزارهای تخصصی ترجمه میکند. در README پروژه ذکر شده است: «یک MCP برای مهندسی معکوس در تمامی باینریها، اپلیکیشنها و رفتارهای زمان اجرا». این ابزار تحلیل استاتیک جدیدی معرفی نمیکند، بلکه وظایف سنگین را به موتورهای تثبیتشده میسپارد:
- باینریهای بومی (Native Binaries): وظایف را به Hopper, Ghidra یا IDA برای استخراج شبهکد، اسمبلی، نمادها (Symbols) و گرافهای فراخوانی میسپارد.
- جاوااسکریپت و Electron: ماژولها، مسیرهای IPC و افزونههای بومی را بدون نیاز به اجرای برنامه تجزیه (Parse) میکند.
- برنامههای اندروید (APK): با ابزارهای JADX و Apktool ادغام شده است.
- وبسایتها: از پروتکل Chrome DevTools برای مشاهده رفتار برنامه در زمان اجرا استفاده میکند.
- سایر فرمتها: پشتیبانی از اسمبلیهای .NET (بررسی استاتیک بایتکد IL)، WASM، بایتکد EVM، پایگاهدادههای SQLite و کپچرهای شبکه (Packet Captures).
پیادهسازی فنی و استقرار
راهاندازی این سیستم با یک دستور ساده npx rea-agents setup انجام میشود. این نصبکننده شناسایی میکند که کاربر چه عاملهایی را نصب دارد، REA را به عنوان یک سرور MCP ثبت میکند و دسترسی ساختاریافته به تمام موتورهای تحلیلی نصب شده روی ماشین کاربر را به عامل میدهد.
در این معماری، عامل هوشمند نقش «مغز» و سرور MCP نقش «دستها» را ایفا میکند تا به فایلسیستم محلی و ابزارهای تحلیل باینری دسترسی داشته باشد. لیست فرمتهای پشتیبانی شده با هر نسخه در حال گسترش است تا به یک جعبهابزار جامع برای هر نوع آرتیفکت کامپایل شده یا باندل شده تبدیل شود.

سیستم Evidence v2 برای مقابله با توهم
برای جلوگیری از توهم (Hallucination) مدلهای زبانی، REA از سیستمی به نام «Evidence v2» استفاده میکند. این یک ویژگی ظاهری نیست، بلکه همان چیزی است که یک ابزار مفید را از یک تولیدکننده توهم جدا میکند. هر یافتهای که به عامل بازگردانده میشود، شامل سه بخش است:
۱. تأمینکننده (The Provider): ابزار دقیقی که داده را تولید کرده است.
۲. سطح اطمینان (Confidence Level): معیاری برای سنجش قابلیت اعتماد یافته.
۳. محدودیتها (Limitations): بیانی صریح از آنچه دادهها پوشش نمیدهند.
این رویکرد تضمین میکند که اگر عاملی ادعا کند تابعی از فرمول خاصی استفاده میکند، این ادعا با یک فایل دقیق، شماره خط و خروجی دیساسمبلی پشتیبانی شود. REA به طور صریح استنتاج استاتیک را از مشاهده زمان اجرا جدا میکند و دادههای ناقص را به جای حدس زدن، به عنوان «ناقص» گزارش میدهد. اولویت این سیستم، «شواهد» است نه «ادعاها».
شکاف بین هایپ و واقعیت
برخلاف ادعاهای ویروسی، تستهای مستقل نشان میدهند که این ابزار یک موتور «کلون تککلیکی» نیست. در README پروژه صراحتاً ذکر شده: «REA ادعا نمیکند که کد منبع اصلی را بازیابی میکند یا به طور خودکار یک اپلیکیشن را کلون میکند». این ابزار شبهکد و گرافهای ماژول تولید میکند، نه یک موتور بازتولید کامل.
ادعاهای مربوط به برابری کامل عملکرد اغلب اغراقآمیز هستند. Brandon Thomas از Claude Opus 5.5 برای ساخت ArtCraft (مجموعهای از اپلیکیشنهای متنباز مشابه Adobe Creative Cloud) استفاده کرد. در حالی که او ابتدا وعده داد ظرف یک ماه به برابری ویژگیها برسد، بعدها این زمان را به «۹۹٪ در کمتر از یک سال» تغییر داد. پوشش فعلی، برابری واقعی را تنها ۲۵ تا ۳۵ درصد تخمین میزند و یک هنرمند پیکسل، کلون فتوشاپ او را «کاملاً غیرقابل استفاده» توصیف کرد. نکته حیاتی این است که توماس تصریح کرد ArtCraft یک بازپیادهسازی Clean-room بر اساس مستندات عمومی بود، نه محصولی حاصل از REA.
همچنین بررسیهای MindStudio نشان داد که در بازسازی اپلیکیشن Preview مک، یک عامل معمولی (Vanilla Agent) که فقط از اسکرینشاتها و استدلال کلی استفاده میکرد، سریعتر از عاملی که از REA بهره میبرد، نتیجه گرفت. MindStudio اشاره کرد که REA تفاوت چشمگیری با یک عامل معمولی در استدلال کلی ندارد.

تحلیل دقیق صحت و نقاط کور
یافتههای بحرانیتر از سوی SystemDesign Academy منتشر شد. آنها نسخه ۶.۴.۰ را روی یک اپلیکیشن Electron متنباز که کد منبعش شناخته شده بود، تست کردند. در حالی که REA در یافتن مکان فایلها (۳۰ از ۳۰) دقیق بود و حتی یک کانال IPC مستعار را پیدا کرد که جستجوی متنی آن را گم کرده بود (۱۸ از ۱۷)، اما دچار شکافهای پوششی خطرناکی شد:
- مکانهای پاسخ (Reply-back): ۰ از ۸ مورد پیدا شد. REA تمام مواردی که اپلیکیشن پاسخی به پنجره میفرستد را نادیده گرفت.
- پنجرههای شناسایی شده: ۱ از ۸ مورد پیدا شد. اپلیکیشن ۸ پنجره ایجاد میکند اما REA فقط یکی را یافت.
- تنظیمات امنیتی: ۰ از ۴ تنظیم
nodeIntegrationپیدا شد. این یک پیکربندی حساس امنیتی است که REA بدون هیچ هشداری از کنار آن گذشت.
این نتایج نشان میدهد که اگرچه REA دقیق است، اما «سکوت» آن خطرناک است. یک عامل ممکن است تصور کند که استانداردهای امنیتی رعایت شدهاند، صرفاً به این دلیل که REA نتوانسته آسیبپذیری را گزارش کند. همانطور که SystemDesign Academy بیان کرد: «عدم یافتن شواهد، به معنای نبودِ مورد نیست».
احساسات جامعه و تردیدها
یک رشته بحث در Hacker News با ۸۰۵ امتیاز و ۳۳۷ نظر، روایت پیچیدهتری را فاش کرد. مهندسان معکوس باسابقه این سوال را مطرح کردند که این ابزار چه برتری نسبت به دستور دادن ساده به Claude برای نصب Ghidra دارد. برخی دیگر اشاره کردند که ابزارهایی مثل radare2، Binary Ninja و IDA Pro پیش از این ادغامهای MCP خود را داشتهاند. در عین حال، International Cyber Digest فضای X را اینگونه توصیف کرد: «در حال حاضر شماره یک ترند گیتهاب: Reverse Engineer Anything. نرمافزار مُرد، زنده باد نرمافزار!»
حفظ نرمافزار و تعاملپذیری
این ابزار در حوزه حفظ نرمافزارهای قدیمی (Software Preservation) جایگاه ویژهای یافته است. کاربران از Codex برای بازسازی بازیهای رها شده MS-DOS از روی فایلهای داده، بازیهای قدیمی موتورولا MC68010 و بازگرداندن Xara Xtreme برای لینوکس بحث میکنند. این نشان میدهد ارزش اصلی REA نه در کلون کردن رقبا، بلکه در بازیابی منطقهای گمشده و تضمین تعاملپذیری برای سیستمهای قدیمی است.
ریسکهای امنیتی و جعل
محبوبیت این ابزار ریسکهای جدی به همراه دارد. README پروژه درباره مخازن مشابه و جعلی هشدار میدهد. در عرض چند روز پس از ترند شدن، حداقل یک نسخه کپیبرداری شده ظاهر شد تا کاربران را به دانلود بدافزار ترغیب کند. کاربران شدیداً توصیه شدهاند که تنها از بسته رسمی rea-agents در npm یا مخزن morluto/rea در گیتهاب استفاده کنند.
علاوه بر این، برخی مدلهای پیشرو (Frontier Models) به دلیل سیاستهای ایمنی، درخواستهای مهندسی معکوس را رد میکنند. این موضوع تضادی بین تواناییهای فنی ابزار و گاردریلهای اخلاقی یا امنیتی ارائهدهندگان مدل ایجاد کرده است.
نقاط قوت واقعی REA
جایگاه درخشان REA در وظایف محدود و قابل تایید است. در یک مطالعه موردی، این ابزار منطقی را که موقعیت افقی یک آجر را به صدای پان چپ-راست در یک بازی سال ۲۰۰۰ (DX-Ball) تبدیل میکرد، بازیابی کرد. تابع C بازسازی شده در برابر کد x86 اصلی در ۳,۲۰۵ مورد تست تایید شد. تحت یک تولچین VC4.0 پین شده، خروجی کامپایل شده برای تمام ۶۳ بایت، دقیقاً یک-به-یک مطابقت داشت. این پروژه در مجموع ۵۵ تابع C و ۴۵,۳۸۰ مقایسه را نگه میدارد.
موفقیت دیگر در ردیابی مسیر کلیپبورد در Notion Desktop 7.6.1 بود. REA زنجیره را از طریق موارد زیر ردیابی کرد:
- رپِر
clipboard.write ipcRenderer.invoke- گیرنده
ipcMain.handle - API کلیپبورد Electron
این ابزار کانال notion:clipboard:write و تاییدیه فرستندهای را که دسترسی را به محتویات وب Notion محدود میکرد، شناسایی کرد و یک کامنت مخفی مرتبط با دادههای بلوک محلی تحت یک MIME type سفارشی را یافت. همچنین محاسبات زاویه ثابت و هدفگیری برای یک الگوی حلقه گلوله در یک بازی ۱۶ بیتی DOS را با استفاده از Ghidra بازیابی کرد که سپس برای مقایسه تاریخی در C++ بازسازی شد.
مدل تهدید جدید برای اپراتورها
زمان ظهور REA برای متخصصان امنیت نگرانکننده است. Startup Fortune این عرضه را به حادثه ARTEX مرتبط دانست؛ ابزار پنترستینگ عاملی که با نفوذ به ۷ بانک کره جنوبی در اواخر سپتامبر و اوایل اکتبر مرتبط بود و حدود ۶۸,۰۰۰ نفر را تحت تاثیر قرار داد. اگرچه توسعهدهنده ARTEX پروژه را در ۸ اکتبر حذف کرد، اما فورکهای آن همچنان موجود است.
در حالی که REA برای شناسایی (Reconnaissance) و ARTEX برای بهرهبرداری (Exploitation) است، این دو یک گردش کار مکمل را تشکیل میدهند. دفاع از طریق «پنهانسازی در کامپایل» اکنون منسوخ شده است. تحلیلهای Mayhemcode نشان میدهد که محصولات با تکیه بر سرور، ۷۰٪ مزیت ایمنی دارند؛ زیرا اگر منطق ارزشمند روی سرور شما باشد، عامل فقط رابط کاربری و فراخوانیهای API را میبیند. اما برای اپلیکیشنهای دسکتاپ، موبایل و افزونههای مرورگر، قلعه دفاعی جابجا شده است.
توصیههای استراتژیک
برای تیمهایی که نرمافزارهای سمت کلاینت عرضه میکنند، استراتژی تغییر کرده است:
۱. ممیزی داخلی: آخرین باینریهای خود را با REA بررسی کنید تا ببینید یک مهاجم باانگیزه چه چیزهایی را میبیند. از ابزارهای سنتی برای پر کردن شکافهای پوششی که REA ممکن است از دست بدهد، استفاده کنید.
۲. مهاجرت به سمت سرور: الگوریتمهای قیمتگذاری، منطقهای توصیه و تبدیلات اختصاصی را به سرور منتقل کنید. منطقی که در باینری است، اکنون عملاً عمومی است.
۳. بهروزرسانی مدل تهدید: فرض کنید مهندسی معکوس دیگر نیازی به تخصص ویژه یا زمان زیاد ندارد. نیاز از «سالها آموزش» به «یک دستور npx» تغییر یافته است.
۴. رصد اکوسیستم MCP: ابزار REA تنها یکی از بسیاری است. ادغامهای GhidraMCP، radare2-mcp و IDA Pro فعال هستند. تعداد ابزارها در حال رشد است و گزارشهایی از ۴۲ تا ۷۰ ابزار MCP بسته به نسخه وجود دارد.
۵. نادیده گرفتن روایت «پایان نرمافزار»: این ادعا که AI تمام نرمافزارها را کلون خواهد کرد، توسط شواهد پشتیبانی نمیشود. دفاعپذیری همچنان بر توزیع، دادهها و روابط متکی است.
دیدگاه مخالف
شاید این پانیک بیش از حد باشد. REA ابزارهایی را بستهبندی میکند که دههها وجود داشتهاند: Ghidra از ۲۰۱۹، Hopper از ۲۰۰۹ و IDA Pro از دهه ۹۰. این ابزار یادگیری مهارت را آسانتر میکند، اما چیزی را که از نظر فنی غیرممکن بود، ممکن نمیسازد. یک تحلیل مالی چینی به نویسنده کتاب درسی مهندسی معکوس اشاره کرد که هایپ فعلی را نقد کرده و به ابزارهای مشابه موجود اشاره نموده است.
تعداد ستارهها نیز ممکن است بازتاب «ستارههای گذرا» از ترندهای ویروسی باشد تا کاربران فعال. اگر یک عامل کدنویسی بتواند از روی اسکرینشاتها درباره نرمافزار استدلال کند، ارزش افزوده REA ممکن است محدود به سوابق ساختاریافتهای باشد که ارائه میدهد. با این حال، اتکای بیش از حد به این ابزارها میتواند هزینههای پنهانی داشته باشد؛ چنانکه برخی گزارشها نشان میدهند مهندسان زمان زیادی را صرف اصلاح کدهای تولید شده توسط هوش مصنوعی میکنند که این موضوع «مالیات عیبیابی» نامیده شده است.
چشمانداز آینده و فضای قانونی
نقشه راه REA به اپلیکیشنهای بستهبندی شده، باندلهای جاوااسکریپت، APIها، پروتکلها، آرتیفکتهای موبایل، فریمورها و تحلیل تفاوت رفتار زمان اجرا بین نسخهها گسترش مییابد. با این حال، فضای قانونی همچنان نامشخص است. هیچ دادگاهی هنوز درباره مهندسی معکوس با کمک عامل (Agent-assisted) حکم نداده است. اگرچه استثنائات بخش ۱۲۰۱ DMCA برای تعاملپذیری و تحقیقات امنیتی پوششی ایجاد میکند، اما مرز بین «درک برای تعاملپذیری» و «کلون کردن محصول رقیب» همچنان مبهم است.
در نهایت، REA نرمافزار را «تمام» نمیکند، بلکه یک دفاع خاص — یعنی پنهانسازی از طریق کامپایل — را سریعتر از حد انتظار منسوخ میکند. مثلث مرگبار امنیتی عاملها (دسترسی نامحدود به ابزار، سندباکسینگ ناکافی و اعتماد بیش از حد به خروجیهای عامل) اکنون برای مهندسی معکوس به واقعیت تبدیل شده است. برای هر چیز دیگر، اصول بنیادین همچنان پابرجاست: سریع عرضه کنید، قابل اعتماد باشید، مالک دادههای خود باشید و روابطی بسازید که رقبای شما نتوانند با یک دستور npm کپی کنند.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.




گفتگو