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