بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > نرم افزار - سخت افزار و بازیهای کامپیوتری > دانلود نرم افزار و برنامه های کاربردی applications

دانلود نرم افزار و برنامه های کاربردی applications در این تالار به معرفی پرسش و پاسخ و دانلود نرم افزار های مختلف بپردازید (دانلود برنامه)

 
 
ابزارهای موضوع نحوه نمایش
Prev پست قبلی   پست بعدی Next
  #1  
قدیمی 08-26-2008
دانه کولانه آواتار ها
دانه کولانه دانه کولانه آنلاین نیست.
    مدیر کل سایت
        
کوروش نعلینی
 
تاریخ عضویت: Jun 2007
محل سکونت: کرمانشاه
نوشته ها: 12,700
سپاسها: : 1,382

7,486 سپاس در 1,899 نوشته ایشان در یکماه اخیر
دانه کولانه به Yahoo ارسال پیام
پیش فرض مهندسي‌‌ معكوس‌ ‌در دنياي‌ نرم‌افزار

مهندسي‌‌ معكوس‌ ‌در دنياي‌ نرم‌افزار

در مقالات پيشين به اختصار درباره مهندسي معكوس صحبت كرديم. خوب است كمي بيشتر به اين مساله بپردازيم تا با شناخت بهتر زمينه‌هاي كاربرد آن بتوانيم به فعاليت در آن رابطه پرداخته و دانش خود را در جاي مناسب به‌كار گيريم.
مفهوم مهندسي معكوس‌
به هر گونه تلاش و فعاليت در راستاي رسيدن از مراحل بالاتر طراحي و توليد به يك يا چند مرحله پايين‌تر، مهندسي معكوس گويند. اين مفهوم در تمامي شاخه‌ها و زمينه‌هاي مهندسي از جمله نرم‌افزار و سخت‌افزار مطرح است. براي مثال دستيابي به ايده‌ها و روش‌هاي توليد يك محصول، از نمونه محصول نهايي نمونه‌اي از مهندسي معكوس است.

يكي از اهداف مهندسي معكوس، شناسايي اجزاي سازنده يك محصول و روابط بين ‌آنهاست كه گاهي از آن اجزا براي ساخت يك محصول جديد نيز بهره گرفته مي‌شود.

گاهي نيز به‌منظور ايجاد تغييرات در سيستمي است كه طرح و اجزاي اوليه آن در دسترس نيست. اين كار كه به‌منظور مطابقت سيستم جديد با خواسته‌ها و نيازهاي جديد صورت مي‌گيرد، مهندسي دوباره(Reengineering) نيز ناميده مي‌شود. همچنين با اين كار مي‌توان مشكلات موجود در يك سيستم را رديابي و بررسي كرد: طي بررسي يك سيستم مي‌توان به مستندسازي آن سيستم نيز پرداخت تا با ايجاد درك بهتر از سيستم در جهت بهبود آن گام برداشت.

البته بايد توجه داشت كه به‌كارگيري فنون مهندسي معكوس در هر رشته‌اي، دشواري‌ها و مشكلات خاص خود را دارد و به ابزار و امكانات خاصي نياز دارد و گاهي با وجود كامل بودن ابزار و امكانات ممكن است نتيجه مطلوب نهايي حاصل نشود. بنابراين در به‌كارگيري اين فنون بايد تمامي هزينه‌ها و زمان مصرفي و نتيجه نهايي در نظر گرفته شوند. به‌عبارتي بايد توجه داشت كه ميزان هزينه مورد نظر در مقابل دسترسي به چه هدفي صرف مي‌شود.

در ادامه تلاش خواهيم كرد كه به چند مورد از كاربردهاي مهندسي معكوس در شاخه نرم‌افزار اشاره‌اي كوتاه داشته باشيم تا هدف از اين شاخه از علم رايانه‌ نيز تا حدي روش شود.

كشف رمزها و كدها
بايد توجه داشت كه از هر ابزاري مي‌توان در راه خوب يا بد استفاده كرد. اين كه شخص از مهارت خود و ابزارهاي موجود استفاده نادرست كند، خود مسوول آن كار خواهد بود.

