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

۱۲۰ هزار تومان ۹۰ هزار تومان
افزودن به سبد خرید

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

sellthesis@gmail.com


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


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


چکیده:

روش معمولی که با پکر‌ها برخورد می‌کند، شامل مراحل زیر می‌شود:
۱. یک پکر را شناسایی کنید. برای شناسایی یک پکر، باید آن به یک گروه پکر اختصاص داده شود. انجام این کار به همین آسانی که به نظر می‌رسد نیست. پکرهای بسیاری وجود دارند که کد‌هایشان ثابت است، و با استفاده از رشته‌های ساده قابل شناسایی هستند. اما بسیاری پکر‌ها از کد چندشکلی برای تغییر ظاهرشان استفاده می‌کنند، و برخی از پکر‌ها عمداً از رشته‌های قلابی متعلق به سایر پکر‌ها یا کد کامپایلر استاندارد استفاده می‌کنند، تا برنامه شناسایی کننده را فریب دهند.
۲. یک پکر را تعیین هویت کنید. این مرحله فرا‌تر از شناسایی است. برای تعیین هویت یک پکر، باید آن را در یک نسخه موجود طبقه بندی کنید یا آن را به یک نسخه جدید اختصاص دهید. توانایی تعیین هویت یک پکر، برای آنپک کردن موفق ضروری است، زیرا ممکن است به اندازه کافی اعضای مختلفی در یک گروه وجود داشته باشد که آنپکر مخصوص یک عضو گروه نتواند برای عضوی دیگری از‌‌ همان گروه به کار برده شود.
۳. یک برنامه شناسایی کننده ایجاد کنید. دو مرحله قبلی معمولاً توسط یک انسان، یا برنامه‌هایی مانند برنامه‌های شبکه عصبی که در ارتباط با پکرهای اختصاص داده شده به گروه‌های شناخته شده آموزش دیده‌اند، انجام می‌شدند. این مرحله، در مقابل، نوشتن برنامه‌ای است که عملکردش فقط شناسایی آن گروه، و احتمالاً آن عضو مخصوص است.
۴. یک برنامه آنپکر ایجاد کنید. برخلاف برنامه شناسایی کننده، که هدفش فقط شناسایی پکر است، برنامه آنپکر در واقع اقدامات عکس پکر مربوطه را انجام می‌دهد، و باینری پک شده را تا حد ممکن به شکل اصلی آن، از جمله فراداده‌های آن مانند PE header برای باینری‌های Win32 ، بازیابی می‌کند.
در این پژوهش بر اساس یک ایده جدید می‌خواهیم بدون استفاده از روش¬های معمولی ذکر شده بتوانیم با جلوگیری از آن پک شدن پکر‌ها بدون حضور اشکال زدا‌ها روشی را ابداع نماییم. در این حالت با کمک شناسایی انواع رد پا‌هایی که یک اشکال زدا در محیطی که در آن حضور دارد می‌گذارد می‌توانیم با تغییر محیط به صورتی که نشانه‌های حضور بد افزار را نشان دهد از باز شدن بسته‌ای‌ها جلوگیری نماییم. 


فهرست مطالب

عنوان صفحه
چکیده 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- بررسی نشانه ProcessHeap 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


مقدمه

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


بدافزارهای بسته ای

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

مرور

هیچ دیدگاهی برای این محصول نوشته نشده است .