آخرین اخبار
همهٔ اخبار
امنیت هوش مصنوعی گزارش بحرانیت ۳/۱۰

ابزار REA؛ پل ارتباطی بین مدل‌های هوش مصنوعی و ابزارهای مهندسی معکوس مانند Ghidra و IDA Pro

ابزار REA؛ پل ارتباطی بین مدل‌های هوش مصنوعی و ابزارهای مهندسی معکوس مانند Ghidra و IDA Pro

پروژه متن‌باز REA (مخفف Reverse Engineer Anything)، ابزارهای تحلیل نرم‌افزاری را که بدون نیاز به سورس‌کد (Source Code) عمل می‌کنند، به ایجنت‌های برنامه‌نویسی مبتنی بر هوش مصنوعی مانند Claude Code و Cursor متصل می‌کند.

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

این پروژه با ادغام ابزارهایی نظیر Ghidra، IDA Pro و Hopper در یک جریان کاری مدیریت‌شده توسط ایجنت (Agent-driven workflow)، به پژوهشگران کمک می‌کند تا رفتار برنامه‌ها را ردیابی کرده و یافته‌های خود را با شواهد فنی مستند کنند. REA به جای جایگزینی دیس‌اسمبلرها (Disassemblers)، به عنوان یک پل ارتباطی عمل می‌کند تا تحلیل‌گر بتواند از قدرت استدلال مدل‌های زبانی برای تفسیر کدهای پیچیده استفاده کند.

قابلیت‌ها و محدوده تحلیل

دامنه عملکرد REA فراتر از فایل‌های باینری (Binaries) است و موارد زیر را پوشش می‌دهد:

  • فایل‌های JavaScript و اپلیکیشن‌های Electron
  • اسمبلی‌های .NET و پکیج‌های Android
  • سفت‌افزارها (Firmware) و وب‌سایت‌ها
  • برخی از فعالیت‌های زمان اجرا (Runtime Activity)

مکانیزم عملکرد بر پایه MCP

این ابزار از Model Context Protocol (MCP) برای اجازه دادن به ایجنت‌ها جهت ارسال درخواست‌های تحلیل از طریق یک سرور محلی استفاده می‌کند. در این فرآیند، ایجنت از ابزار تحلیل می‌خواهد تا هدف مورد نظر را بررسی کند، کدهای مرتبط را دنبال نماید و در نهایت نتایج را همراه با شواهد و محدودیت‌های احتمالی دریافت کند. سپس مدل می‌تواند بر اساس این یافته‌ها، سوالات تکمیلی بپرسد یا یک پیاده‌سازی (Implementation) برای تست بنویسد.

برای فایل‌های باینری، REA خروجی‌هایی شامل Pseudocode، دستورات اسمبلی، رشته‌ها (Strings)، نمادها (Symbols) و فراخوانی‌های توابع را بازمی‌گرداند که به پژوهشگران کمک می‌کند ویژگی‌های ظاهری نرم‌افزار را به کد پشت‌پرده متصل کنند.

ملاحظات امنیتی و حریم خصوصی

اگرچه REA تحلیل‌ها را به صورت محلی (Locally) انجام می‌دهد، اما نتایج این تحلیل‌ها به ایجنت ارسال می‌شود. بنابراین، این داده‌ها مشمول سیاست‌های حریم خصوصی ارائه‌دهنده مدل (Model Provider) هستند و لزوماً تمام یافته‌ها روی سیستم محلی باقی نمی‌مانند.

همچنین، در حالی که تحلیل‌های استاتیک JavaScript و .NET بدون اجرای برنامه انجام می‌شوند، قابلیت Runtime Capture مستلزم اجرای هدف با دسترسی‌های کاربر است. به همین دلیل، توصیه می‌شود پژوهشگرانی که با بدافزارها یا نرم‌افزارهای مشکوک سر و کار دارند، پیش از شروع بررسی، تفاوت این دو حالت را درک کرده و تدابیر امنیتی لازم را اتخاذ کنند.