0
0

مهندسی معکوس چیست ؟ (Reverse Engineering)

3200 بازدید

 

.:: مهندسی معکوس چیست ؟ ::.

 

مهندسی معکوس چیست ؟

» مهندسی معکوس ، به تجزیه یک شی (object) پس از بررسی دقیق ساختار آن
برای درک نحوه کار برای تکثیر یا به روزرسانی شی اشاره دارد. هم اکنون مهندسی معکوس به طور گسترده ای در بخش مهندسی نرم افزار استفاده می شود.

 

در عصر اطلاعات دیجیتال مهندسی معکوس ابزاری شده است که می تواند
به عنوان راهی برای ایجاد محصولات سازگار ارزان تر از محصولات موجود یا حتی در برخی موارد رایگان
تغییر منحصر به فرد نرم افزار و تبادل دانش در نتیجه به ساخت محصولات بهتر، قابل اعتماد و مطمئن استفاده کرد می تواند به جنبه های مختلف نرم افزار و توسعه سخت افزار برای درک نحوه رفتار آنها در شرایط مختلف، بازیابی کد منبع گمشده، رفع مشکلات، تطبیق برنامه های نرم افزاری موجود با سخت افزار جدید و غیره اعمال شود.

 

مهندسی معکوس چیست ؟

 

درمورد مهندسی معکوس بیشتر بدانید..

» همچنین استفاده از مهندسی معکوس برای شناسایی محتوای مخرب در کد منبع یک نرم افزار
مانند ویروس ها، یا آشکار ساختن نقص های امنیتی (بکدور، ویروس، تنظیمات نادرست) و رفع مشکلات احتمالی حریم خصوصی اعمال می شود.

 

محققان همچنین می توانند با استفاده از این تکنیک بدافزار مهندسی را معکوس کنند
تا بفهمند چگونه این ویژگی برای باطل کردن خصوصیات آن ، شناسایی صاحب احتمالی آن و استفاده از دانش به دست آمده برای به روزرسانی پایگاه داده های ویروس و تهیه اقدامات تخفیف برای حملات بعدی بدافزار استفاده می شود.

 

قانونی بودن مهندسی معکوس

» اگرچه مهندسی معکوس یک نمونه اولیه یا کد منبع یک برنامه قبل از انتشار آن
منجر به عواقب قانونی خواهد شد که ثابت شده آن است. قانون ثبت اختراع یکی از قوانینی است که در صورت جلوگیری از کپی برداری از یک اختراع، برای مهندسی معکوس، از اختراعات محافظت می کند. در عوض اگر محصول به عنوان حق ثبت اختراع فاش شود توسعه دهنده باید تمام جزئیات فنی را فاش کند. دادگاه عالی ایالات متحده آمریكا استانداردهایی را تعیین كرد كه از ابتدای ورود بسیاری از اختراعات نرم افزاری برای حمایت از حق ثبت اختراع جلوگیری می كند.

 

بیشتر بدانید..

» قانون کپی رایت از نرم افزار هم در برابر کپی برداری مستقیم و هم از روی تعریف کوتاه جلوگیری می کند.
این قانون از جزئیاتی مانند گرافیک نرم افزار، طراحی رابط، ساختار پرونده و سازماندهی و غیره محافظت می کند. قانون کپی رایت همچنین از بازسازی کد نرم افزار محافظت می کند شخص ثالث می تواند هنگام کپی از عناصر اصلی نرم افزار اصلی قانون را نقض کند حتی اگر کد اصلی را خط به خط شامل نشود.

 

با این حال توسعه دهنده مجبور است کد منبع را به عنوان بخشی از مراحل ثبت نام فاش کند.
نکته منفی این قانون این است که پرونده ای در مورد نقض احتمالی کپی رایت باز شود توسعه دهنده باید اثبات کند که دستگاه کپی به کد منبع خود دسترسی داشته در حالی که اثبات می کند کد کپی شده مشابه آن است.

 

مهندسی معکوس

 

بررسی اجمالی ابزارهای مهندسی معکوس

» ابزارهای مهندسی معکوس برای “Framework” یک هکر توسعه دهنده نرم افزار و یک محقق امنیتی ضروری است.
با استفاده از مهندسی معکوس، هکرها می توانند هر سیستم امنیتی را به خطر بیندازند استفاده از آن برنامه های مهندسی معکوس به آنها امکان می دهد داده ها را به لطف توسعه دستگاه های دیجیتال سازی به شکل مفیدی دستکاری کنند.

 

برای دستیابی به بالاترین سطح خود نیاز به دانش مناسب همراه با ابزار مناسب دارد.
انواع مختلفی از ابزارهای Reverse Engineering وجود دارد و می توان آنها را برای استفاده های مختلف به دسته هایی تقسیم کرد که می تواند ردیابی برنامه در زمان واقعی کالبد شکافی کدهای باینری به کدهای مونتاژ مشاهده و ویرایش باینری ها یا منابع تعبیه شده در پرونده های EXE و غیره باشد.

 

جداکننده ها و پاک کننده ها

