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

درک یک سیستم نرم‏افزاری غالبا به دلایل وجود مستندات ناصحیح یا قدیمی، نبود مستندات و پیچیدگی سیستم دشوار است. راه تسهیل آن، جمع‏آوری و تدوین اطلاعات مربوط به سیستم (مثل تبیین مشخصات و طرح) از طریق کد منبع است. همان‏کاری که توسط مهندسی معکوس میسر می‏گردد. مهندسی معکوس یک سیستم نرم‏افزاری به‏تنهایی منجر به تغییر در برنامه نمی‏شود بلکه فقط راه را برای اجرای آسان‏تر تغییرات مطلوب هموار می‏ نماید. تغییرات با استفاده از فنونی چون بازسازی و مهندسی مجدد پیاده‏سازی می‏شوند.
یکی از مهم‌ترین علومی که در برنامه‌نویسی و مهندسی نرم‌افزار از آن استفاده می‏شود و برای برنامه‌نویسان حرفه‌ای کاربرد فراوان دارد علم مهندسی معکوس است. در واقع برنامه‏نویسان توسط این علم می‏توانند اشکال‌های (باگ‌های) موجود در برنامه خود را پیدا کرده و به رفع آنها بپردازند. علم کرکینگ نیز شاخه‏ای از علم مهندسی معکوس است. از این رو برای درک معنا و مفهوم علم کرکینگ باید با مهندسی معکوس آشنا بود اما برای درک مهندسی معکوس هم باید یک پله عقب‏تر رفت و آن تسلط بر برنامه‏نویسی و مهندسی نرم‏افزار است.
دو روش عمده‏ی مهندسی معکوس نرم‏افزارها عبارتند از:
1)استفاده از دی‏اسمبلر
یکی از روش‏های رایج جهت مهندسی معکوس نرم‏افزار، دی‏اسمبلی است که در آن از یک دی‏اسمبلر استفاده می‏شود. دی‏اسمبلرها برای اولین بار توسط رخنه‏کننده‏های نرم‏افزار نوشته شدند و هدف اصلی آنها تبدیل ساختار کد ماشین به زبان سطح بالاتر (کد اسمبلی) و ترجمه‏ی آن است. دی‏اسمبلی به معنی خواندن کدهای خام زبان ماشین و درک این اطلاعات با اصطلاحات خاص دی‏اسمبلر است. این عمل بر روی تمام برنامه‏های کامپیوتری قابل اعمال است اما درک کدهای اسمبلی معمولا زمان‏بر و دشوار است، مخصوصا برای کسانی که با زبان ماشین آشنا نیستند.
2)استفاده از دی‏کامپایلر
در واقع دی‏کامپایلرها برنامه‏هایی هستند که عمل معکوس کامپایلرها را انجام می‏دهند و کد ماشین یا کد اسمبلی میانی را به کد سطح بالا یا زبان قابل فهم انسان تبدیل می‏نمایند. تعداد مراحل دی‏کامپایل کردن بیشتر از دی‏اسمبلی و نتیجه‏ی آن برای انسان قابل فهم‏تر است. طی مراحل دی‏کامپایل، ابتدا کد ماشین (کد سطح پایین) به کد بایت تبدیل و ترجمه می‏شود. کدبایت، کد استانداردی است که قابل حمل و اجرای بر روی همه‏ی سخت‏افزارهای کامپیوتری بوده، نسبت به کد ماشین دارای سطح بالاتر و نسبت به کد مبدا دارای سطح پایین‏تری است. کدبایت‏ها نظیر کدهای مبدا، به زبان‏های مختلفی نوشته می‏شوند اما برای قابل خواندن و درک شدن توسط انسان باید به کد مبداء زبان مربوطه تبدیل شوند. بنابراین دی‏کامپیایل کردن مستلزم طی دو مرحله‏ی فوق و آشنایی با زبان‏های برنامه‏نویسی است.
مهندسی معکوس ممکن است صرفا به جهت کنجکاوی صورت گیرد چنانکه در محیط‏های آکادمیک چنین است. اما در مواردی که مهندسی معکوس با هدف کسب منفعت انجام می‏شود، ارزیابی هزینه‏ها و منافع نقطه‏ی آغاز اقدامات تحلیلگر مهندسی معکوس خواهد بود. بنابراین علاوه بر اینکه محصول موجود را جهت کشف طراحی آن به دقت مورد مطالعه قرار می‏دهد، باید عوامل غیرمستقیمی را که بر طراحی و تولید محصول با استفاده از نتایج و داده‏های مهندسی معکوس، تاثیر می‏گذارند، به دقت بررسی نماید. خصوصیات و مقتضیات زمانی و مکانی ساخت محصول مورد نظر از جمله این عوامل است. چه بسا محصولی با جنس خاص در کشور الف موفق اما استفاده از آن جنس در کشور ب منجر به شکست در تولید شود. همچنین برخی معتقدند که اگر تعداد محصولات موردنیاز و تولیدشده در کشور دوم بسیار کمتر از کشور اصلی که در حد جهانی و بین المللی فعالیت نموده، باشد، به معنی صرف هزینه‏هایی گزاف و بیهوده بوده که بر مجریان مهندسی معکوس و جامعه کشور دوم تحمیل شده است.
تقسیم‏بندی زیر، از منظر اهداف مختلف مهندسی معکوس ارائه شده است:
«مهندسی معکوس نوآورانه یا خلاقانه» که با هدف افزایش دانش و اطلاعات به منظور تولید محصول جدید، نوآورانه یا ارتقای یک محصول موجود است.
«مهندسی معکوس مقلد» که استفاده از مهندسی معکوس با هدف ساختن مشابه محصول است. در اینجاست که مرز مهندسی معکوس و شبیه‏سازی باریک می‏شود.
«مهندسی معکوس به‏منظور یافتن موارد نقض حق» که روشی مناسب برای تامین دلیل و از مصادیق کاربرد قضایی مهندسی معکوس است.
علاوه بر اهداف فوق که در هر دو عرصه‏ی صنایع تولیدی سنتی ونرم افزارها کاربرد دارند، استفاده از روش مهندسی معکوس با اهداف دیگری نظیر «دستیابی به برهم‏عمل‏پذیری (سازگاری)» و «رفع اشکال‏ها (باگ‏ها)» روز به روز بیشتر می‏شود.
شایسته‏ی ذکر است که در برخی تعاریف ارائه شده از مهندسی معکوس در منابع مورد مطالعه‏ی نگارنده، اهداف تحلیلگر مهندسی معکوس نیز به عنوان مرحله‏ای از مراحل آن در نظر گرفته شده‏ است. اهداف مهندسی معکوس، حسب مورد می‏تواند ارزیابی‏های تحلیلگر را طولانی و دشوارتر یا کوتاه و آسان‏تر نماید. برخی اهداف نیز هزینه‏های مهندسی معکوس را افزایش می‏دهند. به عقیده‏ی نگارنده اگرچه هدف معکوس بر فرایند مهندسی معکوس، زمان و هزینه‏ای که برای آن صرف می‏شود و همچنین مشروعیت آن، بی‏تاثیر نیست، این فرایند با تحصیل داده‏ها و دانش فنی موردنیاز تحلیلگر خاتمه می‏یابد. کثرت اهدافی که برای مهندسی معکوس می‏توان برشمرد موید این است که «فرایند مهندسی معکوس» چیزی متفاوت از «نحوه‏ی استفاده از اطلاعات و دانش تحصیل شده» از این فرایند است.
همانطور که پیش از این نیز اشاره شد، فرایند مهندسی معکوس ممکن است حسب نوع صنعت متفاوت باشد چنانکه در مورد مهندسی معکوس نرم‏افزارها این فرایند کاملا متاثر از ماهیت انتزاعی محصولات این عرصه است. در اینجا به‏منظور آشنایی خواننده با دشواری مهندسی معکوس، فرایند آن را به‏طورکلی و به نحوی که قابلیت اعمال در بیشتر عرصه‏های صنعت را داشته باشد شرح می‏دهیم.
مرحله‏ی اول مهندسی معکوس هر محصول یا فرایندی، تجزیه و تحلیلی اقتصادی را می‏طلبد. به این منظور تحلیلگر مهندسی معکوس اقدام به هدف‏گذاری، جمع‏آوری اطلاعات و سپس ارزیابی اطلاعات و برنامه‏ریزی می‏کند. انجام این اقدامات پیش از شروع مراحل زمان‏بر و پرهزینه‏ی عملیات فنی بسیار ضروری است. در انجام فعالیت‏های صنعتی یکی از مهمترین عوامل پیشرفت کار، مشخص نمودن اهداف انجام یک فعالیت صنعتی است. جمع‏آوری اطلاعات که به‏نظر نخستین گام مهندسی معکوس است، خود مستلزم آگاهی کامل از جنبه‏های مختلف هدف تعیین شده است.
هدف از جمع‏آوری اطلاعات این است که تحصیل اطلاعات و مستندات فنی در حین اجرای مهندسی معکوس آسان گردد. جمع‏آوری دقیق و همه‏جانبه از دوباره‏کاری جلوگیری و در هزینه‏ها موجب صرفه‏جویی می‏شود. این کار چندان آسان نیست و نیازمند فعالیت‏هایی نظیر مستندسازی مداوم، بررسی پیشینه‏ی محصول، شناسایی موردهای مشابه، تحصیل اطلاعات در مورد تولیدکنندگان عرصه‏ی موردنظر، افزایش اطلاعات در مورد استاندارهای فنی و جمع‏آوری نیروهای متخصص است. چنانکه خواهیم دید هر یک از موارد پیش‏گفته، در تمام یا برخی مراحل مهندسی معکوس نقش برجسته‏ی خود را نشان می‏دهند به نحوی که بدون تمهید آن‏ها زمان بیشتر و چه بسا هزینه‏ی بیشتری صرف شود چه به‏منظور تحصیل آنها حین مهندسی معکوس و چه ادامه‏ی مهندسی معکوس بدون آنها. تحلیلگر مهندسی معکوس به‏منظور تکمیل تجزیه و تحلیل اقتصادی خود نیاز به ارزیابی اطلاعات و برنامه‏ریزی دارد. در این مرحله است که تحلیلگر با توجه به سطح اطلاعات به‏دست آمده، هزینه و زمان مهندسی معکوس را تخمین می‏زند. وی به پالایش اطلاعات یعنی تفکیک اطلاعات کارآمد و اطلاعات غیرمفید می‏پردازد. ارزیابی اطلاعات به لحاظ حجم و کارآمدی، مشخص می‏کند که تا چه حد در رسیدن به نتیجه‏ی مطلوب موفق خواهد بود. در پالایش اطلاعات نیز لازم است از رویه‏ها و دستورالعمل‏هایی فنی پیروی شود. همچنین در برنامه‏ریزی به منظور انجام مهندسی معکوس نیز از روش‏هایی استفاده می‏شود نظیر «رسم الگوریتم‏های پیشروی کار». در این روش تحلیلگر با تهیه جداولی و رعایت استاندارهایی ترتیب عملیات، شرط‏های پیشروی کار، جایگزین‏های مواد اولیه، جایگزین‏های فرایندهای تخصصی ساخت (در صورتی که هدف ساخت محصول باشد) و غیره را مشخص می‏کند. می‏بینیم که دانش و تجربه‏ی تحلیلگر مهندسی معکوس چقدر از اهمیت برخوردار است.
مرحله‏ی دوم مهندسی معکوس که به نقش فرایند نزدیک‏تر و ابعاد فنی آن نیز بیشتر است، مرحله‏ی تحلیل عملکرد و همچنین دمونتاژ است. نحوه‏ی انجام دمونتاژ یا از هم‏جدا ساختن ممکن است حسب نوع صنعت متفاوت باشد. در نرم‏افزارها دمونتاژ مستلزم استفاده از روش‏هایی به‏منظور دستیابی به سطوح بالاتر سیستم و کدهای آن باشد. پیش از دمونتاژ، تحلیلگر مهندسی معکوس، باید بداند کاربری محصول چیست، در چه محیطی کار می‏کند، چگونه کار می‏کند، عمر مفید و مدت کارکرد آن چیست و سایر خصیصه‏های محصول. همچنین تحلیلگر در هر مرحله از دمونتاژ باید به یافتن وظیفه و نقش اجزای محصول توجه داشته باشد. فرایند دمونتاژ مستلزم آگاهی تحلیلگر از دستورالعمل‏هایی است به‏نحوی که عدم رعایت آن‏ها مونتاژ مجدد محصول رادشوار یا غیرممکن می‏کند. همین آگاهی است که اقدامات سنجیده‏ی اقتصادی مهندسی معکوس را از جداسازی اجزای یک رادیو توسط یک فرد عادی متمایز می‏کند.

مطلب مرتبط :   منابع تحقیق درمورد اجرای احکام مدنی

دانلود پایان نامه

اینجا فقط تکه های از پایان نامه به صورت رندم (تصادفی) درج می شود که هنگام انتقال از فایل ورد ممکن است باعث به هم ریختگی شود و یا عکس ها ، نمودار ها و جداول درج نشوندبرای دانلود متن کامل پایان نامه ، مقاله ، تحقیق ، پروژه ، پروپوزال ،سمینار مقطع کارشناسی ، ارشد و دکتری در موضوعات مختلف با فرمت ورد می توانید به سایت  40y.ir  مراجعه نمایید.

رشته حقوق همه گرایش ها : عمومی ، جزا و جرم شناسی ، بین الملل،خصوصی…

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

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

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

دسته بندی : پایان نامه حقوق

دیدگاهتان را بنویسید