پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها

word 2 MB 31075 125
1392 کارشناسی ارشد مهندسی کامپیوتر
قیمت: ۱۶,۲۵۰ تومان
دانلود فایل
  • بخشی از محتوا
  • وضعیت فهرست و منابع
  • پایان نامه برای دریافت درجه کارشناسی ارشد (M.Sc)

    رشته:  مهندسی کامپیوتر             گرایش:  نرم افزار

    چکیده

    روش معمولی که با پکر‌ ها برخورد می‌کند، شامل مراحل زیر می‌شود:

    ۱.  یک پکر را شناسایی کنید. برای شناسایی یک پکر، باید آن به یک گروه پکر اختصاص داده شود. انجام این کار به همین آسانی که به نظر می‌رسد نیست. پکرهای بسیاری وجود دارند که کد‌هایشان ثابت است، و با استفاده از رشته‌های ساده قابل شناسایی هستند. اما بسیاری پکر‌ها از کد چندشکلی برای تغییر ظاهرشان استفاده می‌کنند، و برخی از پکر‌ها عمداً از رشته‌های قلابی متعلق به سایر پکر‌ها یا کد کامپایلر استاندارد استفاده می‌کنند، تا برنامه شناسایی کننده را فریب دهند.

    ۲. یک پکر را تعیین هویت کنید. این مرحله فرا‌تر از شناسایی است. برای تعیین هویت یک پکر، باید آن را در یک نسخه موجود طبقه بندی کنید یا آن را به یک نسخه جدید اختصاص دهید. توانایی تعیین هویت یک پکر، برای آنپک کردن موفق ضروری است، زیرا ممکن است به اندازه کافی اعضای مختلفی در یک گروه وجود داشته باشد که آنپکر مخصوص یک عضو گروه نتواند برای عضوی دیگری از‌‌ همان گروه به کار برده شود.

    ۳. یک برنامه شناسایی کننده ایجاد کنید. دو مرحله قبلی معمولاً توسط یک انسان، یا برنامه‌هایی مانند برنامه‌های شبکه عصبی که در ارتباط با پکرهای اختصاص داده شده به گروه‌های شناخته شده آموزش دیده‌اند، انجام می‌شدند. این مرحله، در مقابل، نوشتن برنامه‌ای است که عملکردش فقط شناسایی آن گروه، و احتمالاً آن عضو مخصوص است.

    ۴. یک برنامه آنپکر ایجاد کنید. برخلاف برنامه شناسایی کننده، که هدفش فقط شناسایی پکر است، برنامه آنپکر در واقع اقدامات عکس پکر مربوطه را انجام می‌دهد، و باینری پک شده را تا حد ممکن به شکل اصلی آن، از جمله فراداده‌های آن مانند PE header برای باینری‌های  Win32 ، بازیابی می‌کند.

    در این پژوهش بر اساس یک ایده جدید می‌خواهیم بدون استفاده از روش­های معمولی ذکر شده بتوانیم با جلوگیری از آن پک شدن پکر‌ها بدون حضور اشکال زدا‌ها روشی را ابداع نماییم. در این حالت با کمک شناسایی انواع رد پا‌هایی که یک اشکال زدا در محیطی که در آن حضور دارد می‌گذارد می‌توانیم با تغییر محیط به صورتی که نشانه‌های حضور بد افزار را نشان دهد از باز شدن بسته‌ای‌ها جلوگیری نماییم.

    مقدمه

    درصد فزاینده‌ای از برنامه‌ های بدافزاری که به طور کنترل نشده منتشر می‌شوند، توسط پکر‌ها پک می‌شوند. پکر‌ها برنامه‌هایی هستند که شکل باینری ورودی را بدون تغییر دادن معنای اجرایی آن تغییر می­دهند تا انواع جدید بدافزار ایجاد شوند که می‌توانند از ابزارهای شناسایی بدافزارهای مبتنی بر امضاء فرار کنند.

    امروزه نویسندگان بدافزار به جای مستقیماً پیچیده کردن کد بدافزار، بیشتر به پکر‌ها متکی هستند. پکر‌ها برنامه‌هایی هستد که شکل باینری قابل اجرا را به شکلی دیگر تغییر می‌دهند تا با کوچک‌تر شدن و یا داشتن ظاهری متفاوت از شکل اصلی خود، از پویشگرهای ضد ویروس مبتنی بر امضاء فرار کند. در موارد بسیاری، نویسندگان بدافزار به طور مکرر ترکیب‌های متفاوتی از چندین پکر را برای یک بدافزار به کار می‌برند تا به طور سریع تعداد زیادی از باینری‌های دارای اشکال مختلف برای منتشر شدن به طور کنترل نشده، ایجاد شوند. این امر که باینرهای بیشتر و بیشتری پک می‌شوند به طور جدی تأثیر پویشگرهای ضدویروس مبتی بر امضاء را کاهش می‌دهد؛ همچنین منجر به افزایش نمایی اندازه امضای ضدویروس می‌شود، زیرا وقتی برنامه ضدویروس نتواند تهدید پک شده را به طور مؤثری آنپک کند، گزینه‌ای غیر از ایجاد یک امضای جداگانه برای آن تهدید ندارد.

    اندازه گیری دقیق درصد برنامه‌های مخرب (بدافزار) و برنامه‌های بی‌خطر (خوب افزار) که پک می‌شوند، مشکل است. شرکت‌های گوناکون اعداد مختلفی را گزارش کرده‌اند، اما به طور کلی پذیرفته شده است که بیش از ۸۰ درصد بدافزار‌ها پک می‌شوند. این نمونه‌های بدافزار اغلب به جای پک شدن «بسته بندی» می‌شوند، زیرا بسیاری از پکر‌ها شکل اصلی باینری‌های ورودی را به گونه‌ای تغییر می‌دهند که الزاماً شامل فشرده سازی نمی‌شوند.

     

     

    فصل 1

     

    آغاز سخن

     

    1-1-مقدمه

    اولین ویروس­ های کامپیوتری در اوایل دهه ۸۰ ظاهر شدند و اکثراً فایل­های خود تکرار شونده
    ساده­ای بودند که برای سرگرمی و خنده ایجاد شده بودند. در سال ۱۹۸۶ گزارش اولین ویروسی که سیستم عامل ام اس داس مایکروسافت را بر روی کامپیوترهای شخصی مورد هدف قرار داد، منتشر شد. در واقع ویروس Brain به عنوان اولین ویروس از این نوع شناخته می‌شود. همچنین اوایل سال ۱۹۸۶ شاهد اولین ویروس فایلی به نام Virdem و اولین تروجان (برنامه‌ای که به نظر مفید یا بی‌خطر می‌رسد ولی در واقع برای دزدی اطلاعات و یا صدمه زدن به رایانه میزبان طراحی شده است) به نام PC-Write بودیم. تروجان مذکور خود را به عنوان یک برنامه کاربردی و محبوب Word Processor جا زده بود. همچنان که افراد بیشتری از تکنولوژی ویروس‌ها اطلاع پیدا می‌کردند، تعداد ویروس‌ها، تعداد سکو های[1] هدف حملات، پیچیدگی ویروس‌ها و تنوع آن‌ها رو به افزایش پیدا کرد. در یک بازه زمانی ویروس‌ها بر روی سکتورهای راه­اندازی[2] تمرکزکرده و بعد از آن شروع به آلوده سازی ­
    فایل­های اجرایی کردند. در سال ۱۹۸۸ اولین کرم اینترنتی (نوعی از بدافزار که از یک کد خرابکار برای گسترش خودکار از یک رایانه به رایانه دیگر از طریق شبکه استفاده می‌کند) ظاهر شد. کرم Morris منجر به کند شدن قابل توجه ارتباطات اینترنتی شده که در پاسخ به این حمله و تعدادی حملات مشابه، گروه پاسخگویی به رخدادهای رایانه‌ای به منظور حفظ ثبات اینترنت از طریق هماهنگی در پاسخگویی به رخداد‌ها، پایه گذاری شد. گروه مذکور از طرف دانشگاه کارنگی ملون آمریکا پشتیبانی می‌شود. در سال ۱۹۹۰،، به عنوان محلی برای تبادل و به اشتراک گذاشتن دانش نویسندگان ویروس، راه اندازی شد. همچنین اولین کتاب در مورد نوشتن ویروس منتشر شد و اولین ویروس چندریختی (معمولاً به آن chameleon یا Cas پرونده اجرایی قابل حمل r اطلاق می‌شود) گسترش پیدا کرد. یک ویروس چندریختی نوعی از بدافزار است که از تعداد نامحدودی الگوریتم رمزنگاری برای مقابله با تشخیص استفاده می‌کند. ویروس­های چندریختی توانایی تغییر خود در هربار تکرار را دارا می‌باشند. این توانایی آن­ها را از دید برنامه‌های آنتی ویروس مبتنی بر امضا که برای تشخیص ویروس‌ها طراحی شده‌اند، پنهان می‌دارد. به این ترتیب، در اوایل دهه ۹۰ خبر اولین حمله ویروسی چندریختی با نام Tequila منتشر شد و سپس در سال ۱۹۹۲ اولین موتور ویروس چندریختی و ابزار ویروس­نویسی پا به عرصه ظهور گذاشت. بعد از آن ویروس‌ها روز به روز کامل‌تر شدند. برخی ویروس‌ها شروع به دسترسی به دفترچه آدرس‌های ایمیل و ارسال خود به آن آدرس‌ها کردند؛ ویروس‌های ماکرو خود را به فایل‌های برنامه‌های کاربردی مانند آفیس متصل کرده و به آن‌ها حمله می‌کنند؛ و ویروس‌هایی که مشخصاً برای سوءاستفاده از آسیب‌ پذیری‌های سیستم عامل‌ ها و برنامه‌های کاربردی نوشته می‌شوند. ایمیل‌ها، شبکه‌های به اشتراک­گذاری فایل (P2P)، وب سایت‌ها، درایوهای مشترک و آسیب‌پذیری‌های محصولات، همه و همه برای گسترش و حمله ویروس‌ها مورد سوء استفاده قرار می‌گیرند. (راه‌های نفوذ یانقاط سری ورود به شبکه که توسط بدافزار‌ها ایجاد می‌شوند) بر روی سیستم­های آلوده ایجاد شدند تا راه را برای بازگشت مجدد نویسندگان ویروس و هکرها جهت اجرای نرم­افزارهای دلخواه، باز کنند. در این مقاله منظور ما از هکر یک فرد برنامه نویس رایانه یا کاربر آن است که قصد دسترسی به یک رایانه یا شبکه را به صورت غیر قانونی دارد. بعضی از ویروس‌ها دارای موتور ایمیل جاسازی شده هستند که رایانه آلوده را وادار می‌سازد تا مستقیماً از طریق ارسال ایمیل، ویروس را انتشار دهد. همچنین نویسندگان ویروس شروع به طراحی دقیق معماری حمله‌های خود با استفاده از مهندسی اجتماعی کرده‌اند. همراه با این تکامل بدافزار‌ها، آنتی ویروس‌ها نیز به خوبی تکامل پیدا کرده‌اند. در حال حاضر بیشتر آنتی ویروس‌های موجود در بازار بر مبنای امضای ویروس یا‌‌ همان شناسایی مشخصه‌های یک بدافزار برای تشخیص کدهای مضر، عمل می‌کنند. به همین دلیل در فاصله زمانی بین انتشار یک ویروس جدید و شناسایی امضای آن و پخش آن بین آنتی ویروس‌های مختلف، یک رشد ناگهانی در میزان آلوده سازی ویروس مشاهده می‌شود. اما به محض تشخیص امضای آن، روند آلوده سازی سیر نزولی پیدا می‌کند.

     

     

     

     

    1-2- بدافزار های بسته ای [3]

    امروزه نویسندگان بدافزار به جای مستقیماً پیچیده کردن کد بدافزار، بیشتر به بسته‌ای شده متکی هستند. بسته‌ای شده برنامه‌هایی هستد که شکل باینری قابل اجرا را به شکلی دیگر تغییر می‌دهند تا با کوچک‌تر شدن و یا داشتن ظاهری متفاوت از شکل اصلی خود، از پویش­گرهای ضد ویروس مبتنی بر امضاء فرار کند. در موارد بسیاری، نویسندگان بدافزار به طور مکرر ترکیب‌های متفاوتی از چندین بسته‌ای شده را برای یک بدافزار به کار می‌برند تا به طور سریع تعداد زیادی از باینری‌های دارای اشکال مختلف برای منتشر شدن به طور کنترل نشده، ایجاد شوند.

    این امر که باینری‌های بدافزار بیشتر و بیشتری بسته‌ای می‌شوند به طور جدی تأثیر پویشگرهای ضدویروس مبتی بر امضاء را کاهش می‌دهد؛ هم چنین منجر به افزایش نمایی اندازه امضای ضدویروس می‌شود، زیرا وقتی برنامه ضدویروس نتواند تهدید بسته‌ای شده را به طور مؤثری ضد بسته‌ای شده کند، گزینه‌ای غیر از ایجاد یک امضای جداگانه برای آن تهدید ندارد.

     

    1-3- اثر  مخرب بد افزار های بسته ای

    اندازه گیری دقیق درصد برنامه‌های مخرب (بدافزار) و برنامه‌های بی‌خطر (خوب افزار) که بسته‌ای شده می‌شوند، مشکل است. شرکت‌های گوناکون اعداد مختلفی را گزارش کرده‌اند، اما به طور کلی پذیرفته شده است که بیش از ۸۰ درصد بدافزار‌ها بسته‌ای شده می‌شوند. این نمونه‌های بدافزار اغلب به جای بسته‌ای شده «بسته بندی» می‌شوند، زیرا بسیاری از بسته‌ای شده‌ها شکل اصلی باینری‌های ورودی را به گونه‌ای تغییر می‌دهند که الزاماً شامل فشرده سازی نمی‌شوند.

    درصد خیلی کمتری از خوب افزار‌ها بسته‌ای شده می‌شوند. ما نمونه‌های تصادفی از چند هزار فایل قابل اجرا را گرفته‌ایم که در مدت چندین ماه جمع آوری شده بودند و به وسیله بسته‌ای شده‌هایی بسته‌ای شده شده بودند که Symantec آن‌ها را تشخیص می‌دهد و می‌شناسد که چگونه آن‌ها را آنبسته‌ای شده کند، و مجموعه‌ای از پویشگرهای ضدویروس تجاری شرکت‌های مختلفی را در مقابل آن‌ها اجرا کردیم. در حدود ۶۵ درصد این فایل‌های قابل اجرا به عنوان بدافزار شناخته شدند.

    ۳۵ درصد باقیمانده به احتمال زیاد در گروه خوب افزار‌ها قرار می‌گیرند، زیرا این نمونه‌ها بیشتر از یک سال پیش جمع آوری شده بودند و پویشگرهای ضدویروس امروزه باید بتوانند بیشتر برنامه‌های بدافزار را در این مدت شناسایی کنند. به طور واضح، نه تنها بیشتر نمونه‌های بدافزار‌ها بسته‌ای شده می‌شوند، بلکه استفاده از بسته‌ای شده‌ها برای محافظت از خوب افزار‌ها نیز بسیار رایج است.

    همچنین اندازه گیری دقیق تعداد بسته‌ای شده‌های شناخته شده، هم نوع خوب و هم نوع بد آن‌ها، مشکل است. Symantec تعداد بسیار زیادی از بسته‌ای شده‌ها – بیش از ۲۰۰۰ نوع در بیشتر از ۲۰۰ گروه – را جمع آوری کرده است. در میان آن‌ها، Symantec در حال حاضر می‌تواند کد آنبسته‌ای شده را در حدود ۱۲۰۰ بسته‌ای شده متعلق به حدود ۱۵۰ گروه شناسایی کند.

    با این وجود، در میان ۱۵۰ گروه بسته‌ای شده­ی که Symantec آن‌ها را می‌شناسد، تنها کد بسته‌ای شده حدود ۱۱۰ گروه از آن‌ها را دارد، که شامل حدود ۸۰۰ عضو می‌شود. این بدین معنی است که Symantec حدود ۱۲۰۰ عضو در ۹۰ گروه کار عقب مانده دارد، و این عدد روز به روز بزرگتر می‌شود.

     

    1-4-انواع بدافزار های بسته ای شده

    بدون تردید، UPX همچنان پرمصرف‌ترین بسته‌ای شده است. باقیمانده فهرست بستگی به چگونگی جمع آوری فایل‌ها دارد، اما همیشه شامل بسته‌ای شده‌های قدیمی مورد علاقه‌ای مانند ASPack ، FSG ، و Upack  می‌شود. علاوه بر این بسته‌ای شده‌های شناخته شده، تجزیه و تحلیل فایل به طور تصادفی نمونه­گیری شده بالا، حداقل ۳۰ بسته‌ای شده ناشناخته دیگر را مشخص نمود. برخی از آن‌ها گونه‌های فرعی بسته‌ای شده‌های شناخته شده بودند، اما بیشتر آن‌ها بسته‌ای شده‌های سفارشی بودند. جالب اینجاست که برخی از فایل‌های بی‌خطر با بسته‌ای شده‌های سفارشی بسته‌ای شده شده بودند.

     

     

     

    1-4- روش دفاع

    روش معمولی که یک شرکت برنامه ضدویروس مانند Symantec با بسته‌ای شده‌ها برخورد می‌کند، شامل مراحل زیر می‌شود:

    الف-. یک بسته‌ای شده شناسایی کنید.:

    برای شناسایی یک بسته‌ای شده، باید آن به یک گروه بسته‌ای شده اختصاص داده شود. انجام این کار به همین آسانی که به نظر می‌رسد نیست. بسته‌ای شده‌های بسیاری وجود دارند که کد‌هایشان ثابت است، و با استفاده از رشته‌های ساده قابل شناسایی هستند. اما بسیاری بسته‌ای شده‌ها از کد چندشکلی برای تغییر ظاهرشان استفاده می‌کنند، و برخی از بسته‌ای شده‌ها عمداً از رشته‌های قلابی متعلق به سایر بسته‌ای شده‌ها یا کد کامپایلر استاندارد استفاده می‌کنند، تا برنامه‌های شناسایی کننده را فریب دهند.

    ب-. یک بسته‌ای شده را تعیین هویت کنید.:

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

    ج-. یک برنامه شناسایی کننده ایجاد کنید.:

     دو مرحله قبلی معمولاً توسط یک انسان، یا برنامه‌هایی مانند برنامه‌های شبکه عصبی که در ارتباط با بسته‌ای شده‌های اختصاص داده شده به گروه‌های شناخته شده آموزش دیده‌اند، انجام می‌شدند. این مرحله، در مقابل، نوشتن برنامه‌ای است که عملکردش فقط شناسایی آن گروه، و احتمالاً آن عضو خاص است.

    د-. یک برنامه ضد بسته‌ای شده ایجاد کنید.:

     برخلاف برنامه شناسایی کننده، که هدفش فقط شناسایی بسته‌ای شده است، برنامه آنبسته‌ای شده در واقع اقدامات عکس بسته‌ای شده مربوطه را انجام می‌دهد، و باینری بسته‌ای شده شده را تا حد ممکن به شکل اصلی آن، از جمله فراداده‌های آن مانند بر نامه‌های قابل حمل و اجرابرای باینری‌های Win32، بازیابی می‌کند. ایجاد برنامه‌های شناسایی کننده بسته‌ای شده و برنامه‌های آنبسته‌ای شده به تلاش چشمگیری نیاز دارد.

    همانطور که در بالا ذکر شد، Symantec حدود ۱۲۰۰ عضو در ۹۰ گروه کار عقب مانده دارد. افزودن پشتیبانی از آنبسته‌ای شده کردن به یک بسته‌ای شده معمولی، به طور متوسط حدود شش ساعت طول می‌کشد. این بدین معنی است که اگر روزانه پنج نیروی تمام وقت دو آنبسته‌ای شده ایجاد کنند، جبران این کارهای عقب مانده شش ماه طول می‌کشد. با این وجود، در مورد بسته‌ای شده‌های پیچیده مانند Themida ، ممکن است تا شش ماه طول بکشد تا یک نیروی با تجربه بتواند ضد بسته‌ای شده آن را ایجاد کند. بسته‌ای شده‌های دارای این سطح پیچیدگی کم نیستند.

     

    1-5-چگونگی کارکرد بسته ای شده ها

    بیایید از UPX شروع کنیم، که مسلماً در میان ساده‌ترین بسته‌ای شده‌هایی است که امروزه مورد استفاده قرار می‌گیرند. وقتی UPX یک باینری پرونده اجرایی قابل حمل[4] را فشرده می‌کند، با ادغام کردن تمام قسمت‌های آن به استثنای قسمت منبع، در یک قسمت شروع می‌کند. سپس یک نسخه کپی دوباره فرمت شده از جدول ورودی باینری اصلی که دوباره فرمت شده است با هدرپرونده اجرایی قابل حمل و قسمت داده باینری اصلی ترکیب می‌شود.

    داده‌های ترکیب شده سپس در یک قسمت از باینری بسته‌ای شده شده حاصل فشرده می‌شود. هدرپرونده اجرایی قابل حمل اصلی این امکان را برای UPX فراهم می‌سازد تا به طور اختیاری عملیات فشرده سازی را بر عکس کند و یک فایل غیر فشرده شده ایجاد نمایید که دقیقاً شبیه فایل اصلی فشرده نشده است.

    بعد از اینکه UPX یک باینری پرونده اجرایی قابل حمل را فشرده می‌کند، یک باینری پرونده اجرایی قابل حمل جدیدی می‌دهد که سه قسمت دارد. اندازه اولین بخش آن با اندازه ایمیج میزبان اصلی برابر است، - هرچه قابلیت فشرده شده داده‌ها کمتر باشد،

     

    Abstract

    Conventional method of dealing with packers contains the following steps:

    1. Identify a packer. To identify a packer, it should be assigned to a packer group. But it is not as easy as it seems. There are many packers that have fixed code and are detected by the use of simple strings. But a lot of packers use multiform code to change their appearance, and some packers deliberately use fake strings which belong to the other packers, or standard compiler code to deceive the identifier program.

    2. Determine the identity of a packer. This step is beyond recognition. To determine the identity of a packer, it should be classified in an existing version or assigned to a newer version. The ability to determine the identity of a packer is necessary for successful unpacking, because there may be enough different members in a group so that the special unpacker of a group member cannot be used for another member of the same group.

    3. Create an identifier program. The previous two stages are usually performed by a man or programs like neural networks programs that are trained for packers assigned to known groups. On the contrary, this step includes writing a program whose function is only to identify that group and possibly that special member.

    4. Create an unpacker program. Unlike the identifier program which only aims to identify the packer, the unpacker program actually performs the opposite actions of the related packer, and restores the packed binary as much as possible to its original form including its products such as the PE header for the Windows32 binaries.

    In this study, based on a new idea and without using mentioned conventional methods, we want to devise a method to prevent packers from being unpacked without using debuggers. In this case, with identifying the varieties of signs that a debugger leaves in the environment, we can prevent package from being opened by changing the environment so that it shows the signs of malware presence.

     

    Key words: Pack، Unpack، Dll، Api، Stub، Pep.

     

     

  • فهرست:

    چکیده 1

    مقدمه. 2

    فصل  1: آغاز سخن

    1-1-مقدمه. 4

    1-2- بدافزار های بسته ای 6

    1-3- اثر  مخرب بد افزار های بسته ای.. 6

    1-4-انواع بدافزار های بسته ای شده 7

    1-4- روش دفاع. 8

    1-5-چگونگی کارکرد بسته ای شده ها 9

    1-6-انواع ضد بسته ای ها 10

    1-6-1-ضد بسته ای غیر فعال. 11

    1-6-2- ضد بسته فعال. 11

    1-7-فصل های این پژوهش... 12

    1-8-نتیجه گیری.. 12

    فصل 2 : مفاهیم بنیادی

    2-1- مقدمه. 14

    2-2- رابط برنامه نویسی کاربردی.. 14

    2-2-1- اما نقش رابط برنامه نویسی کاربردی در برنامه نویسی.. 15

    2-2-2- علت استفاده از توابع رابط برنامه نویسی کاربردیدربرنامه‌نویسی.. 15

    2-2-3 پرونده های DLL. 16

    2-2-4 مشخصات توابع رابط برنامه نویسی کاربردی.. 18

    2-2-5 ارائه چند کد برخی از توابع رابط برنامه نویسی کاربردی.. 19

    2-3 بلوک محیطی فرآیند. 29

    2-4- جدول آدرس واردات... 32

    2-5- پرونده اجرایی قابل حمل.. 32

    2-5-1 - روند اجرای فایل های پرونده اجرایی قابل حمل.. 34

    فصل 3 : پک و آنپک

    3-1-مقدمه. 37

    3-2-شکل برنامه های بسته ای شده ها 37

    3-3-زیربر نامه باز کننده بسته. 38

    3-4- بارگذاری برنامه قابل اجرا 39

    3-5- تجزیه و تحلیل داده ها ی ورودی‌ 40

    3-6- talijamp. 41

    3-7 محاسبه بی نظمی ها 42

    3-8 غیر بسته ای کردن. 43

    3-8-1 خودکار. 43

    3-8-2-غیر خودکار‌ 44

    3-9- یافتن  نقطه اصلی ورودی.. 46

    3-9-1-استفاده از یک ابزار خودکار در یافتن نقطه ورودی اصلی.. 46

    3-9-2-یافتن نقطه ورودی اصلی بصورت دستی.. 47

    3-10- اصلاح جدول ورودی بطور دستی.. 51

    3-11- راه ها و روش ها برای بسته بندی های رایج.. 53

    3-11-1-UPX1. 53

    3-11-2- PE Compact 54

    3-11-3- ASPack. 54

    3-11-4-  Petit 55

    3-11-5-WinUpack. 56

    3-11-6Themida- 58

    3-12 آنالیز بدون باز کردن کامل.. 59

    3-13-  DLL بسته شده 60

    نتیجه گیری.. 61

    فصل 4 : ضد اشکال زدایی

    4-1- مقدمه. 63

    4-2- آشکار سازی اشکال زدایی.. 63

    4-2-1- به وسیله رابط برنامه نویسی کاربردیویندوز. 63

    4-3- بررسی دستی ساختارها 66

    4-3-1- بررسی نشانه BeingDebugged. 66

    4-3-2- بررسی نشانه Process‌Heap. 68

    4-3-3- بررسی NTGlobalFlag. 69

    4-4- بررسی باقی مانده سیستم. 70

    4-5- تشخیص رفتار اشکال زدا 71

    4-5-1- اسکن INT. 71

    4-5-2-اجرای حاصل جمع کنترل کد. 72

    4-6- بررسی های زمان. 73

    4-6-1- استفاده از دستور rdtsc. 73

    4-6-2- استفاده از Qurey PErformance counter و Get tikcount 74

    4-7- رویارویی با قابلیت‌های اشکال زدا 75

    4-7-1- استفاده از فراخوانی های انبار محلی.. 76

    4-8-استفاده از استثناها 79

    4-9- وارد کردن وقفه ها 80

    4-9-1- وارد کردن INT3. 81

    4-9-2- واردکردنINT2D.. 81

    4-9-3- وارد کردنICE. 82

    4-10- آسیب های اشکال زدا 82

    4-10-1- آسیب های سرآیند. 82

    4-10-2-آسیب output debug string. 85

    4-11- نتیجه گیری.. 85

    فصل 5 : مترسک

    5-1- مقدمه. 88

    5-2- مترسک چیست؟. 88

    5-3- نمودار کلی کار. 90

    5-4- استفاده از رابط برنامه نویسی کاربردی.. 91

    5-3- استفاده از مسیر دستی ساختارها 91

    ۵-۳-۱- الگورینم مترسک با کمک نشانه‌ها 92

    5-3-2- نمودار الگوریتم قبلی.. 93

    5-4- پیاده سازی عملی مترسک... 94

    5-4-2- تابع Get tick count 94

    5-4-3- الگوریتم ساخت مترسک به  کمک تابع Get tick count 95

    5-4-3- نمودار ساخت مترسک به  کمک تابع Get tick count 95

    5-4-4- نمودار الگوریتم ساخت مترسک به کمک تابع Get tick count 96

    5-4-5-ساخت فایل ها 98

    5-4-3- ساخت مترسک با تابع NtGlobalFlag. 101

    فصل 6 : نتیجه گیری

    6-1- مقدمه. 104

    6-2-آنالیز بدافزارها 105

    6-2-1– پویا 105

    6-2-2– ایستا 106

    6-2-3- مطالعه روشهای ضد تحلیل.. 107

    6-3-روش­های مطرح در این پژوهش... 108

    6-4- نتیجه پایانی.. 109

    منابع و مأخذ

    منابع و مأخذ. 111

    چکیده انگلیسی............................................................................................................... 114

     

     

    منبع:

     

    31-Proceedings of ACM symposium on operating systems principles (SOSP); 2007.

    ASPACK SOFTWARE. ASPack for Windows, 2007.bart. FSG: [F]ast [S]mall [G]ood exe packer, 2005.

    Avijit K., Gupta D., “Binary rewriting and call interception for efficientruntime protection against buffer overflow .pdf” , Software :

    Blinkinc. Shrinker 3.4, 2008.

    Das M. Unification-based pointer analysis with directional assignments. In: Proceedings of the 2000 ACM SIGPLAN conference on programming language design and implementation (PLDI); 2000. p. 35e46.

    Decker A, Sancho D, Kharouni L, Goncharov M, McArdle R. Pushdo/Cutwail: a study of the Pushdo/Cutwail botnet. Trend Micro Technical Report. TechRepublic; May 2009.

    Dwing. WinUpack 0.39final, 2006.

    Garfinkel T, Rosenblum M. A virtual machine introspection based architecture for intrusion detection. In: Proceedings of the 10th annual network and distributed system security symposium (NDSS ’03); 2003.

    Hind M. Pointer analysis: haven’t we solved this problem yet? In: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering; 2001. p. 54e61.

    Hund R, Holz T, Freiling FC. Return-oriented rootkits: bypassing kernel code integrity protection mechanisms. In: Proceedings of the 18th USENIX security symposium; 2009.

    Jiang X, Wang X, Xu D. Stealthy malware detection through VMM-based “Out-Of-the-Box” semantic view reconstruction. In: Proceedings of ACM conference on computer and communications security (CCS’07); 2007.

    Jinpeng Wei received a PhD in Computer Science from Georgia Institute of Technology, Atlanta, GA in 2009.\

    Joe Stewart. OllyBonE v0.1, Break-on-Execute for OllyDbg, 2006.

    Kiriansky V, Bruening D, Amarasinghe S. Secure execution via program shepherding. In: Proceedings of the 11th USENIX security symposium; August 2002.

    Kwiatek L, Litawa S. Yet another Rustock analysis. Virus Bulletin; August 2008.

    Lanzi A, Sharif M, Lee W. K-Tracer: a system for extracting kernel malware behavior. In: Proceedings of the 16th annual network and distributed system security symposium (NDSS’09); 2009.

    Litty L, Lagar-Cavilla HA, Lie D. Hypervisor support for identifying covertly executing binaries. In: Proceedings of the 17th USENIX security symposium; 2008.

    Lorenzo Martignoni, Mihai Christodorescu, and Somesh Jha. OmniUnpack: Fast, Generic, and Safe Unpacking of Malware. In 23rd Annual Computer Security Applications Conference (ACSAC), 2007.

    Markus F.X.J. Oberhumer, Lszl Molnr, and John F. Reiser. UPX: the Ultimate Packer for eXecutables, 2007.

    Microsoft. Using timer objects, http://msdn.microsoft.com/en-us/ library/ff565561.aspx.

    Necula GC, McPeak S, Rahul SP. Weimer W. CIL: intermediate language and tools for analysis and transformation of C programs. In: Proceedings of Conference on Compiler Construction (CC), Grenoble, France; Apr. 2002.

    Oreans Technology. Themida: Advanced Windows Software Protection System, 2008.

    Peter Ferrie. Attacks on Virtual Machines. In Proceedings of AVAR Conference, 2006.

    Petroni N, Fraser T, Molina J, Arbaugh WA. Copilotda coprocessor-based kernel runtime integrity monitor. In: Proceedings of USENIX security symposium’04; August 2004.

    Petroni N, Hicks M. Automated detection of persistent kernel control-flow attacks. In: Proceedings of ACM conference on computer and communications security (CCS’07); 2007.

    PRACTICALMALWARE ANALYSIS The Hands-On Guide toDissecting Malicious Software 2012

    Prakash C. What makes the Rustocks tick! In: Proceedings of the 11th association of anti-virus Asia researchers international conference (AVAR’08), New Delhi, India, http://www. sunbeltsecurity.com/dl/WhatMakesRustocksTick.pdf; 2008.

    Riley R, Jiang X, Xu D. Guest-transparent prevention of kernel rootkits with VMM-based memory shadowing. In: Proceedings of the 11th international symposium on recent advances in intrusion detection (RAID’08); 2008.

    Riley R, Jiang X, Xu D. Multi-aspect profiling of kernel rootkit behavior. In: EuroSys ’09: Proceedings of the 4th European conference on computer systems; 2009.

    Rutkowska J. System virginity verifier. In: Hack in the box security conference. Invisible things website,

    http://www.invisiblethings.org/papers/hitb05_virginity_verifier.ppt; September 2005 [accessed March 2011].

    Seshadri A, Luk M, Qu N, Perrig A. SecVisor: a tiny hypervisor to provide lifetime kernel code integrity for commodity OSes. In:

    Shacham H. The geometry of innocent flesh on the bone: return­into-libc without function calls (on the x86). In: Proceedings of ACM conference on computer and communications security (CCS’07); 2007.

    Silicon Realms. Armadillo/SoftwarePassport, 2008.

    Solar Designer. Bugtraq: getting around non-executable stack (and fix). Website, http://seclists.org/bugtraq/1997/Aug/63; 1997 [accessed March 2011].

    Symantec Corporation, 2008.

    Venkataramani G, Roemer B, Solihin Y, Prvulovic M. MemTracker: efficient and programmable support for memory access monitoring and debugging. In: Proceedings of the 13th IEEE international symposium on high-performance computer architecture (HPCA-13); February 2007. p. 273e4.

    VMProtect. VMProtect, 2008

    Wang Y-M, Beck D, Vho B, Roussev R, Verbowski C. Detecting stealth software with Strider GhostBuster. In: Proceedings of the 35th international conference on dependable systems and networks (DSN ’05); 2005.

    Wang Z, Jiang X, Cui W, Ning P. Countering kernel rootkits with lightweight hook protection. In: Proceedings of ACM conference on computer and communications security (CCS ’09); 2009.

    Wang Z, Jiang X, Cui W, Wang X. Countering persistent kernel rootkits through systematic hook discovery. In: Proceedings of the 11th international symposium on recent advances in intrusion detection (RAID’08); 2008.

    Wei J, Payne BD, Giffin J, Pu C. Soft-timer driven transient kernel control flow attacks and defense. In: Proceedings of the 24th annual computer security applications conference; December, 2008.

    Wei J, Pu C. Multiprocessors may reduce system dependability under file-based race condition attacks. In: Proceedings of the 37th annual IEEE/IFIP international conference on dependable systems and networks (DSN’07), Edinburgh, UK; June 25e28, 2007.

    Yin H, Liang Z, Song. D. HookFinder: identifying and understanding malware hooking behaviors. In: Proceedings of the 15th annual network and distributed system security symposium (NDSS’08); 2008.

    Yin H, Poosankam P, Hanna S, Song D. HookScout: proactive binary-centric hook detection. In: Proceedings of the 7th conference on detection of intrusions and malware & vulnerability assessment, Bonn, Germany; July 2010.

    Yin H, Song D, Egele M, Kruegel C, Kirda E. Panorama: capturing system-wide information flow for malware detection and analysis. In: Proceedings of ACM conference on computer and communications security (CCS ’07); 2007.


