پرش به محتوای اصلی
پرش به محتوای مقاله

Kuna: ابزار مهندسی معکوس ساخته شده با LLM به دقت IDA Pro رسید

·۸ مرداد ۱۴۰۵۳ دقیقه مطالعه۱ بازدید
کونا: توسعه دیکامپایلر در عصر عامل‌های کدنویسی
کونا: توسعه دیکامپایلر در عصر عامل‌های کدنویسی
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

استفاده از یک «چرخه بهبود خودکار» برای جایگزینی سال‌ها تحقیق انسانی در حوزه دکامپایل؛ جایی که مدل به جای تقلید از کد، از شکست‌های ابزارهای رقیب برای ارتقای خود درس می‌گیرد.

تصور کنید یک دکامپایلر وجود داشته باشد که تقریباً هر خط از کد آن توسط یک مدل زبانی بزرگ (LLM) نوشته شده است. این دقیقاً همان اتفاقی است که در پروژه Kuna رخ داده است؛ ابزاری که توسط پژوهشگری توسعه یافت که در طول تابستان به عنوان پژوهشگر مهمان در آزمایشگاه تحقیقات نیروی هوایی آمریکا (AFRL) و پژوهشگر در شرکت Metalware فعالیت می‌کرد. این ابزار اکنون به نقطه عطفی در عملکرد دست یافته است که آن را در زمینه ساختاربندی جریان کنترل (Control Flow Structuring) برای برنامه‌های نوشته شده به زبان C، به رقیبی برای IDA Pro (9.2) تبدیل می‌کند.

این پیشرفت در حالی رخ می‌دهد که کل صنعت نرم‌افزار به سمت عامل‌های کدنویسی خودکار (Autonomous Coding Agents) حرکت می‌کند. این روند به خوبی در بررسی عامل‌های پیشروی کدنویسی هوش مصنوعی دیده می‌شود که اکنون در حال ارسال کدهای عملیاتی به محیط‌های تولیدی هستند. با تکیه بر تغییر مفهوم به سمت توسعه‌ی عامل‌محور — مشابه روشی که Agent Lab از Git Refs برای هماهنگی استفاده می‌کند — پروژه Kuna نشان‌دهنده گذاری استراتژیک از استفاده از هوش مصنوعی برای تولید تکه‌های کد (Snippets)، به استفاده از آن برای طراحی معماری یک ابزار علمی پیچیده.

زمینه پروژه

Kuna یک رویکرد آزمایشی برای توسعه ابزاری است که از نظر علمی جذاب باشد و بتواند به صورت خودکار بهتر شود. این پروژه یک اختراع کاملاً مستقل و از صفر نیست، بلکه در واقع پورت زبان Rust از ابزار Ghidra (متعلق به NSA) است که بازطراحی شده تا با خط لوله (Pipeline) دکامپایلر angr تطابق بیشتری داشته باشد.

توسعه‌دهنده این پروژه، تمام دوران PhD خود را به عنوان یکی از توسعه‌دهندگان اصلی angr گذرانده است. در حالی که Kuna یک آزمایش در زمینه بازخوردهای علمی سطح بالا است، دکامپایلر angr همچنان محیط اصلی برای توسعه الگوریتم‌های پیشرو باقی مانده است، زیرا دقیقاً برای همین هدف طراحی شده بود. هدف نهایی، ایجاد یک آینده هم‌زیستانه است که در آن angr زیربنای پژوهشی را فراهم کند و Kuna موفقیت این آزمایش خودکار را به اثبات برساند.

جزئیات فنی

Kuna از استراتژی «بهبود خودکار» (Autonomous Refinement) بهره می‌برد. در این روش، مدل زبانی بزرگ (LLM) نمونه‌هایی را مطالعه می‌کند که در آن‌ها عملکرد این ابزار نسبت به IDA Pro در معیارهای بنیادی — که تنها در چند سال اخیر ظهور کرده‌اند — ضعیف‌تر بوده است.

