اگر تا به حال سعی کردهاید برای یک سختافزار قدیمی، میانافزاری بازمتن بنویسید، میدانید که ماهها زمان صرف حدس زدن مقادیر رجیسترها میشود. حالا تصور کنید همین مسیر، تنها در چند هفته طی شود.
طبق گزارشی که در ۹ ژوئن ۲۰۲۶ در وبسایت blog.aheymans.xyz منتشر شد، یک توسعهدهنده توانست فرآیند پورت کردن میانافزار را با کمک هوش مصنوعی زاینده (Generative AI) به شدت تسریع کند. او برای این کار از یک مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — در کنار ابزارهای خودکار استفاده کرد.

پروژههایی مانند coreboot معمولاً برای سختافزارهای قدیمی مستندات کافی ندارند. لپتاپ ThinkPad x61 هم مستندات فنی لو رفتهای نداشت و برنامهنویسان مجبور بودند ماهها با تحلیل دستی فایلهای باینری، مقادیر رجیسترها را حدس بزنند. همانطور که در تحلیلهای قبلی ما دربارهی امنیت مدلهای بازگفتار اشاره کردیم، اتکا به ابزارهای خودکار همیشه با ریسک خطا همراه است.
بر اساس مستندات این پروژه، توسعهدهنده از مدل Claude Opus 4.6 در کنار ابزارهای ghidra-cli و radare2 برای تجزیه (disassemble) بایوس Phoenix استفاده کرد. این ساختار به عامل (Agent) هوش مصنوعی اجازه داد بدون نیاز به رابط گرافیکی و دخالت مستقیم انسان، مستقیماً از دکامپایلر سؤال بپرسد.

هوش مصنوعی با موفقیت توالی مقداردهی اولیه حافظه (raminit) را استخراج کرد، اما در نقاط حساس دچار توهم (Hallucination) — یعنی وقتی مدل با اطمینان چیزی میگوید که اصلاً وجود ندارد، مثل دوستی که خاطرهای را اشتباه تعریف میکند — شد:
- سرعت DDR2 را به اشتباه ۶۶۶/۸۰۰ MT/s تشخیص داد، در حالی که مقدار واقعی ۵۳۳/۶۶۶ بود.
- در مدیریت GPIO mux برای SMBUS روی GPIO42 اشتباه کرد.
- سعی کرد دستورهای ۳۲-بیتی را روی رجیسترهای ۱۶-بیتی بنویسد که میتوانست باعث خرابی کامل میانافزار شود.

توسعهدهنده برای تست کدها از flashprog و یک گیره فیزیکی SOIC8 استفاده کرد. در نهایت، بررسیهای مهندس Angel Pons نشان داد که کد تولید شده توسط هوش مصنوعی حاوی باگهای «فقط روی سیستم من کار میکند» و نامهای نادرست رجیستر بود که فقط یک خبره انسانی میتوانست آنها را پیدا کند.
این تجربه ثابت میکند که «مهندسی معکوس بر اساس حس» یا همان اعتماد کورکورانه به خروجی مدلها، هرگز کد آمادهی تولید نمیسازد. با این حال، هوش مصنوعی اکنون به عنوان یک شتابدهنده برای متخصصان عمل میکند و مهندسی معکوس باینریهای بسته (مانند FSP اینتل) را از یک عذاب چندساله به یک پروژه ممکن تبدیل میکند.
گام بعدی شما
- اگر روی احیای سختافزارهای قدیمی کار میکنید، ترکیب LLM را با ابزارهای خط فرمان (CLI) امتحان کنید تا سرعت استخراج منطق کد بالا برود.
- هرگز کدهای تولید شده برای رجیسترهای سختافزاری را بدون بررسی دستی یا شبیهسازی اجرا نکنید.
- برای مشاهده کاربرد عملی این روش، انتشار کامل fstart را دنبال کنید؛ جایگزینی مبتنی بر Rust برای coreboot که یکی از اولینها در پشتیبانی از x61 بود.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell مراجعه کنید.

گفتگو