تحقیق در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, مقاله در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, پروژه دانشجویی در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, پروپوزال در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, تز دکترا در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, تحقیقات دانشجویی درباره پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, مقالات دانشجویی درباره پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, پروژه درباره پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, گزارش سمینار در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, پروژه دانشجویی در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, تحقیق دانش آموزی در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, مقاله دانش آموزی در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها, رساله دکترا در مورد پایان نامه شبیه سازی محیط برای جلوگیری از unpack شدن packer ها

پایان نامه برای دریافت درجه کارشناسی ارشد در رشته کامپیوتر (M.Sc) گرایش نرم افزار چکیده باتوجه به آینده محاسبات ابری و گسترش کاربردهای آن و مزایای موجود در این تکنولوژی، همواره چالش­هایی نیز برای کاربران وجود دارد که یکی از مهمترین و بحث برانگیزترین این چالش­ها حفظ حریم خصوصی می باشد. با توجه به ذخیره­سازی داده­های خصوصی کاربران و داده­های تجاری شرکت­ها در محاسبات ابری، حفظ حریم ...

مقدمه امروزه امنيت شبکه يک مسأله مهم براي ادارات و شرکتهاي دولتي و سازمان هاي کوچک و بزرگ است. تهديدهاي پيشرفته از سوي تروريست هاي فضاي سايبر، کارمندان ناراضي و هکرها رويکردي سيستماتيک را براي امن

پایان‌نامه برای دریافت درجه ی کارشناسی ارشد (‌M.Sc) رشته مهندسی برق –‌ گرایش الکترونیک چکیده توابع درهم‌ساز نوعی تابع چکیده ساز است که در تمامی طراحی‌های رمزنگاری و پروتکل‌های امنیتی جهت تولید اعداد تصادفی و مکانیزم ذخیره رمز عبور احراز هویت و امضای دیجیتالی در دنیای دیجیتال مورداستفاده قرار می‌گیرد. موسسه ملی استاندارد و فناوری، مسابقه‌ای را برای بهبود بخشیدن الگوریتم‌های چکیده ...

پایان نامه جهت اخذ درجه کارشناسی ارشد رشته علوم بهداشتی در تغذیه چکیده زمینه: مطالعات کلینیکی اخیر نشان داده اند که عصاره برگ کنگرفرنگی (سینارا اسکولیموس) اثر محافظت کنندگی بر کبد دارد. لذا این مطالعه با هدف بررسی اثرات درمانی کنگرفرنگی بر بیومارکر های کبدی در بیماران مبتلا به استئاتوهپاتیت غیر الکلی (NASH) طراحی و انجام شد. مواد و روش ها: در این کارآزمایی بالینی دوسوکور، 60 ...

