مهندسی معکوس (Reverse Engineering)
مهندسی معکوس، فرآیندی نظاممند و تحلیلی است که طی آن یک محصول، نظیر برد الکترونیکی، بهصورت دقیق مورد بررسی قرار میگیرد تا نحوه عملکرد، ساختار داخلی، اصول طراحی و تعامل اجزای تشکیلدهنده آن شناسایی و مستندسازی شود. هدف از مهندسی معکوس، دستیابی به درک عمیق از فناوری بهکاررفته در محصول، بدون دسترسی به اسناد طراحی اولیه آن است.

ویژگیها:
- نیاز به دانش تخصصی در الکترونیک، نرمافزار، میکروکنترلرها و تحلیل مدارات دارد.
- معمولاً شامل نقشهبرداری از مدار، استخراج شماتیک، شناسایی قطعات، تحلیل نرمافزار یا فریمور است.
- هدف میتواند یادگیری، بهینهسازی، تعمیر، تحلیل امنیتی یا توسعه نسخهی بهبود یافته باشد.
- خروجی آن معمولاً یک طراحی قابل اصلاح و ارتقاء است.
یعنی:
هنگامی که یک برد یا دستگاه الکترونیکی را باز میکنید و بهصورت مرحلهبهمرحله تلاش میکنید تا نحوه عملکرد آن را بهدقت درک نمایید، در واقع در حال انجام یک فرآیند تحلیلی و سیستماتیک هستید که به آن مهندسی معکوس گفته میشود. این فرآیند با شناسایی اجزای تشکیلدهنده، بررسی مسیرهای الکتریکی و تحلیل نحوه تعامل بین قطعات آغاز میگردد و در نهایت با دستیابی به درک کامل از عملکرد کلی سیستم به پایان میرسد.
مهمترین اقداماتی که در مسیر مهندسی معکوس بردهای الکترونیکی انجام میشود عبارتاند از:
- شناسایی و طبقهبندی قطعات الکترونیکی بهکاررفته بر روی برد
- دنبالکردن مسیرهای PCB جهت درک نحوه اتصال بین اجزا
- ترسیم شماتیک مدار از روی نمونه فیزیکی
- تحلیل جریان سیگنالها و نحوه پردازش آنها در مدار
- استخراج، بررسی و تحلیل فریمور یا کدهای داخلی (در صورت وجود میکروکنترلر)
این فعالیتها نیازمند دانش فنی، ابزار مناسب و دید تحلیلی دقیق هستند و هدف نهایی آنها، درک جامع از طراحی و عملکرد سیستم الکترونیکی مورد بررسی است.
- شناسایی قطعات الکترونیکی: در این مرحله، نوع و مدل قطعات الکترونیکی مورد استفاده از جمله آیسیها، مقاومتها، خازنها و سایر اجزای الکترونیکی شناسایی میشوند.
- کشف مسیرهای ارتباطی: با دنبالکردن مسیرهای موجود بر روی برد مدار چاپی (PCB)، نحوه اتصال و ارتباط میان اجزای مختلف بررسی میگردد.
- ترسیم نقشه شماتیک مدار: بر اساس اطلاعات بهدستآمده، شماتیک (نقشه مداری) دستگاه رسم میشود تا ساختار منطقی و عملکردی مدار مشخص شود.
- تحلیل عملکرد مدار: عملکرد کلی برد بررسی میشود؛ از جمله مسیر عبور سیگنالها، نحوه پردازش آنها و نقش هر بخش در فرآیند کلی عملکرد دستگاه.
- استخراج و تحلیل فریمور (در صورت وجود): در صورتی که دستگاه دارای میکروکنترلر باشد، تلاش میشود برنامه داخلی (فریمور) استخراج و تحلیل گردد تا منطق کنترلی و نرمافزاری سیستم نیز شناسایی شود.
اهداف فرآیند مهندسی معکوس برد الکترونیکی بهصورت کلی شامل موارد زیر است:
- کسب دانش و افزایش مهارت: آشنایی عمیقتر با ساختار و عملکرد سیستم بهمنظور یادگیری مفاهیم فنی و تکنیکی.
- طراحی و تولید نسخه بهینهتر: بهرهگیری از تحلیل انجامشده جهت توسعه یا بازطراحی سیستم با عملکرد بهتر، هزینه کمتر یا کارایی بالاتر.
- تعمیر، بهروزرسانی یا ارتقاء سیستم: شناسایی و رفع عیوب موجود، و همچنین ارتقاء قابلیتها و عملکرد دستگاه بر اساس نیازهای جدید.
- ارزیابی امنیت و شناسایی آسیبپذیریها: تحلیل ساختار سختافزاری و نرمافزاری سیستم با هدف کشف نقاط ضعف امنیتی و بهبود ایمنی عملکرد دستگاه.
کپیبرداری از مدار چاپی (Cloning/Copying PCB)
کپیبرداری از یک برد الکترونیکی به معنای بازتولید دقیق یک برد آماده موجود، بدون اعمال تغییر در طراحی، تحلیل عمیق عملکرد مدار یا بهبود ساختاری آن است.
ویژگیها:
- این فرآیند معمولاً شامل بررسی ظاهری، اسکن یا مهندسی معکوس سطحی برد موجود و بازسازی آن با همان مشخصات فیزیکی و عملکردی است.
- شماتیک مدار و در صورت وجود، فریمور (برنامه میکروکنترلر) نیز اغلب بدون تحلیل عملکردی عمیق صرفاً بازسازی یا استخراج میشوند.
- درک کامل و دقیق از منطق عملکرد مدار الزامی نیست و تمرکز بر تکرار عینی و فیزیکی ساختار موجود است.
- هدف اصلی، تولید مجدد دقیق همان برد است، بدون هیچگونه تغییر، اصلاح یا ارتقاء.
- در برخی موارد، این فرآیند ممکن است متکی بر روشهایی باشد که از منظر قانونی یا اخلاقی محل بحث بوده و شامل نقض حقوق مالکیت فکری و اطلاعات محرمانه میشود.
به بین ساده:
در این روش، بدون درک دقیق از نحوه عملکرد مدار، صرفاً اقدام به تکرار فیزیکی و عملکردی همان برد موجود میشود.
مراحل معمول در فرآیند کپیبرداری از برد (PCB Cloning):
- تصویربرداری یا اسکن دقیق از برد موجود بهمنظور مستندسازی چیدمان فیزیکی و مسیرهای برد.
- بازطراحی مدار چاپی (PCB) صرفاً بر اساس ظاهر فیزیکی برد، بدون نیاز به دسترسی به نقشه شماتیک اصلی یا تحلیل عملکردی.
- تهیه و مونتاژ قطعات الکترونیکی دقیقاً مطابق با نمونه اصلی و چینش آنها بر روی برد بازطراحیشده.
- در صورت وجود تراشههای قابل برنامهریزی (نظیر میکروکنترلرها)، تلاش برای استخراج و کپی فریمور از نمونه اصلی، مشروط به نبودن قفل یا محدودیت امنیتی.
اهداف اصلی از کپی کردن بردهای الکترونیکی:
- تولید یک نسخه مشابه از برد الکترونیکی برای استفاده شخصی یا عرضه در بازار.
- انجام فرآیند بدون اعمال تغییرات، بهبود طراحی یا نیاز به درک عمیق از منطق و عملکرد مدار.
| ویژگی | مهندسی معکوس (Reverse Engineering) | کپی کردن برد (Board Cloning) |
| هدف | تحلیل و درک ساختار و عملکرد سیستم | تولید یک نسخهی مشابه بدون تحلیل عمیق |
| سطح دانش مورد نیاز | بالا – نیاز به دانش فنی در الکترونیک و نرمافزار | معمولی – بدون نیاز به درک عمیق |
| مراحل اصلی | شناسایی قطعات، تحلیل مدار، استخراج شماتیک و فریمور | اسکن برد، طراحی مجدد PCB، لحیمکاری مشابه |
| امکان تغییر یا بهبود | بله، قابل توسعه یا بهبود | نه، فقط یک نسخه مشابه ساخته میشود |
| کاربردها | تحقیق، توسعه، امنیت، تعمیر، آموزش | تکثیر برای مصرف شخصی یا تجاری (گاهی غیرقانونی) |
| نیاز به فهم عملکرد مدار | بله – نیازمند درک دقیق عملکرد سیگنالها و مدار | خیر – تمرکز فقط بر ظاهر و بازتولید است |
| خروجی نهایی | طراحی قابل بهینهسازی و توسعه | بردی مشابه نسخه اصلی بدون انعطاف در طراحی |
| وضعیت قانونی | در برخی موارد قانونی است )در صورت رعایت مالکیت فکری( | ممکن است ناقض کپیرایت باشد |
آموزش گامبهگام مهندسی معکوس بردهای الکترونیکی
مهندسی معکوس یک فرآیند تحلیلی و نظاممند است که طی آن عملکرد و ساختار یک سیستم الکترونیکی بدون دسترسی به مستندات طراحی اولیه بررسی و بازسازی میشود. مراحل زیر مسیر اصولی یادگیری و اجرای مهندسی معکوس را تشریح میکند:
مرحله ۱: یادگیری اصول پایه الکترونیک
در نخستین گام، تسلط بر مفاهیم بنیادین الکترونیک ضروری است. شناخت عملکرد اجزای الکترونیکی نظیر مقاومت، خازن، دیود، ترانزیستور و آیسیها، پایهی فهم مدارهای پیچیدهتر خواهد بود.
فعالیتهای پیشنهادی:
- خواندن ولتاژ و سایر پارامترها با استفاده از مولتیمتر
- ساخت مدارهای ساده روی برد بورد
- یادگیری قانون اهم و قوانین کیرشهف (جریان و ولتاژ)
مرحله ۲: آموزش خواندن و طراحی نقشه شماتیک
توانایی تفسیر شماتیک (نقشه مداری) برای درک ارتباط بین اجزای مدار و همچنین ترسیم شماتیک از روی برد واقعی الزامی است.
نرمافزارهای پیشنهادی برای طراحی شماتیک و PCB
- KiCad
- EasyEDA
- Altium Designer
مرحله ۳: شناسایی و تست قطعات الکترونیکی
شناسایی قطعات روی برد، تشخیص پارتنامبرها و مطالعه دیتاشیت آنها از مهمترین مهارتهای لازم در مهندسی معکوس بردهای الکترونیکی است.
ابزارها و منابع مورد نیاز:
- مولتیمتر برای تست پایهای قطعات الکترونیکی
- وبسایتهای تخصصی مانند:
مرحله ۴: کار با میکروکنترلرها و پروگرامرها
در صورت وجود میکروکنترلر روی برد مانند AVR، STM32، ESP32، شناخت روشهای پروگرام و استخراج اطلاعات از چیپ ضروری است.
مواردی که باید بدانید:
- نحوه پروگرام کردن میکروکنترلر
- روشهای استخراج فریمور (در صورت نبود قفل امنیتی)
- نحوه خواندن و ذخیرهسازی محتوای حافظه چیپ
ابزارهای سختافزاری و نرمافزاری مفید:
- پروگرامرها: ST-Link USBasp، CH341A
- نرمافزارها:
- Flashrom
- AVRDude
- STM32CubeProgrammer
مرحله ۵: تحلیل فریمور (Firmware Analysis)
در صورتی که موفق به استخراج فریمور شدید، باید آن را تحلیل کرده و منطق عملکرد برنامه داخلی سیستم را درک نمایید.
مهارتهای مورد نیاز:
- تسلط نسبی به زبانهای برنامهنویسی سطح پایین مانند Assembly و زبانهای سطح بالا مانند C/C++
ابزارهای تحلیل کد باینری:
- Ghidra
- IDA Free
- Binary Ninja
وظیفه این ابزار ها:
تبدیل کد ماشین (دادههای صفر و یک) به فرم قابلخواندن و قابلتحلیل برای درک ساختار برنامه.
مرحله ۶: بررسی سیگنالها و ارتباطات روی برد
برای درک نحوه تبادل داده بین اجزای برد و شناسایی پروتکلهای ارتباطی مانند UART، SPI، I2C و … استفاده از ابزارهای تخصصی ضروری است.
نتیجهگیری:
مهندسی معکوس، فرآیندی دانشمحور و تحلیلی با هدف درک ساختار، عملکرد و منطق طراحی یک برد الکترونیکی است؛ در حالیکه کپیبرداری از برد، صرفاً تکرار فیزیکی و بازتولید آن بدون تحلیل عمیق یا درک فنی محسوب میشود.


چطور میشه حافظه چپپ را خواند؟
با پروگرامر حافظه چیپ را میخوانند.
خوشحالم که مطلب براتون مفید بوده.