مهندسی معکوس چیست ؟
در این قسمت از آموزش قصد داریم شما را با علم مهندسی معکوس آشنا کنیم ، پن تست کور را دنبال کنید.
مهندسی معکوس یا reverse engineering چیست ؟
همانگونه که از نام مهندسی معکوس مشخص است به این معنا است که فرد با استفاده از تکنیک های مختلف اقدام به معکوس کردن برنامه می کند تا بتواند به ساختار اصلی سرویس مورد نظر خود دسترسی پیدا کند ، در طی دهه های اخیر مهندسی معکوس بسیار رواج پیدا کرده است و فقط این علم مختص به نرم افزار های مختلف نمی شود بلکه هر سیستم و سرویسی را که بتوان با استفاده روش های مختلف به نحوه ساخت آن دسترسی پیدا کرد را می توان یک نوع مهندسی معکوس نام گذاری کرد اما در این مبحث ما ، شما را با مهندسی معکوس در کامپیوتر ها آشنا خواهیم کرد.
مثال برای درک بیشتر :
اگر بخواهیم با یک مثال ساده تر این موضوع را برای شما شرح دهیم تصور کنید جواب یک مسئله را دارید و قصدا دارید به سوال اصلی مسئله برسید و یا اگر بخواهیم به روش دیگر توضیح دهیم تصور کنید یک نرم افزاری وجود دارد که امکانات مختلفی را برای شما مهیا کرده است و شما قصد دارید از ساختار نرم افزار مربوطه و نحوه کد نویسی ان نرم افزار مطلع شوید تا بتوانید از تکنیک های موجود در پروژه های خود نیز از ان ها استفاده کنید.
به این منظور با استفاده از تکنیک های مهندسی معکوس نرم افزار مورد نظر خود را دیکد می کنید و به سورس نرم افزار دسترسی پیدا می کنید و می توانید از سورس ان استفاده کنید که چنین عملیاتی را نرم افزار های مختلف زیادی هستند که برای شما انجام خواهند داد اما برای آنکه بتوانید این مبحث را به خوبی یاد بگیرید و به صورت حرفه ای در این زمینه اقدام به فعالیت کنید نیاز به مهارت های مختلفی دارید که در ادامه شما را با این مهارت ها آشنا خواهیم کرد .
با استفاده از مهندسی معکوس چه کار هایی می توان انجام داد ؟
شما با استفاده از مهارت هایی که در ادامه ذکر خواهیم کرد می توانید این مبحث را به خوبی یاد بگیرید و به این حوزه بپردازید، اما قبل از آن می خواهیم به این موضوع بپردازیم که مهندسی معکوس چه فوایدی دارد؛ با مهارت مهندسی معکوس می توانید به اکثر سورس های برنامه های مختلف دسترسی داشته باشید و حتی می توانید از تکنیک های استفاده شده در نرم افزار ها در پروژه های مختلف خود استفاده کنید و حتی جالب است که بدانید با استفاده از هنر مهندسی معکوس می توانید اکثر نرم افزار هایی که دارای لایسنس هستند را دور بزنید و از انها استفاده کنید البته لازم به ذکر است که چنین کاری دور از اخلاق است.
مثال نرم افزاری
اگر بخواهیم برای شما مثالی زده باشیم می توانید به سیستم عامل ویندوز دقت کنید همانگونه که می دانید ما نمی توانیم از نسخه اصلی و اورجینال سیستم عامل ویندوز به صورت معمول استفاده کنیم و معمولا از نسخه های کرک شده استفاده می کنیم ، آیا تا به حال دقت کرده اید کرک های سیستم عامل ویندوز یا کرک نرم افزار های دیگر مانند نرم افزار های شرکت ادوبی از کجا می آیند ؟
در این میان افرادی هستند که با استفاد از علم بالای خود و با استفاده از روش های مختلف مهندسی معکوس اقدام به بررسی سیستم عامل ویندوز و یا دیگر نرم افزار های موجود می کنند و با تحلیل سرویس های مورد نظر خود اقدام به ساختن راهی برای دور زدن محدودیت لایسنس می کنند و در اختیار عموم قرار خواهند داد ، تا به اینجای کار متوجه شدید که با استفاده از مهندسی معکوس چه کار هایی می توان انجام داد و در ادامه به این موارد اشاره خواهیم کرد که چه مهارت هایی نیاز دارید تا در این زمینه فعالیت حرفه ای داشته باشید.
مهارت های مورد نیاز
در ابتدای کار باید با سخت افزار آشنایی خوبی داشته باشید و توانایی تحلیل سخت افزار را داشته باشید زیرا در روند کار بسیار به شما کمک خواهد کرد و می توانید با استفاده از علم سخت افزار خود محدودیت های بسیار زیادی را از سر راه خود بردارید.
مهارت دوم که به ان نیاز دارید مهارت برنامه نویسی است که یکی از مهم ترین مهارت ها است که باید توجه ویژه ای به آن داشته باشید، که یکی از مهم ترین زبان های برنامه نویسی برای علم مهندسی معکوس زبان اسمبلی است که زبانی بسیار شیرین اما بسیار سخت است که می توانید با استفاده از این زبان برنامه نویسی مستقیم با سخت افزار سیستم ارتباط برقرار کنید و جالب است که بدانید این زبان برنامه نویسی به هیچ کامپایلری نیاز ندارد و در ساده ترین محیط های ادیتور تکست می توانید با اسمبلی کار کنید، زیرا یک زبان کاملا سطح پایین است که به صورت مستقیم با سخت افزار در ارتباط است.
نکته : پیشنهاد می کنیم اموزش بهترین زبان برنامه نویسی برای هک را در پن تست کور مشاهده کنید.
مهارت های دیگری هم وجود دارند که با یاد گیری انها می توانید
به یک مهندس معکوس بسیار حرفه ای تبدیل شوید
که برخی از این مهارت هارا در ادامه برای شما لیست کرده ایم :
مهارت ها :
- زبان ماشین و اسمبلی
- مدارهای منطقی
- مدارهای الکترونیکی
- طراحی الگوریتم ها
- معماری کامپیوتر
- سیستم های عامل
- ریزپردازنده ها
- اصول طراحی کامپایلر
- همچنین شما باید کار با نرم افزار های مختلف
که برای مهندسی معکوس استفاده می شوند را هم یاد بگیرید.
شما به عنوان یک مهندس معکوس نرم افزار می توانید پروژه های مختلف را از افراد مختلف قبول کنید. پروژه هایی با عنوان تست امنیت نرم افزار های شرکت های مختلف زیرا بدون شک هر کسب و کاری در حوزه خود رقیب هایی دارد که رقبا قصد بهتر بودن را دارند و ممکن است دست به هر کاری بزنند برای ان که بتوانند از رقیب خود عملکرد بهتری داشته باشند، به این منظور می توانید با استفاده از تست امنیت نرم افزار های مختلف پروژه هایی را بگیرید و تست امنیتی ان ها را انجام دهید.
شاخه های مختلف در مهندسی معکوس
در علم مهندسی معکوس شاخه هایی وجود دارد
که می توانید یکی را نسبت به علاقه خود انتخاب کنید
و در ان زمینه اقدام به فعالیت کنید که در ادامه
شما را با برخی از این شاخه ها آشنا خواهیم کرد.
کرک نرم افزار ویندوزی :
کرک نرم افزار های ویندوزی یکی از شاخه های پرطرفردار این حوزه است و البته لازم به ذکر است که ابزار های بسیار فروانی هم نیز در این زمینه مانند ollydbg وجود دارد که معمولا افراد فعال در این زمینه با استفاده از ان ها و دانش خود به کرک و دور زدن محدودیت نرم افزار مختف ویندوزی می پردازند .
کرک اپلیکشن های اندرویدی :
با توجه به اینکه امروزه اپلیکیشن های اندرویدی بسیار فراوان شده اند و بدون شک هر کسب و کار بزرگی به اپلیکیشن اندرویدی برای کسب و کار خود نیاز دارد شما می توانید با استفاده از یادگیری علم مادینگ نرم افزار های اندرویدی اقدام به در آمد زایی کنید، زیرا بدون شک اکثر کسب و کار های بزرگ به امنیت خود بسیار اهمیت می دهند که می توانید با تست نفوذ و پیدا کردن باگ های های مختلف امنیتی در اپلیکیشن های اندرویدی به نتیجه بسیار خوبی برسید .
نتیجه گیری
در این قسمت از آموزش شما با علم مهندسی معکوس آشنا شدید و حال نیز می توانید با استفاده از مطالب بالا که ارائه شده است اقدام به یادگیری مهارت های مختلف کنید و مهارت خود را بالا ببرید. دقت داشته باشید که باید همیشه به دنبال یادگیری مباحث جدید باشید و به صورت مداوم و با اشتیاق زیاد خود را با مباحث جدید بروز کنید و همیشه به دنبال راه های اخلاقی برای پیشرفت خود و دیگران باشید.
موفق باشید.