معمولا كشف كدها يا شكستن رمز، ذهن را به سمت اعمال غيرقانوني مي‌برد. كشف كدها و رمزها و كدهاي يك نرم‌افزار بانك از جمله اين موارد است. اما شكستن رمز هميشه بد و غيرقانوني نيست. اغلب اطلاعات رد و بدل شده بين مجرمان نيز رمزگذاري مي‌شود و براي جلوگيري از فعاليت آنها، پليس بايد اطلاعات به‌دست آمده از آنها را كشف رمز كند. بايد توجه داشت كه معمولا عمل رمزگشايي با استفاده از كليد صورت مي‌گيرد و در صورت در دسترس نبودن كليد، ناچار به شكستن رمز يا كشف رمز هستيم. بنابراين خوب است در به‌كارگيري اين اصطلاحات دقت كنيم.

معمولا در شكستن رمزها از تكنيك‌هاي مهندسي معكوس استفاده مي‌شود. بدون استفاده از اين تكنيك‌ها اگر بخواهيم اقدام به كشف رمز كنيم،چاره‌اي جز حدس، آزمون و خطا و يا بررسي كليه حالت‌هاي ممكن (Brute force) نخواهيم داشت كه كار بس زمان‌گير، دشوار و طاقت‌فرساست.

مبارزه با ويروس‌ها
مبارزه با ويروس‌ها و كشف نرم‌افزارهاي مخرب، از ديگر كاربردهاي مهندسي معكوس است. معمولا نويسندگان ويروس‌ها و توليدكنندگان نرم‌افزارهاي مخرب از زبان‌هاي سطح پايين و اغلب از زبان اسمبلي استفاده مي‌كنند. دليل اين امر نيز آن است كه اولا ويروس‌ها قصد دارند به نقاطي از سيستم‌ دسترسي پيدا كنند كه شايد زبان‌هاي سطح با امكان دستيابي به آن را نداشته باشند. در ثاني مي‌خواهند تا جاي ممكن اندازه ويروس كوچك بوده و سرعت اجراي بالايي داشته باشد. پس از نوشتن ويروس آن را به كد ماشين تبديل كرده و اجرا مي‌كنند. حال براي اين‌كه بتوان از كاركرد آن ويروس مطلع شده و جلوي فعاليت آن را بگيريم، بايد با استفاده از تكنيك‌هاي مهندسي معكوس، به كد آن دسترسي پيدا كنيم. در طراحي نرم‌افزارهاي ضدويروس، با استفاده از تكنيك‌هاي گفته شده، به نشانه‌هاي مختص هر ويروس پي برده مي‌شود و با توجه به طريقه عمل آن ويروس، راه‌هاي بازگرداني تغييرات طراحي شده و در نهايت راه از بين بردن آن ويروس تعيين مي‌شود.
تغيير در كار يا ظاهر نرم‌افزار
ممكن است نرم‌افزاري در اختيار داشته باشيم كه كدهاي برنامه‌نويسي آن در دسترس ما نباشد و بخواهيم تغييركوچكي در روند اجراي برنامه اعمال كنيم. همچنين ممكن است بخواهيم تغييري در ظاهر برنامه ايجاد كنيم. حتي برخي اوقات لازم است قابليت‌هاي جديدي به يك نرم‌افزار اضافه شود و يا اشكالات موجود در آن رفع شوند. در كليه اين موارد نيز جز تكنيك‌هاي مهندسي معكوس، راه ديگري نخواهيم داشت. اغلب اين مسايل در مواقعي رخ مي‌دهد كه كد برنامه در دسترس نبوده و شركت توليدكننده نرم‌ افزار نيز ديگر از آن پشتيباني نمي‌كند.

