مهندسی معکوس ردیاب پرتاب بیربلید با بررسی پروتکل بلوتوث — Reverse engineering a Beyblade launch tracker
خلاصه
این مقاله فرآیند مهندسی معکوس یک گجت سختافزاری ژاپنی برای اسباببازی Beyblade X را روایت میکند. نویسنده با اسنیف ترافیک بلوتوث کممصرف (BLE) و تحلیل بستههای داده، نحوه استخراج سرعت چرخش، شمارشگر پرتابها و مکانیزم حافظه موقت (FIFO) آن را کشف میکند.
مقدمه و زمینه
اسباببازیهای مدرن امروزی فراتر از قطعات مکانیکی ساده شدهاند و اغلب با سنسورها و ارتباطات بیسیم همراه هستند. نسل جدید فرفرههای انفجاری به نام Beyblade X طرفداران زیادی پیدا کرده است. شرکت Takara Tomy لوازم جانبی خاصی به نام Beybattle Pass (مدل BX-09) عرضه کرده است که به دستگیره پرتابگر متصل میشود و از طریق بلوتوث، اطلاعاتی مانند قدرت پرتاب (RPM یا دور در دقیقه) را به گوشی موبایل میفرستد.
نویسنده پس از تهیه این گجت گرانقیمت از طریق eBay، تصمیم میگیرد بدون کالبدشکافی سختافزاری و ریسک خرابی، با استفاده از ابزارهای تحلیل بلوتوث، پروتکل ارتباطی آن را کشف کند.
بررسی سختافزار و نحوه کارکرد
پرتابگرهای رسمی دارای سوراخها و مکانیزمهای مکانیکی هستند:
- یک دیسک کوچک سیاه و سفید درون پرتابگر میچرخد که سرعت چرخش نخ را تغییر میدهد.
- اهرم سفید کوچکی با اتصال فرفره جابهجا میشود که به عنوان دکمه روشن شدن و فعالسازی سنسور عمل میکند.
- با استفاده از دوربین جلو گوشی، وجود یک سنسور مادون قرمز تایید شد که تغییرات بازتاب ناشی از چرخش دیسک را برای محاسبه RPM ردیابی میکند.
تحلیل بستههای بلوتوث (BLE Payloads)
با اتصال به دستگاه با نام BEYBLADE_TOOL01 و استفاده از ابزارهایی مانند PacketLogger، دو ویژگی (Characteristics) اصلی پیدا شد:
- ویژگی خواندن و اعلان (
0x55c4f002) - ویژگی نوشتن بدون پاسخ (
0x55c4f001)
هنگام اتصال فرفره و انجام پرتاب، بایتهای داده تغییر میکنند. نویسنده متوجه شد که بلوتوث کممصرف (BLE) از ترتیب بایتهای Little-Endian استفاده میکند. با جابهجایی بایتها، مقادیری مانند 0c a2 به عدد ۳۲۳۴ تبدیل شدند که با میانگین سرعت پرتاب فرفرهها همخوانی دارد.
ساختار دادهها و حافظه FIFO
با بررسی صفحههای داده (از a0 تا b7) جزئیات زیر مشخص شد:
- بایتهای وضعیت نشاندهنده آمادگی پرتاب یا موفقیت آن هستند.
- شمارنده پرتاب با هر پرتاب موفق افزایش مییابد.
- حداکثر ۵۰ پرتاب در حافظه ذخیره میشود و پس از آن سیستم به صورت صف (FIFO) قدیمیترین داده را حذف میکند.
- بایت پایانی صفحه
b7یک چکسام (Checksum) ساده است که از جمع تمام بایتهای داده به دست میآید (پیمانه ۲۵۶).
نگاه جامعه برنامهنویسان (Hacker News)
در بحثهای Hacker News، کاربران ضمن ابراز حس نوستالژی نسبت به این اسباببازیها، از تلاش خالصانه و دستی نویسنده برای مهندسی معکوس ابزار بدون تکیه بر ابزارهای پرهیاهو و هوش مصنوعی قدردانی کردند.
چرا این بررسی برای مهندسان اهمیت دارد؟
این پروژه نمونهای کلاسیک و جذاب از مهندسی معکوس پروتکلهای IoT و سختافزارهای مصرفی است. این کار نشان میدهد چگونه میتوان با ابزارهای تحلیل بستههای BLE، بدون داشتن مستندات رسمی (API Documentation)، ساختار دادهها، مدیریت حافظه داخلی دستگاه و رمزگشایی مقادیر سنسورها را با موفقیت استخراج کرد.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل