آموزش برنامه نویسی ، اموزش برنامه نویسی اندروید

تبلیغات

دسته‌ها


مهندسی معکوس در نرم افزار قسمت دومReviewed by آریانا on Oct 16Rating: 5.0مهندسی معکوس در نرم افزار قسمت دومبا توجه به آنچه گفته شد حال به معرفی و توضیح برخی کاربردهای مهندسی معکوس در نرم افزار می پردازیم.

مهندسی معکوس در نرم افزار

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

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

  1. کشف کدگذاری ها و رمزها

در این زمینه مهندسی معکوس نقش اصلی را بر عهده دارد. بدون استفاده از این تکنیک ها علم رمزنگاری و کشف رمز (Cryptology) در رشته نرم افزار کاری بسیار طاقت فرسا و وقت گیر است که بیشتر بر پایه روش های آزمون و خطا استوار می باشد.

  1. استفاده در مراجع قانونی

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

  1. مبارزه با ویروس ها و کشف نرم افزارهای مخرب

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

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

  1. تغییر در روند اجرایی و یا ظاهر یک نرم افزار

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

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

  1. طراحی مجدد یک نرم افزار

یکی از زمینه های کاری بسیار مفید مهندسی معکوس طراحی مجدد یک نرم افزار بر اساس یک نمونه موجود است. معمولا این کار به دلایل زیادی از جمله تغییر سیستم عامل صورت می گیرد و کاری بسیار پیچیده و دقیق است که معمولا به صورت تیمی و توسط شرکت های بزرگ صورت می گیرد. مراحل این کار که به دو قسمت مهندسی معکوس و مهندسی مستقیم (Forwarde…) تقسیم می شود. به این صورت است که ابتدا کلیه ایده ها و روش های پیاده سازی نرم افزار مورد نظر تشخیص داده شده و سپس با توجه به اطلاعات به دست آمده نرم افزار جدیدی طراحی و ایجاد می شود.

  1. مستندسازی یک نرم افزار موجود

یکی از موارد کاربرد مهندسی معکوس در مستندسازی برنامه ها و یا توابع کتابخانه ای است که بدون سورس کد عرضه می شوند و مستنداتی هم برای آنها موجود نیست. یک نمونه از این موارد توابع محلی ویندوز NT (Native API) است که شامل چندین هزار تابع است که برای آنها جز چند صفحه اطلاعات ابتدایی چیزی ارائه نشده و مستنداتی برای هیچ کدام از آنها از سوی شرکت سازنده یعنی مایکروسافت موجود نمی باشد.

منبع:کتاب CRACK و تکنیک های نفوذ به نرم افزار نوشته مهندس امید غلامی و مهندس سید بهزاد لاجوردی

 

مشخصات

دانـــــلود

  • 57

برچسب ها

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

مطالب پیشنهادی ما

دیدگاه های شما

پاسخ دهید

فرادرس، بزرگ ترین دانشگاه آنلاین ایران
آموزش مبانی برنامه نویسی
آموزش جاوا
آموزش سی شارپ
آموزش شی گرایی در سی شارپ
آموزش ویژوال بیسیک دات نت
آموزش PHP
آموزش پایتون
آموزش برنامه نویسی C
آموزش برنامه نویسی C++
آموزش برنامه نویسی اندروید
آموزش وردپرس
آموزش برنامه نویسی