• شماره ركورد
    11242
  • شماره راهنما(اين فيلد مربوط به كارشناس ميباشد لطفا آن را خالي بگذاريد)
    11242
  • پديد آورنده

    عليرضا اصراري

  • عنوان
    ارايه الگوريتمي براي ناخوانا سازي كد به منظور مقابله با مهندسي معكوس آن
  • مقطع تحصيلي
    كارشناسي ارشد
  • رشته تحصيلي
    كامپيوتر - نرم‌افزار
  • سال تحصيل
    تير 1391
  • تاريخ دفاع
    تير 1391
  • استاد راهنما
    دكتر سعيد پارسا
  • چكيده
    چكيده در بازار رقابتي نرم¬افزار راه¬كارهاي مهندسي معكوس نقش عمده¬اي را دارند. مشاهده شده كه با استفاده از اين راه¬كارها خسارات عمده اي را به سازندگان نرم¬افزار وارد نموده¬اند. لذا، سعي بر آن است كه كد برنامه ها به قسمي ايجاد شود كه امكان مهندسي معكوس وجود نداشته باشد و يا حداقل اين كار را دشوار نمايد. در اين راستا راه¬كارهاي ناخوانا¬سازي كد مطرح مي¬باشند. اين راه¬كارها اغلب با تغيير الگوي ساختارهاي برنامه¬نويسي كار ديكامپايل نمودن كد را بسيار پيچيده مي¬كنند. ديكامپايلرها معمولاً با در دست داشتن الگوي ساختار كلي دستورالعملها سعي به يافتن اين الگوها در داخل كد برنامه¬ها دارند. اما در كد ناخوانا شده اين امكان وجود ندارد. البته مشاهده شده كه براي اغلب راه¬كارهاي ناخوانا¬سازي كد روش¬هايي براي رفع ناخوانايي از كد ناخوانا-شده بوجود آمده است. در اين پروژه با پيچيده¬سازي روند اجراي كد برنامه با استفاده از پرش¬هاي شرطي اضافه شده به آن امكان رفع ناخوانايي و در نتيجه ديكامپايل كردن كد را تا حد زيادي كاهش داده¬ايم. همچنين با استفاده از راه¬كارهاي ناخواناسازي لغوي كار تشخيص موقعيت عبارات زايد در كد براي يك انسان بسيار سخت شده است. در الگوريتم¬هاي مشابه معمولا از پرش-هاي غيرشرطي براي افزودن كدهاي زايد استفاده مي¬گردد و يا تنها چند پرش متوالي انجام شده و در نهايت روند اجرا به جايگاه اصلي خويش برمي¬گردد. ما در اين پروژه با ايجاد پرش¬هاي شرطي هدفدار و مبهم كردن خط سير ادامه برنامه با موازي كردن دو قطعه كد كاملاً برابر از لحاظ عملكرد ولي متفاوت در ظاهر الگوريتم جديدي در اين زمينه ارائه نموده¬ايم. واژه‌هاي كليدي: ناخوانا¬سازي، ناخوانايي¬زدايي، مهندسي معكوس، محافظت از نرم¬افزار.