يكي از اين مشكلات، مشكل سال‌2000 (Y2K) بود كه شايد آن را به‌خاطر داشته باشيد. اين مشكل با آغاز هزار جديد به‌وجود آمد و در آن زمان بسياري از سازمان‌ها و كاربران در حال استفاده از نرم‌افزارهايي بودند كه شايد سال‌ها با آن كار كرده بودند و مشكلات آن را رفع كرده و اطلاعات زيادي در آنها جمع‌آوري كرده بودند. بسياري از اين نرم‌‌افزارها به‌علت آن كه قديمي شده بودند، ديگر از جانب شركت توليدكننده، پشتيباني نمي‌شدند و يا شركت‌ها به‌طور كامل منحل شده‌ بودند. اما همچنان براي آن سازمان پركاربرد بودند. با مطرح شدن مشكل سال 2000، شركت‌ها و سازمان‌هاي زيادي بار مالي زيادي را براي رفع اين مشكل با استفاده از تكنيك‌هاي مهندسي معكوس، متحمل شدند.

طراحي مجدد
يكي از كاربردها و زمينه‌هاي فعاليت براي مهندسي معكوس كه بسياري مفيد است، طراحي مجدد يك نرم‌افزار بر اساس يك نمونه موجود است. اين كار معمولا به‌دلايل زيادي، از جمله تغيير سيستم عامل، صورت مي‌گيرد و كاري بسيار پيچيده و دقيق است كه معمولا به‌صورت كار گروهي و توسط شركت‌هاي بزرگ انجام مي‌شود.

مراحل اين كار كه به دو قسمت مهندسي معكوس و مهندسي مستقيم ‌ (Forward Engineering)تقسيم مي‌شود، به اين صورت است كه ابتدا كليه ايده‌ها و روش‌هاي پياده‌سازي نرم‌افزار مورد نظر تشخيص داده شده و سپس با توجه به اطلاعات به‌دست آمده، نرم‌افزار جديدي طراحي و پياده‌سازي مي‌شود. شايد اين يكي از دشوارترين و مفيدترين زمينه‌هاي كار در مهندسي معكوس باشد.

مستندسازي‌
براي برنامه‌ها و يا توابع كتابخانه‌اي كه بدون كد برنامه‌نويسي عرضه مي‌شودند معمولا مستنداتي نيز وجود ندارد. مانند توابع محلي ويندوزNT كه شامل چندين هزار تابع است كه براي آنها جز چند صفحه اطلاعات ابتدايي، مستنداتي از سوي شركت سازنده يعني مايكروسافت ارايه نشده است. براي مستندسازي اين‌گونه برنامه‌ها يا توابع نيز، تكنيك‌هاي مهندسي معكوس چاره‌ساز خواهند بود.
Crack
يكي از كاربردهاي غيرقانوني مهندسي معكوس، كرك‌كردن يك نرم‌افزار است. معمولا شركت‌هاي توليدكنده نرم‌افزار، كل امكانات مربوط به برنامه را در بسته‌ نرم‌افزاري قرار مي‌دهند.

اما براي مجبور كردن كاربران به خريد برنامه، براي آن محدوديت زماني مي‌گذارند. افراد بسياري هستند كه با نفوذ به اين نرم‌افزارها، محدوديت آن را برداشته و يا كد توليد و تشخيص كليد را از درون برنامه استخراج مي‌كنند و در اختيار ديگران قرار مي‌دهند.

به اين ترتيب كاربران بدون پرداخت هزينه، از نرم‌افزار مورد نظر براي مدت زمان نامحدود استفاده مي‌كنند. البته همه جاي دنيا افرادي وجود دارند كه براي حمايت از توليدكنندگان نرم‌افزار از نسخه‌هاي كرك‌شده استفاده نكرده و اصل آن را خريداري مي‌كنند. مسلما كاربردهاي مهندسي معكوس به همين چند مورد خلاصه نمي‌شود و با توجه به شرايط و زمان‌هاي مختلف مي‌تواند كاربردهاي ديگر و حتي كاربردهاي ديگري نيز داشته باشد.

پارسا ستوده‌نيا
__________________
مرا سر نهان گر شود زير سنگ -- از آن به كه نامم بر آيد به ننگ
به نام نكو گر بميــرم رواست -- مرا نام بايد كه تن مرگ راست



پاسخ با نقل قول
 


کاربران در حال دیدن موضوع: 3 نفر (0 عضو و 3 مهمان)
 

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 07:17 AM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها