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