جهت اخذ درجه کارشناسی ارشد رشته مهندسی شیمی چکیده یخ زدگی فن ها در واحدهای عملیاتی از جمله واحد هیدروژن پالایشگاه امام خمینی شازند در فصول سرد سال یکی از مشکلات مهم در این پالایشگاه می باشد. به منظور ارائه راهکار مناسب برای حل این مشکل بایستی تخمینی مناسب از دمای خروجی فن را داشته باشیم. روش شبکه عصبی ابزار محاسباتی بسیار قوی به منظور مدلسازی پدیده ها می باشد. در این تحقیق از یک ...

پایان نامه جهت اخذ درجه کارشناسی ارشد MSc رشته سنجش از دور و سیستم اطلاعات جغرافیایی – منابع آب و خاک چکیده یکی از معضلات پیش­روی مدیریت مراتع و جنگل­ها در نواحی شمالی کشور، آتش­سوزی­هایی می­باشد که خسارت­های زیست محیطی و مالی سنگینی را تحمیل می­کند. مدیریت ریسک آتش­سوزی در ارتباط با اقدامات پیشگیرانه می­تواند عرصه طبیعی را از گزند بسیاری از زیان­های ناشی از آتش­سوزی محافظت کند. ...

پایان­نامه تحصیلی جهت اخذ درجه کارشناسی ارشد رشته: کامپیوتر گرایش نرم افزار چکیده در یک شبکه حسگر که یک سیستم توزیع شده فراگیر است، یکی از موارد مورد بحث همگام‌سازی ارتباطات است. یکی از عمده وظایف همگام‌سازی فرآیند‌ها، انحصار متقابل است. الگوریتم‌های جدید ارایه شده در مقایسه با الگوریتم‌ های قدیمی با عدالت بیشتری عمل می‌نمایند. در این پایان‌نامه یک مدل با استفاده از شبکه‌های ...

