تصور کنید یک دکامپایلر وجود داشته باشد که تقریباً هر خط از کد آن توسط یک مدل زبانی بزرگ (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 همچنان یک پروژه آزمایشی با شکافهای قابل توجه است. این پروژه در حال حاضر در چندین حوزه کلیدی نیاز به بهبود دارد:
- بازیابی نوع (Type Recovery): ارتقای نحوه شناسایی و مدیریت انواع دادهها توسط ابزار.
- بهینه سازیها: اصلاح کارایی و کیفیت خروجی دکامپایل شده.
- قابلیت کامپایل مجدد (Recompilability): اطمینان از اینکه خروجی میتواند با موفقیت دوباره به کد باینری کامپایل شود.
- شناسایی متغیرها: بهبود فرآیند نامگذاری و ردیابی متغیرها در کد.
پژوهشگران و توسعهدهندگانی که علاقهمند به internals بهبود خودکار یا اهداف خاص این پروژه هستند، اکنون میتوانند سورسکد Kuna را بررسی کنند تا ببینند بازخوردهای علمی چگونه به اصلاحات کد تبدیل میشوند.




گفتگو