مهندسی معکوس سختافزار با هوش مصنوعی؛ چگونه ابزارهای مدرن درایورنویسی را متحول میکنند؟ — Using AI to reverse engineer hardware
خلاصه
این مقاله نشان میدهد چگونه میتوان با استفاده از مدلهای زبانی بزرگ و ابزارهای خودکار، ترافیک سختافزاری را تحلیل کرد و برای دستگاههای فاقد پشتیبانی در لینوکس، درایور ساخت. این رویکرد خستهکنندهترین بخشهای مهندسی معکوس سختافزار را حذف کرده و توسعهدهندگان را در حل مشکلات پیچیده یاری میدهد.
مقدمه و زمینه
نوشتن درایور و مهندسی معکوس سختافزارهایی که مستندات مشخصی ندارند، همیشه یکی از وقتگیرترین و فرسایندهترین کارها برای توسعهدهندگان بوده است. روند سنتی معمولاً شامل ضبط دادههای باس، خیرهشدن طولانیمدت به فایلهای هگز و حدسزدن کارکرد هر رجیستر یا کنترل ترنسفر بود که هفتهها زمان میبرد. اما با ظهور ابزارهای مبتنی بر هوش مصنوعی مانند Claude و Agentهای برنامهنویسی، این بازی تغییر کرده است.
یک توسعهدهنده لینوکس اخیراً با استفاده از Claude Code موفق شده است برای یک اسکنر نگاتیو قدیمی (Plustek 8200i) که دیگر در لینوکس پشتیبانی نمیشد و همچنین برای دوربین MIPI لپتاپ ThinkPad خود درایور و پچهای هسته بنویسد. این مقاله تجربه و ساختار ایجاد یک هنسفری (Harness) استاندارد برای این کار را مستند کرده است.
جزئیات فنی و ایده اصلی کار
ایده پشت این روش بر اساس ساخت یک محیط تست (Harness) استاندارد استوار است:
- ضبط مرجع (Reference Capture): اجرای درایور اصلی و رسمی ویندوز در یک ماشین مجازی KVM با پاسدادن سختافزار واقعی به سیستمعامل مهمان.
- ضبط ترافیک از میزبان: ضبط ترافیک USB روی میزبان لینوکس با استفاده از
usbmonکه در لایهای پایینتر از پاسترو قرار دارد و مهمان نمیتواند آن را ببیند. - تکرار روی لینوکس: انجام همان عملیات روی لینوکس با درایور در حال توسعه و ضبط ترافیک آن.
- مقایسه و دیف (Diff): مقایسه دو ترافیک ثبتشده؛ تفاوتهای موجود در واقع لیست باگها یا کدهای مفقود درایور جدید است.
برای سختافزارهایی که باس قابل اسکن ندارند (مانند دوربینهای داخلی MIPI)، این روش به جای ترافیک باس، از بررسی فایلهای INF، اطلاعات رجیستری، جدولهای ACPI و مشخصات دستگاه در سمت ویندوز استفاده میکند.
پروژههای انجامشده
نویسنده این روش را روی سه پروژه آزمایش کرده است:
- بکاند SANE برای اسکنر Plustek: نوشتن یک درایور کامل برای اسکنر نگاتیو که از حالتهای رنگی، خاکستری، مادون قرمز و رزولوشنهای بالا پشتیبانی میکند. همچنین یک اپلیکیشن به نام Negative Vibes برای اسکن نگاتیوها توسعه داده شده است.
- رفع مشکلات دوربین MIPI در تینکپد: رفع باگهایی نظیر انتخاب برش (Crop)، تنظیمات نادرست عرض رجیستر الگوی تست، محدودیت گین آنالوگ و اصلاح تصحیح سایه لنز که کیفیت تصویر دوربین را بهشدت بهبود بخشید.
چرا این موضوع برای مهندسان اهمیت دارد؟
بحثهای هکر نیوز نشان میدهد که استفاده از هوش مصنوعی برای مهندسی معکوس سختافزار و نرمافزار به سرعت در حال فراگیری است. در حالی که برخی نگران جنبههای کپیبرداری از الگوریتمهای تجاری هستند، بسیاری از مهندسان از این ابزارها برای زنده کردن سختافزارهای قدیمی که در سیستمعاملهای مدرن از کار افتادهاند، بهره میبرند.
هوش مصنوعی در کارهای خستهکننده مانند تحلیل هزاران خط لاگ، پیدا کردن الگوهای تکرارشوندە با تغییر یک بایت و نوشتن تستهای بررسیکننده فوقالعاده عمل میکند. انسان همچنان تصمیم میگیرد چه چیزی ساخته شود و صحت کار را روی سختافزار واقعی تست میکند، اما بار سنگین و زمانبر کار بهشدت کاهش مییابد.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل