فرمت فایل : word (قابل ویرایش) تعداد صفحات : 47
فهرست
مقدمه..................................................................................................................................4
تاریخچه کاربردی مهندسی معکوس ..........................................................................................6
مزایا و دستاوردهای مهندسی معکوس......................................................................................10
متدولوژی مهندسی معکوس......................................................................................................12
ضرورت شناخت رفتار فناوری برای انتخاب استراتژی مناسب.........................................................15
نگاهی به مهندسی مجدد..........................................................................................................16
دنیای Crack.........................................................................................................................
معرفی..................................................................................................................................19
Reverse Engineering یا مهندسی معکوس چیست؟...................................................................21
برنامه های امروزی و حفاظت از آنها...........................................................................................22
رابطه Reverse Engineering و Assembly...............................................................................26
نگاهی به کدینک.......................................................................................................................29
مهندسی معکوس و امنیت در دنیای نرم افزار....................................................................................34
نتیجه گیری ...............................................................................................................................40
منابع........................................................................................................................................41
مقدمه :
مهندسی معکوس فرایند اکتشاف فن آوریهای بکار رفته در یک دستگاه، شی و یا سیستم از طریق تحلیل ساختار، عملکرد و وظیفه آن میباشد. معمولاً از این فرایند برای دست یابی به (برای مثال یک دستگاه مکانیکی، قطعه الکترونیکی و یا برنامه نرمافزاری) و تحلیل جزییات نحوه عملکرد آن در نگهداری یا ساخت یک دستگاه یا برنامه مشابه استفاده میشود. حاصل این فرایند مشابه کپی کردن یک چیز از روی اصل آن میباشد.
درک سیستم نرمافزاری بر هر نوع تغییر مقدم است. فرآیند درک، مقدار زیادی از کل زمان صرف شده را در اِعمال تغییر میگیرد. نگهدارندگان دلایلی از جمله مستندات ناصحیح یا قدیمی، نبود مستندات، پیچیدگی سیستم و عدم شناخت کافی از قلمرو را علت فقدان درک صحیح از سیستم میدانند. راه تسهیل این مسایل، خلاصه کردن اطلاعات مربوط به سیستم (مثل تبین مشخصات و طرح) از طریق کد منبع است، بهشکلی که درک آنرا بالا برد.مهندسی معکوس تکنیکی است که میتوان از آن برای این کار استفاده کرد ، مهندسی معکوس به تنهایی منجر به تغییر در برنامه نمیشود، بلکه فقط راه را برای اجرای آسانتر تغییراتِ مطلوب هموار مینماید. تغییرات با استفاده از فنونی چون مهندسی پیشرو، بازسازی، و مهندسی مجدد پیادهسازی میشوند.
هدف از مهندسی معکوس تسهیل در اِعمال تغییر از طریق فهمیدن سیستم نرمافزاری با توجه به ماهیت کار، چگونگی کار و نمایش معماری آن است. بهعنوان اهداف پیگیریِ این مقصود میتوان به ترمیم اطلاعات از دست رفته، تسهیل جابهجایی بین بسترها، بهبود و (یا) تهیهٔ مستندات جدید، استخراج عناصر قابل استفادهٔ مجدد، کاهش تلاش برای نگهداری، مقابله با پیچیدگی، کشف عوارض جانبی، کمک به انتقال به محیط CASE و ایجاد محصولات مشابه یا رقابتی اشاره کرد. از دیگر مزایای مهندسی معکوس کاهش هزینهها و سریع آماده شدن نرم افزار است.
برای مثال هنگامیکه یک خودرو به بازار میآید رقیبان آن شرکت تولیدی ، مدلی از خودرو را تهیه کرده و آن را جداسازی میکنند (Disassembling) تا طرز کار و چگونگی ساخت آن را ببینند و از تکنیکهای آن در تولیدات خود استفاده کنند ؛ یا در مهندسی راه و ساختمان از طرح پلها و ساختمانهای قدیمی که هنوز پابرجا باقی ماندهاند کپی گرفته میشود و در مورد چگونگی ساخت آنها ، مواد اولیه استفاده شده و علل سالم ماندن آن تحقیق میشود تا در طرحهای خود برای استحکام بیشتر استفاده کنند .
در بعضی موارد طراحان ، شکلی از ایدههایشان را با استفاده از گچ ، سفال و ... نشان میدهند (ساخت ماکت) که نیازی به اندازهگیری دقیق ندارد ؛ این در حالیست که مدل کامپیوتری (CAD) نیاز به اندازهگیری دقیق قسمتهای مختلف دارد و تا زمانی که این اندازهها دقیق نباشند وارد کردن آن در CAD بسیار دشوار و حتی ناممکن است ؛ زیرا هیچ تضمینی وجود ندارد که مدل ارائه شده در CAD و مدلهای ساخته شده بعدی با مدل اولیه مطابقت داشته باشند . مهندسی معکوس راه حلی برای این مشکل دارد :