دستاوردهای فنی کلیدی این پروژه عبارتند از:

  • عملکرد در بنچمارک: Kuna در ۴۴.۴٪ از توابع به ساختاربندی کامل و بی‌نقص دست یافت، که فاصله بسیار اندکی با رکورد ۴۵.۷٪ مربوط به IDA Pro دارد.
  • بازنویسی قابلیت‌ها: مدل زبانی با موفقیت توانست بیش از ۲۰ ویژگی بنیادی دکامپایلر angr را مجدداً پیاده‌سازی کند. این ویژگی‌ها در اصل سال‌ها زمان برد تا توسط پژوهشگران انسانی و از طریق پیشرفت‌های علمی طراحی شوند.
  • یادگیری متقاطع: فرآیند بهبود، در واقع یک آزمایش گسترده شامل مطالعه هم‌زمان Ghidra و دکامپایلر angr بود تا مسائل دشوار از طریق روش آزمون و خطا حل شوند.

ابزار Kuna برای توسعه دی‌کامپایلر در عصر عامل‌های کدنویسی

این آزمایش نشان‌دهنده یک تغییر پارادایم در نحوه ساخت ابزارهای فنی است. به جای پیاده‌سازی دستی الگوریتم‌های پیشرو، Kuna ثابت می‌کند که بازخوردهای علمی سطح بالا — به ویژه معیارهای بنیادی جدید و ارزش‌های مهندسی معکوس که با نیازهای انسانی هم‌راستا هستند — می‌توانند یک هوش مصنوعی را هدایت کنند تا سال‌ها پژوهش انسانی را بازسازی کنند.

با این حال، این پروژه یک وابستگی حیاتی را برجسته می‌کند: هوش مصنوعی نمی‌تواند در خلاء «پژوهش خودکار» انجام دهد. توسعه‌دهنده اشاره کرد که این فرآیند نیازمند بصیرت انسانی در مورد بنچمارک‌های معنادار و ارزش‌های مهندسی معکوس بود تا بتواند حتی چرخه بهبود را آغاز کند. همین هدایت انسانی است که توضیح می‌دهد چرا تاکنون هیچ دکامپایلر دیگری چنین رویکردی را امتحان نکرده است.

علیرغم موفقیت در ساختاربندی، Kuna همچنان یک پروژه آزمایشی با شکاف‌های قابل توجه است. این پروژه در حال حاضر در چندین حوزه کلیدی نیاز به بهبود دارد:

  • بازیابی نوع (Type Recovery): ارتقای نحوه شناسایی و مدیریت انواع داده‌ها توسط ابزار.
  • بهینه سازی‌ها: اصلاح کارایی و کیفیت خروجی دکامپایل شده.
  • قابلیت کامپایل مجدد (Recompilability): اطمینان از اینکه خروجی می‌تواند با موفقیت دوباره به کد باینری کامپایل شود.
  • شناسایی متغیرها: بهبود فرآیند نام‌گذاری و ردیابی متغیرها در کد.

پژوهشگران و توسعه‌دهندگانی که علاقه‌مند به internals بهبود خودکار یا اهداف خاص این پروژه هستند، اکنون می‌توانند سورس‌کد Kuna را بررسی کنند تا ببینند بازخوردهای علمی چگونه به اصلاحات کد تبدیل می‌شوند.

چرا این موضوع مهم است؟

این پروژه اعتبار ادعای توانمندی LLMها در تولید نرم‌افزارهای سطح سیستم (System-level) را افزایش می‌دهد. دسترسی به ابزاری که با IDA Pro رقابت کند اما توسط AI تکامل یافته باشد، هزینه توسعه ابزارهای امنیتی را به شدت کاهش می‌دهد.

تأثیر برای ایران

به دلیل ماهیت باز و پژوهشی این پروژه، توسعه‌دهندگان ایرانی در حوزه امنیت و تحلیل مال‌ور می‌توانند از سورس‌کد آن برای ساخت ابزارهای بومی تحلیل باینری استفاده کنند.

·نگاه ما
تحریریه دات‌هوش

Kuna ثابت می‌کند که LLMها نه تنها در نوشتن کد، بلکه در «مهندسی معکوسِ مهندسی» موفق‌اند. نکته کلیدی اینجا نه قدرت مدل، بلکه طراحی یک «حلقه بازخورد» (Feedback Loop) است که معیارهای سخت‌گیرانه علمی را به مدل دیکته می‌کند. این رویکرد، نقش برنامه‌نویس را از نویسنده کد به «طراح معیار و داور» تغییر می‌دهد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.