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

    محمد هادي علائيان

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