» هنگامی که یک کاربر می داند با چه کاری سر و کار دارد به این معنی که
نرم افزار مورد نظر از چه زبان برنامه نویسی و کامپایلری استفاده می کند می تواند شروع به تجزیه و تحلیل آن کند، وظیفه او این است که فایل کامپایل شده باینری را تجزیه و تحلیل کند و ساختار کد منبع خود را به گونه ای نشان دهد که انسان بتواند آن را درک کند.

 

با استخراج رشته ها، توابع، کتابخانه ها و غیره، کاربر می تواند
بفهمد چه قطعاتی از کد به آنها ارجاع داده می شود و چه توابع سیستم عامل توسط
برنامه همراه با چه توابع صادر می شود. جداکنندگان می توانند با تجزیه و تحلیل اینکه زبان به چه زبان سطح بالایی تدوین شده است به ما نشان دهند که کد کد برنامه در قالب x64 یا x86 چیست. استفاده از decompiler ها برای ایجاد مجدد کد اصلی سطح بالا از کدی است که برنامه کامپایل شده است.

 

دیباگرها

» اشکال زدایی با پشتیبانی از رجیسترهای CPU dumping hex برنامه ها و موارد دیگر  می تواند
به برنامه نویسان کمک کند تا برنامه را در زمان واقعی ردیابی کنند، مشاهده کنند که برخی دستورالعمل ها بر محتوای حافظه تأثیر می گذارند، کدهای مونتاژ را در زمان واقعی ویرایش می کنند و خطاهای احتمالی را تشخیص می دهند.

 

وقتی برنامه متن باز است اشکال زدایی از کد سطح بالا در مقایسه با زمانی
که به کد منبع دسترسی ندارید آسان است. اشکال زدایی اختصاصی که آنالیز پیشرفته ساختار های کاربرد باینری را انجام می دهد، می تواند این مسئله را حل کند اما در پایان استفاده از آنها نیاز به دانش زبانهای سطح پایین دارد.

 

ویراستاران هگز

» با توجه به نیازهای نرم افزار می تواند به توسعه دهنده اجازه دهد
نسخه های باینری را مشاهده یا ویرایش کند تا بتواند اصلاحات یا اصلاحاتی را ایجاد کند.

 

ویرایشگر Hex امکان دستکاری داده های باینری اساسی را که یک پرونده رایانه ای را تشکیل می دهد فراهم می کند.
انواع ویرایشگرهای سحر و جادو بر اساس عملکردها و کاربردهای مختلف آنها وجود دارد، برخی به آنها امکان می دهد ساختار داخلی یک فایل را به صورت تصویری نمایش دهند.

 

مهندسی معکوس چیست ؟

 

ویراستاران منابع

» منابع برنامه های ویندوز مانند آیکون ها، تصاویر، متن های محلی، اطلاعات نسخه
و غیره را می توان در پرونده های PE در محدوده منابع ذخیره کرد. ویرایشگران منابع امکان مشاهده و ویرایش منابعی را که در فایل EXE جاسازی شده اند فراهم می کنند.

 

از آنجا که تمام پرونده های برنامه در قالب EXE یا DLL ذخیره می شوند
درصورتی که توسعه دهنده ای نیاز به تغییر برخی داده ها در برنامه داشته باشد
تا زمانی که اندازه آنها بدون تغییر باقی بماند می توانید آنها را با استفاده از ویرایشگر hex ویرایش کنید. وقتی اندازه آنها (تصاویر بزرگتر، متن طولانی تر) باید تغییر کند یا نیازی به افزودن داده های جدید وجود دارد در این صورت است که از ویرایشگر منابع برای توسعه دهنده استفاده می شود.

 

Identifiers

» وقتی در مورد نحوه ایجاد برنامه مورد نظر اطمینان چندانی نداریم
شناسه ها می توانند به شما کمک کنند این ویژگی می تواند ویژگی های دروغ، نام بخش ها، کتابخانه های وارد شده و غیره را تشخیص دهد.

 

با استفاده از تجزیه و تحلیل شناسه ها، که شامل یک پایگاه امضا برای شناسایی کامپایلرها
کتابخانه های رمزنگاری، سیستم های امنیتی و غیره است. توسعه دهندگان می توانند تصمیم بگیرند که مرحله بعدی آنها باید باشد (به عنوان مثال بسته بندی برنامه).

 

Virtual Environments

» می تواند برای تجزیه و تحلیل برنامه های نرم افزاری ناشناخته / مشکوک استفاده شود.
با اجرای برنامه ناشناخته در یک محیط کنترل نشده در صورت اجرای یک محموله در پس زمینه می تواند آسیب جبران ناپذیری ایجاد کند، بنابراین هنگام کار با یک نرم افزار ناشناخته استفاده از یک محیط مجازی یک امر ضروری است ، بنابراین ما می توانیم از اجرای ایمن و ایمن استفاده کنیم. ابتدا در آن محیط تجزیه و تحلیل کنید.

 

 

مهندسی اجتماعی چیست؟ (هنر فریب) + ویدیو آموزشی کلیک کنید !

 

5 3 votes
امتیازدهی به مقاله
آیا این مطلب را می پسندید؟
https://blacksecurityteam.com/?p=24263
اشتراک گذاری:
واتساپتوییترفیسبوکپینترستلینکدین
مهدی حسنی
در حال یادگیری ..........
مطالب بیشتر
برچسب ها:
اشتراک در
اطلاع از
guest
0 نظرات
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x