پایان نامه مقطع کارشناسی ارشد رشته: مهندسی برق - گرایش قدرت چکیده امروزه با وجود کاربرد وسیع بارهای حساس نظیر، ادوات الکترونیک قدرت، کامپیوترها و بارهای غیرخطی در شبکه‌های توزیع، مسئله کیفیت توان بیشتر مورد توجه قرار گرفته است. اکثر این بارها به تغییرات ولتاژ، نظیر کمبود و بیشبود ولتاژ، حساس بوده و جهت عملکرد مناسب به منبع ولتاژ سینوسی نیاز دارند. بنابراین استفاده از بهسازهای ...

پایان‌نامه کارشناسی ارشد گرایش طراحی کاربردی چکیده در این پایان‌نامه، در زمینه فناوری خلأ، اهمیت، کاربرد و نقش این فناوری در صنعت و پیشبرد تحقیقات علمی، اصطلاحات فنی مرتبط با این فناوری، انواع پمپ‌های خلأ، کاربردها، مزیت و معایب هر یک از پمپ‌های خلأ، اهمیت مطالعه پمپ توربومولکولی محوری و کارهای انجام شده در این زمینه، مطالبی ارائه شده است. تمرکز عمده بر روش‌های شبیه‌سازی جریان ...

پایان نامه جهت اخذ درجه کارشناسی ارشد (M.S.c) رشته: کامپیوتر گرایش: نرم افزار چکیده امروزه استفاده از بات نت ها به عنوان ابزاری جهت فعالیت های مجرمانه با وسعت زیاد در شبکه های کامپیوتری علیه اهداف وسیع مانند یک کشور بسیار افزایش یافته است. بات محیط توزیع شده ای است که از آن، جهت حملات مختلف با حجم وسیع استفاده می شود.از این جهت امروزه تشخیص این نوع حملات به عنوان یکی از مسائل ...

ثبت سفارش