مهندسی معکوس یا Reverse engineering یکی از مباحث پرکاربرد در صنایع مختلف است که در این مطلب، دربارهی چیستی آن و کاربردهایش صحبت میکنیم. با فیسیت همراه باشید.
مهندسی معکوس یا Reverse engineering یکی از مباحث پرکاربرد در صنایع مختلف است که در این مطلب، دربارهی چیستی آن و کاربردهایش صحبت میکنیم. با فیسیت همراه باشید.
مهندسی معکوس چیست؟
مهندسی معکوس که عبارتهایی مانند Reverse engineering و back engineering هم برای آن به کار برده میشود، فرآیندی است که طی آن نرم افزار، ماشینها، سازههای ساختمانی و... ساختارشان شکسته میشود تا اطلاعات طراحی آنها استخراج شود. درواقع مهندسی معکوس فرآیندی است که با استفاده از آن از روی پاسخ به سؤال میرسید. به عبارتی در دو شرایط، مهندسی معکوس جواب میدهد، یکی در شرایطی که جواب یک مسئله را میدانیم اما سؤال این پاسخ را نمیدانیم؛ دوم زمانی که هر دو سؤال و پاسخ در دست است اما نمیدانیم که چگونه به این پاسخ رسیدهایم. مهندسی معکوس شاید دقیقترین راه برای طراحی مجدد آیتمهایی است که شاید چندین دهه است که تولید آنها متوقف شده است. در شرایطی که نقشه اصلی کار گم شده باشد یا به طور کلی از بین رفته باشد، مهندسی معکوس شاید تنها راه برای بازگرداندن محصول به چرخه حیات باشد.
کاربردهای مهندسی معکوس چیست؟
مهندسی معکوس از دیرباز در زمینههای مختلف از جمله مهندسی، مکانیک، نرم افزار و... کاربرد داشته است. از جمله کاربردهای میتوانیم به موارد زیر اشاره کنیم:
تعویض قطعات قدیمی: زمانی که برای باقی ماندن یک کالا در چرخهی حیات کارخانه و... به نیاز به تعویض یکی از قطعات آن دارید، مهندسی معکوس کمک رسان است. در این شرایط ممکن است با دستگاههایی مواجه باشیم که قدیمی بوده و دیگر شناختی دربارهی آن نداریم. از این رو با مهندسی معکوس میتوانیم به اطلاعات لازم دربارهی آن قطعه دسترسی داشته باشیم. همچنین در شرایطی که قطعهای در دستگاه به کار رفته است که دیگر پشتیبانی نمیشود و ممکن است در آینده نیاز به تعمیر پیدا کند، بسیار عاقلانه است که اطلاعاتی دربارهی نحوهی کار آن بدست بیاوریم که این اتفاق با استفاده از مهندسی معکوس ممکن میشود.
تحلیل شکست: یکی از تکنیکهایی که نقش بسیار مهمی در زمینهی تجزیه و تحلیل شکست ایفا میکند، مهندسی معکوس است. در صورتی که یک ماشین خراب شود، لازم است که آن را باز کنید و فایلهای طراحی آن را مورد بررسی قرار دهید تا متوجه شوید که مشکل از کجا بوده است. با بدست آوردن این اطلاعات، متوجه میشوید که چطور باید مشکل را برطرف کنید. درواقع مهندسی معکوس میتواند قسمتهای آسیب دیده از طراحی بد را تشخیص دهد.
بهبود قسمتها: پس از تحلیل شکست ممکن است نیاز باید تا بخشها و یا قطعاتی را بهبود بدهید. در صورتی که هیچ جایگزینی در بازار برای آن قطعه در دست نباشد، با استفاده از مهندسی معکوس میتوانید یک کپی از طرح اصلی آن ایجاد کنید. در این بین میتوانید با استفاده از تغییر دادن بخشی از طراحی، آن را بهبود بدهید.
عیبیابی و حل مسئله: یکی از کاربردهای مهندسی معکوس، در تشخیص و حل مسئله در فرآیندهای صنعتی است. در یک کارخانه ممکن است جریان برخی کارها به دلایلی مانند عملکرد اشتباه یا ضعیف یکی از کارها و بخشها، کندتر از حد انتظار پیش برود. در شرایطی که یک سیستم کارخانهای شامل تعداد زیادی واحد و ماشین باشد، تعیین منبع اصلی ایراد، کمی دشوار است. این در حالی است که مهندسی معکوس میتواند نحوهی عملکرد هر چیزی را به خودی خود متوجه شود و با استفاده از همین موضوع، تشخیص بدهد که کجای کار میلنگد.
مهندسی معکوس در علوم کامپیوتر
به جز موارد ذکر شده، مهندسی معکوس در زمینهی مهندسی نرم افزار و امنیت و... هم کاربردهای فراوانی دارد. کار مهندسی معکوس در نرم افزار بازیابی طرحها، نیازمندیها، مشخصات و عملکردهای یک محصول است که این کار از طریق آنالیز کد آنها بدست میآید. درواقع با مهندسی معکوس در نرم افزار، پایگاه دادهای برای برنامه تشکیل میشود و اطلاعات در آن قرار داده میشود. کار اصلی مهندسی معکوس در نرم افزار، سادگی نگهداری کار با استفاده از بهبود قابل فهم بودن سیستم و در نتیجه ایجاد اسناد ضروری برای سیستمهای قدیمی و کهنه است. از جمله اهداف مهندسی معکوس در نرم افزار میتوانیم به مقابله به پیچیدگی، بازیابی دادههای گم شده، تشخیص اثرات جانبی، فراهم کردن شرایط برای استفادهی مجدد از کد به صورت ساده و... اشاره کنیم.
درواقع استفاده از مهندسی معکوس در طراحی نرم افزار این امکان را به برنامه نویس و توسعه دهنده میدهد که حتی بدون داشتن هیچگونه اطلاعی دربارهی کد منبع یک نرم افزار، قابلیتهای جدیدی را به آن اضافه کند. در زمینهی تست نرم افزار، مهندسی معکوس به تست کننده کمک میکند تا ویروسها و سایر کدهای مخرب بدافزاری را بشناسد. در مبحث امنیت نرم افزارها هم مهندسی معکوس به صورت گسترده برای اطمینان از این مسئله که سیستم خالی از هر گونه آسیب پذیری یا ایرادات امنیتی مهم باشد، کاربرد دارد. این کار باعث میشود که سیستم در برابر هر گونه حملات هکری یا جاسوسی، قدرتمند شود. حتی برخی از برنامه نویسان و توسعه دهندگان نرم افزار، خودشان نقش یک هکر را ایفا میکنند (کاری که به آن هک اخلاقی میگویند) تا آسیب پذیریهای سیستم را تشخیص داده و رفع کنند.
اخبار مرتبط:
ترلو چیست؟ معرفی یکی از بهترین ابزارهای مدیریت پروژه
اگر به اخبار دنیای تکنولوژی علاقه مند هستید، ما را در شبکههای اجتماعی مختلف تلگرام، روبیکا، توییتر، اینستاگرام و آپارات همراهی کنید.
منبع خبر: faceit
ثبت نظر