مهندسی معکوس چیست؟
مهندسی معکوس باز کردن یک وسیله برای درک چگونگی عملکرد آن است. این کار در ابتدا با آنالیز و کسب دانش درمورد کارکرد آن وسیله انجام میشود، ولی اغلب برای نسخهبرداری یا ارتقای یک وسیله، مورد استفاده قرار میگیرد. مهندسی معکوس برای بسیاری از چیزها قابل انجام است؛ از جمله نرمافزار، سختافزار، فناوری نظامی و حتی کارکردهای زیستشناختی در ارتباط با چگونگی عملکرد ژنها.
بهکارگیری مهندسی معکوس برای نرمافزار و سختافزار رایانه از صنایع قدیمی نشئت گرفته است. مهندسی معکوس نرمافزار برای برنامهی رمز ماشین[1] کاربرد دارد؛ یعنی مجموعهای از اعداد ٠ و ١ که به پردازندهی منطقی[2] فرستاده میشوند. برای برگرداندن رمز ماشین به رمز منبع اصلی از عبارات برنامه استفاده میشود.
بسته به نوع فناوری، دانش کسبشده در طول مهندسی معکوس برای تغییر کاربری اشیای از کار افتاده، انجام آنالیز امنیتی، کسب منافع رقابتی یا آموزش چگونگی کارکرد آنها به افراد، مورد استفاده قرار میگیرد. مهم نیست دانش چه کارکردی دارد یا به چه چیزی مربوط است؛ مهندسی معکوس یعنی فرآیند کسب دانش از یک شیء تکمیلشده.
هدف مهندسی معکوس چیست؟
هدف مهندسی معکوس درک این مسئله است که یک سامانه یا شیء چگونه کار میکند. دلایل مختلفی برای این کار وجود دارد. مهندسی معکوس برای یادگیری طرز کار و بازسازی یک شیء یا ساختن وسیلهای مشابه است که ارتقاء پیدا کرده و بهسازی شده است.
اغلب، هدف مهندسی معکوس برای نرمافزار و سختافزار پیدا کردن راهی برای ساخت محصولی مشابه با قیمتی پایینتر است و یا ممکن است به این دلیل باشد که محصول اصلی دیگر موجود نیست. مهندسی معکوس در فناوری اطلاعات نیز برای بررسی مسائل تطبیقی کاربرد دارد و باعث میشود سختافزار یا نرمافزار با سختافزار یا نرمافزارهای دیگر و همینطور سیستم عاملهای دیگر منطبق شود.
نرمافزار لاجیک پرو اپل که امکان ساخت آهنگ، تنظیم، مونتاژ و میکس موسیقی را برای آهنگسازان فراهم میکند، نمونهی خوبی است. لاجیک پرو تنها برای دستگاههای مک در دسترس است و قیمت آن نیز نسبتاً بالاست. این برنامه چندین ساز دیجیتال اختصاصی دارد. یک برنامهنویس با کمی بررسی، میتواند این سازهای دیجیتالی را مهندسی معکوس کند تا نحوهی عملکرد آنها را تشخیص داده و این سازها را برای استفاده در محیط لاجیک پرو تغییر دهد. همچنین میتواند با تعامل آنها با دیگر نرمافزارهای موسیقی، آن را با سیستم عامل ویندوز منطبق کند.
[1] مجموعهای از دستورالعملها که مستقیماً توسط واحد پردازش مرکزی یک رایانه اجرا میشود
[2] Logic processor