SlideShare a Scribd company logo
1 of 10
Download to read offline
‫پويا‬ ‫تحليل‬ ‫از‬ ‫جلوگيري‬‫افزار‬ ‫نرم‬ ‫ي‬‫ﺑا‬‫ضدديباگر‬ ‫مكانيزم‬‫تحليل‬ ‫محيط‬ ‫يا‬ ‫اﺑزار‬ ‫شناسايي‬ ‫از‬ ‫فارغ‬
*‫رضايي‬ ‫عباسعلي‬١،‫تبريزي‬ ‫جوي‬ ‫نيك‬ ‫نيما‬٢‫زاهدي‬ ‫هادي‬ ‫محمد‬٣
١*
،‫نور‬ ‫پيام‬ ‫دانشگاه‬ ،‫اطﻼعات‬ ‫فناوري‬ ‫و‬ ‫كامپيوتر‬ ‫مهندسي‬ ‫گروه‬ ،‫استاديار‬‫پستي‬ ‫صندوق‬٣٦٩٧-١٩٣٩٥‫ايران‬ ،‫تهران‬
A_rezaee@pnu.ac.ir
٢
‫كارشناس‬‫ارشد‬‫بدافزار‬ ‫تحليلگر‬ ‫و‬ ‫اطﻼعات‬ ‫امنيت‬،‫دوره‬ ‫مدرس‬‫آپا‬ ‫مركز‬ ‫اطﻼعات‬ ‫امنيت‬ ‫هاي‬‫شريف‬ ‫صنعتي‬ ‫دانشگاه‬
nima.nikjoo@gmail.com
٣
‫افزار‬ ‫نرم‬ ‫مهندسي‬ ‫دكتري‬،‫طوسي‬ ‫الدين‬ ‫نصير‬ ‫خواجه‬ ‫صنعتي‬ ‫دانشگاه‬ ‫استاديار‬
zahedi@Kntu.ac.ir
‫چكيده‬
‫اخير‬ ‫سالهاي‬ ‫در‬‫تﻘا‬‫ﺑل‬‫روش‬ ‫و‬ ‫معكوس‬ ‫مهندسي‬ ‫ﺑين‬‫آن‬ ‫ﺑا‬ ‫مﻘاﺑله‬ ‫هاي‬،‫ﻋلﺖ‬ ‫ﺑه‬‫و‬ ‫آمدن‬ ‫پديد‬‫تاثير‬‫جديد‬ ‫موضوﻋات‬‫جمله‬ ‫از‬‫نفوذ‬
‫هك‬،‫تازه‬ ‫مفهوم‬‫شاهد‬ ‫روز‬ ‫هر‬ ‫و‬ ‫يافته‬ ‫اي‬‫پيدايش‬‫روش‬‫مت‬ ‫و‬ ‫جديد‬ ‫هاي‬‫ن‬‫مهندسي‬ ‫حوزه‬ ‫در‬ ‫وﻋي‬‫روش‬ ‫آن‬ ‫ﺑالطبع‬ ‫و‬ ‫معكوس‬‫مﻘاﺑله‬ ‫هاي‬
.‫هستيم‬ ‫آن‬ ‫ﺑا‬‫مﻘاله‬‫معرفي‬ ‫ﺑه‬ ‫رو‬ ‫پيش‬‫روشي‬‫مي‬‫پردازد‬‫مي‬ ‫قادر‬ ‫را‬ ‫نويسان‬ ‫ﺑرنامه‬ ‫كه‬‫محـيط‬ ‫حضـور‬ ‫تشـخيص‬ ‫ﺑه‬ ‫نياز‬ ‫ﺑدون‬ ‫سازد‬
‫حافظه‬ ‫در‬ ‫ديباگرها‬‫پذيري‬ ‫آسيب‬ ‫از‬ ‫استفاده‬ ‫يا‬‫حاضـر‬ ‫حـال‬ ‫در‬ ‫كه‬ ‫منطﻘي‬ ‫روند‬ ‫يك‬ ‫طي‬ ‫ﺑا‬ ‫فﻘط‬ ،‫نشده‬ ‫شناخته‬ ‫يا‬ ‫شده‬ ‫شناخته‬ ‫هاي‬
‫در‬ ‫فﻘط‬‫خانواده‬‫مي‬ ‫اجرا‬ ‫قاﺑل‬ ‫ويندوز‬ ‫ﻋامل‬ ‫سيستم‬‫ﺑاشد‬‫ﺑرنامه‬ ‫اجراي‬ ‫از‬‫نظ‬ ‫مورد‬‫ر‬‫محيط‬ ‫در‬‫و‬ ‫سندﺑاكس‬ ،‫ديباگرها‬ ‫از‬ ‫اﻋم‬ ‫تحليل‬ ‫هاي‬
‫ديگر‬ ‫موارد‬‫آورد‬ ‫ﻋمل‬ ‫ﺑه‬ ‫ممانعﺖ‬.
‫كليدي‬ ‫كلمات‬
‫ضد‬‫مكانيزم‬ ،‫ضدديباگ‬ ،‫تحليل‬‫پذيري‬ ‫آسيب‬ ،‫قرمز‬ ‫قرص‬ ،‫منطﻘي‬ ‫هاي‬‫مهندسي‬ ‫ضد‬ ،‫ديباگرها‬ ‫هاي‬‫سامانه‬ ،‫معكوس‬‫محافظتي‬ ‫هاي‬
١-‫مﻘدمه‬
‫تحلي‬ ‫بهتر‬ ‫عبارت‬ ‫به‬ ‫يا‬ ‫دقيق‬ ‫بررسي‬ ‫براي‬ ‫گام‬ ‫اولين‬‫ـزار‬‫ـ‬‫اف‬ ‫ـرم‬‫ـ‬‫ن‬ ‫ـك‬‫ـ‬‫ي‬ ‫ل‬،
‫ـد‬‫ـ‬‫باش‬ ‫ـي‬‫ـ‬‫م‬ ‫آن‬ ‫ـراي‬‫ـ‬‫اج‬ ‫روند‬ ‫داشتن‬ ‫كنترل‬ ‫تحت‬.‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫رو‬ ‫ـن‬‫ـ‬‫اي‬ ‫از‬
‫ـت‬‫ـ‬‫اس‬ ‫ـديهي‬‫ـ‬‫ب‬ ‫و‬ ‫ـروري‬‫ـ‬‫ض‬ ‫كامﻼ‬ ‫امري‬ ‫هدف‬ ‫اين‬ ‫به‬ ‫نيل‬ ‫براي‬ ‫ها‬ ‫ديباگر‬.
‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـدتا‬‫ـ‬‫عم‬ ‫ـدافزار‬‫ـ‬‫ب‬ ‫تحليلگران‬ ‫و‬ ‫اطﻼعات‬ ‫امنيت‬ ‫متخصصين‬
‫مقابل‬ ‫براي‬ ‫راهكار‬ ‫ارائه‬ ‫زمان‬ ‫كاهش‬ ‫در‬ ‫سعي‬ ‫تحليل‬ ‫جديد‬ ‫روشهاي‬‫ـا‬‫ـ‬‫ب‬ ‫ه‬
‫بدافز‬‫بدفزار‬ ‫ديگر‬ ‫طرف‬ ‫از‬ ‫و‬ ‫دارند‬ ‫ارها‬‫ـده‬‫ـ‬‫پيچي‬ ‫ـدهاي‬‫ـ‬‫مت‬ ‫ارائه‬ ‫با‬ ‫نويسان‬،
‫روند‬‫م‬ ‫شكل‬ ‫هر‬ ‫به‬ ‫را‬ ‫تحليل‬‫مي‬ ‫تر‬ ‫سخت‬ ‫روز‬ ‫به‬ ‫روز‬ ‫مكن‬‫كنند‬.
‫از‬ ‫استفاده‬‫روش‬‫هاي‬‫ضد‬‫ديباگ‬‫در‬‫اين‬‫حوزه‬.‫دارد‬ ‫زيادي‬ ‫بسيار‬ ‫دﻻيل‬
‫هكر‬ ‫و‬ ‫بدافزار‬ ‫اي‬ ‫حرفه‬ ‫هاي‬ ‫نويس‬ ‫برنامه‬ ‫كه‬ ‫عمده‬ ‫دﻻيل‬ ‫از‬ ‫يكي‬ ‫اما‬‫ـا‬‫ـ‬‫ه‬
‫ها‬ ‫روش‬ ‫اين‬ ‫از‬‫بهره‬‫مي‬‫برند‬‫طول‬ ‫افزايش‬ ،‫عمر‬‫يك‬‫برنامه‬‫ـه‬‫ـ‬‫ب‬‫ـور‬‫ـ‬‫منظ‬
‫انجام‬‫فعاليت‬‫خود‬‫به‬‫صورت‬‫مخفيانه‬‫است‬.‫به‬‫عبارت‬،‫ديگر‬‫ـا‬‫ـ‬‫آنه‬‫ـن‬‫ـ‬‫ازاي‬
‫روش‬‫ها‬‫به‬‫منظور‬‫ـه‬‫ـ‬‫اينك‬‫ـين‬‫ـ‬‫متخصص‬‫ـت‬‫ـ‬‫امني‬‫و‬‫ـه‬‫ـ‬‫ب‬ ‫ـد‬‫ـ‬‫نتوانن‬ ‫ـات‬‫ـ‬‫اطﻼع‬
‫ـت‬‫ـ‬‫دس‬ ‫ـه‬‫ـ‬‫ب‬ ‫اطﻼعات‬ ‫آنها‬ ‫توليدي‬ ‫بدافزارهاي‬ ‫عملياتي‬ ‫مقاصد‬ ‫از‬ ‫سادگي‬
‫از‬ ‫آورند‬‫تجزيه‬ ‫فرآيند‬ ،‫ها‬ ‫روش‬ ‫اين‬ ‫لذا‬ .‫كنند‬ ‫مي‬ ‫استفاده‬ ‫ها‬ ‫روش‬ ‫اين‬
‫ـه‬‫ـ‬‫متوج‬ ‫توان‬ ‫مي‬ ‫سختي‬ ‫به‬ ‫و‬ ‫كنند‬ ‫مي‬ ‫دشوار‬ ‫بسيار‬ ‫را‬ ‫بدافزار‬ ‫تحليل‬ ‫و‬
‫ـي‬‫ـ‬‫طراح‬ ‫را‬ ‫ـا‬‫ـ‬‫ه‬ ‫آن‬ ‫كساني‬ ‫چه‬ ‫و‬ ‫است‬ ‫داشته‬ ‫اهدافي‬ ‫چه‬ ‫بدافزار‬ ‫كه‬ ‫شد‬
‫اند‬ ‫كرده‬.
‫ابتدا‬ ‫كه‬ ‫همانطور‬‫بيان‬‫شد‬‫ـاگ‬‫ـ‬‫ديب‬ ‫ـد‬‫ـ‬‫ض‬ ‫ـاي‬‫ـ‬‫ه‬ ‫روش‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫هدف‬ ،
‫دش‬ ،‫كردن‬‫فرآيند‬ ‫ساختن‬ ‫وار‬‫معکوس‬ ‫مهندسی‬‫ـت‬‫ـ‬‫اس‬‫امـا‬
‫را‬ ‫ديبـاگر‬ ‫يک‬ ‫وجود‬ ‫بدافزار‬ ‫يک‬ ‫چگونه‬
‫دهد؟‬ ‫می‬ ‫تشخيص‬‫ـود‬‫ـ‬‫وج‬ ‫زيادي‬ ‫بسيار‬ ‫هاي‬ ‫روش‬ ‫منظور‬ ‫بدين‬
‫پرداخت‬ ‫آنها‬ ‫رايجترين‬ ‫به‬ ‫مقاله‬ ‫اين‬ ‫در‬ ‫كه‬ ‫دارد‬‫ـد‬‫ـ‬‫ش‬ ‫خواهد‬ ‫ه‬.‫ـرض‬‫ـ‬‫ف‬ ‫ـا‬‫ـ‬‫ب‬
‫اين‬‫را‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫ـت‬‫ـ‬‫موفقي‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـت‬‫ـ‬‫توانس‬ ‫روش‬ ‫ـك‬‫ـ‬‫ي‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫با‬ ‫بدافزار‬ ‫كه‬
‫تشخيص‬‫ـوﻻ‬‫ـ‬‫اص‬ ‫داد؟‬ ‫ـد‬‫ـ‬‫خواه‬ ‫انجام‬ ‫كاري‬ ‫چه‬ ‫ادامه‬ ‫در‬ ،‫دهد‬‫ـدافزارها‬‫ـ‬‫ب‬
،‫ـد‬‫ـ‬‫دهن‬ ‫ـي‬‫ـ‬‫م‬ ‫ـخيص‬‫ـ‬‫تش‬ ‫را‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـامي‬‫ـ‬‫هنگ‬‫ـکل‬‫ـ‬‫ش‬ ‫ـه‬‫ـ‬‫ب‬
‫کنند‬ ‫می‬ ‫عمل‬ ‫متفاوتی‬‫ـد‬‫ـ‬‫بتوانن‬ ‫تا‬‫مخـرب‬ ‫هويت‬
‫خودشان‬‫شرايط‬ ‫از‬ ‫برخي‬ ‫در‬ ‫يا‬ ‫دارند‬ ‫نگه‬ ‫مخفي‬ ‫تحليلگر‬ ‫چشم‬ ‫از‬ ‫را‬
‫ـه‬‫ـ‬‫ك‬ ‫شوند‬ ‫مي‬ ‫موجب‬‫ديباگر‬‫متوﻗـﻒ‬‫ـدافزارهاي‬‫ـ‬‫ب‬ ‫در‬ .‫ـود‬‫ـ‬‫ش‬
‫عمليات‬‫از‬ ‫ـتر‬‫ـ‬‫بيش‬ ،‫ـر‬‫ـ‬‫اخي‬ ‫ـاي‬‫ـ‬‫ه‬ ‫ـه‬‫ـ‬‫ده‬ ‫در‬ ‫شده‬ ‫ي‬‫ـده‬‫ـ‬‫كنن‬ ‫ـراه‬‫ـ‬‫گم‬ ‫ـانيزم‬‫ـ‬‫مك‬
‫ـي‬‫ـ‬‫م‬ ‫استفاده‬‫ـود‬‫ـ‬‫ش‬.‫را‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫ـود‬‫ـ‬‫وج‬ ‫ـدافزار‬‫ـ‬‫ب‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـامي‬‫ـ‬‫هنگ‬ ‫ـي‬‫ـ‬‫يعن‬
‫در‬ ‫را‬ ‫ـر‬‫ـ‬‫تحليلگ‬ ‫و‬ ‫ـد‬‫ـ‬‫كن‬ ‫ـي‬‫ـ‬‫م‬ ‫ـار‬‫ـ‬‫رفت‬ ‫متفاوتي‬ ‫شكل‬ ‫به‬ ،‫دهد‬ ‫مي‬ ‫تشخيص‬
‫ده‬ ‫مي‬ ‫قرار‬ ‫شرايطي‬‫به‬ ‫را‬ ‫آن‬ ‫هويت‬ ‫تواند‬ ‫نمي‬ ‫كه‬ ‫د‬‫ـخيص‬‫ـ‬‫تش‬ ‫ـتي‬‫ـ‬‫درس‬
.‫دهد‬‫ب‬‫عﻼوه‬،‫ض‬ ‫هاي‬ ‫مكانيزم‬ ‫ديگر‬‫نا‬ ‫وضعيت‬ ‫به‬ ‫توجه‬ ‫با‬ ‫تحليل‬ ‫د‬‫بسامان‬
‫نرم‬ ‫صنعت‬‫در‬ ‫ـته‬‫ـ‬‫شكس‬ ‫ـل‬‫ـ‬‫قف‬ ‫و‬ ‫ـانوني‬‫ـ‬‫غيرق‬ ‫هاي‬ ‫نسخه‬ ‫از‬ ‫استفاده‬ ‫و‬ ‫افزار‬
‫جهاني‬ ‫سطح‬،‫ـرم‬‫ـ‬‫ن‬ ‫امنيت‬ ‫محصوﻻت‬ ‫گان‬ ‫توليدكننده‬ ‫توجه‬ ‫مورد‬ ‫بسيار‬
‫است‬ ‫گرفته‬ ‫قرار‬ ‫افزاري‬،‫ـن‬‫ـ‬‫اي‬ ‫از‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـا‬‫ـ‬‫ب‬ ‫تا‬‫روش‬‫ـاي‬‫ـ‬‫ه‬ ‫ـه‬‫ـ‬‫ﻻي‬ ‫ـا‬‫ـ‬‫ه‬
‫م‬ ‫و‬ ‫داده‬ ‫افزايش‬ ‫را‬ ‫افزارها‬ ‫نرم‬ ‫امنيتي‬‫ـ‬‫ـ‬‫ب‬ ‫و‬ ‫زمان‬ ‫دت‬‫ـال‬‫ـ‬‫دنب‬ ‫ه‬‫ـه‬‫ـ‬‫هزين‬ ‫آن‬
‫تو‬ ‫ـده‬‫ـ‬‫ش‬ ‫ـت‬‫ـ‬‫محافظ‬ ‫محصوﻻت‬ ‫افزاري‬ ‫نرم‬ ‫قفل‬ ‫شكستن‬‫ـرمين‬‫ـ‬‫مج‬ ‫ـط‬‫ـ‬‫س‬
.‫ـد‬‫ـ‬‫دهن‬ ‫ـزايش‬‫ـ‬‫اف‬ ‫را‬ ‫سايبري‬‫ـرد‬‫ـ‬‫رويك‬ ‫ـه‬‫ـ‬‫مقال‬ ‫ـن‬‫ـ‬‫اي‬ ‫در‬ ‫ـذا‬‫ـ‬‫ل‬‫ـلي‬‫ـ‬‫اص‬‫ـي‬‫ـ‬‫بررس‬
‫ـا‬‫ـ‬‫ي‬ ‫طراحي‬ ‫اطﻼعات‬ ‫امنيت‬ ‫متخصصين‬ ‫توسط‬ ‫بعضا‬ ‫كه‬ ‫پيشين‬ ‫روشهاي‬
‫ـداع‬‫ـ‬‫اب‬ ‫بدافزار‬ ‫گان‬ ‫كننده‬ ‫توليد‬ ‫توسط‬ ‫آنها‬ ‫از‬ ‫برخي‬ ‫و‬ ‫شده‬ ‫كشف‬‫ـده‬‫ـ‬‫ش‬
،‫است‬‫باشد‬ ‫مي‬.‫نقاط‬ ،‫بررسي‬ ‫اتمام‬ ‫با‬‫قوت‬ ‫و‬ ‫ضعف‬‫كدا‬ ‫هر‬‫م‬‫نهايت‬ ‫در‬ ‫و‬
‫ـالش‬‫ـ‬‫چ‬ ‫ـه‬‫ـ‬‫ب‬ ‫روش‬ ‫هر‬ ‫كارايي‬‫ـيده‬‫ـ‬‫كش‬‫ـواه‬‫ـ‬‫خ‬‫ـ‬‫ـ‬‫ش‬‫د‬.‫ـز‬‫ـ‬‫ني‬ ‫روش‬ ‫ـن‬‫ـ‬‫اي‬ ‫ـه‬‫ـ‬‫البت‬
‫كاستي‬‫هاي‬‫را‬ ‫خود‬‫د‬ ‫خواهد‬‫اشت‬‫ممكن‬ ‫حالت‬ ‫بدترين‬ ‫در‬ ‫و‬،‫مي‬‫به‬ ‫تواند‬
‫ـت‬‫ـ‬‫امني‬ ‫ـوزه‬‫ـ‬‫ح‬ ‫در‬ ‫ـال‬‫ـ‬‫فع‬ ‫ـين‬‫ـ‬‫محقق‬ ‫ـش‬‫ـ‬‫بخ‬ ‫ـام‬‫ـ‬‫اله‬ ‫جديد‬ ‫ايده‬ ‫يك‬ ‫عنوان‬
‫ارائه‬ ‫جهت‬ ‫اطﻼعات‬‫تكنيك‬‫اول‬ ‫بخش‬ ‫در‬ ‫مقاله‬ ‫ادامه‬ ‫در‬ ‫باشد؛‬ ‫بهتر‬ ‫هاي‬
‫ـي‬‫ـ‬‫برخ‬ ‫ـا‬‫ـ‬‫ب‬ ‫و‬ ‫داشت‬ ‫خواهيم‬ ‫گذرا‬ ‫نگاهي‬ ‫بحث‬ ‫مورد‬ ‫موضوع‬ ‫تاريخچه‬ ‫به‬
‫شد‬ ‫خواهيم‬ ‫آشنا‬ ‫مفاهيم‬.‫ـت‬‫ـ‬‫فعالي‬ ‫دوم‬ ‫ـش‬‫ـ‬‫بخ‬ ‫در‬ ‫ـپس‬‫ـ‬‫س‬‫ـورت‬‫ـ‬‫ص‬ ‫ـاي‬‫ـ‬‫ه‬
‫حوزه‬ ‫اين‬ ‫در‬ ‫پذيرفته‬‫شوند‬ ‫مي‬ ‫معرفي‬‫سعي‬ ‫ممكن‬ ‫جاي‬ ‫تا‬ ‫و‬‫ـد‬‫ـ‬‫ش‬ ‫ـي‬‫ـ‬‫م‬
‫هركدام‬ ‫ضعف‬ ‫و‬ ‫قوت‬ ‫نقاط‬.‫شود‬ ‫بيان‬‫بخش‬ ‫در‬‫ـوم‬‫ـ‬‫س‬‫ر‬‫ـنهادي‬‫ـ‬‫پيش‬ ‫وش‬
‫ارائه‬‫خواه‬‫شد‬ ‫د‬‫و‬‫ـت‬‫ـ‬‫نهاي‬ ‫در‬‫ـارم‬‫ـ‬‫چه‬ ‫ـش‬‫ـ‬‫بخ‬ ‫در‬‫ـه‬‫ـ‬‫ب‬‫و‬ ‫ـابي‬‫ـ‬‫ارزي‬‫ـه‬‫ـ‬‫مقايس‬
‫روش‬ ‫با‬ ‫شده‬ ‫پيشنهاد‬ ‫روش‬ ‫اجمالي‬‫بيان‬ ‫موجود‬ ‫هاي‬‫مي‬‫شود‬.
٢-‫كارهاي‬‫مرتبط‬
‫شد‬ ‫عنوان‬ ‫پيشتر‬ ‫كه‬ ‫همانطور‬‫روش‬‫ـول‬‫ـ‬‫معم‬ ‫از‬ ‫ـي‬‫ـ‬‫يك‬ ‫ـدديباگ‬‫ـ‬‫ض‬‫ـرين‬‫ـ‬‫ت‬
‫مي‬ ‫تحليل‬ ‫از‬ ‫جلوگيري‬ ‫روشهاي‬‫كنن‬ ‫توليد‬ ‫توسط‬ ‫امروزه‬ ‫كه‬ ‫باشد‬‫دگان‬
‫گسترده‬ ‫شكل‬ ‫به‬ ‫بدافزار‬ ‫نويسان‬ ‫برنامه‬ ‫و‬ ‫امنيتي‬ ‫هاي‬ ‫سيستم‬‫اي‬‫مورد‬
‫مي‬ ‫قرار‬ ‫استفاده‬‫گيرد‬.‫ديباگ‬ ‫محيط‬ ‫شناسايي‬ ‫هاي‬ ‫تكنيك‬ ‫از‬ ‫استفاده‬
‫ـه‬‫ـ‬‫ب‬ ‫ـه‬‫ـ‬‫ك‬ ‫باشد‬ ‫مي‬ ‫ضدتحليل‬ ‫روشهاي‬ ‫ترين‬ ‫ابتدايي‬ ‫و‬ ‫ترين‬ ‫ساده‬ ‫از‬ ‫يكي‬
‫به‬ ‫عمده‬ ‫طور‬٧‫م‬ ‫تقسيم‬ ‫عمده‬ ‫بخش‬‫ي‬‫ادامه‬ ‫در‬ ‫كه‬ ‫شوند‬‫معرفي‬‫ـي‬‫ـ‬‫م‬-
‫شو‬‫ن‬‫د‬[١٠] [٤] [١] [٣]:
١.‫سيستمي‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫بر‬ ‫مبتني‬ ‫ضدديباگ‬ ‫هاي‬ ‫تكنيك‬
)API-Based(.
٢.‫ـتم‬‫ـ‬‫سيس‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـده‬‫ـ‬‫نش‬ ‫مديريت‬ ‫خطاهاي‬ ‫و‬ ‫ها‬ ‫وقفه‬ ‫از‬ ‫استفاده‬
‫دارد‬ ‫را‬ ‫آنها‬ ‫مديريت‬ ‫توانايي‬ ‫عامل‬‫؛‬‫ـه‬‫ـ‬‫ب‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫افزار‬ ‫نرم‬ ‫ولي‬
‫ـد‬‫ـ‬‫تولي‬ ‫يا‬ ‫طراحي‬ ‫در‬ ‫ضعف‬ ‫خاطر‬،‫را‬ ‫ـا‬‫ـ‬‫آنه‬ ‫ـديريت‬‫ـ‬‫م‬ ‫ـايي‬‫ـ‬‫توان‬
‫ندارد‬)Exception-Based(.
٣.‫ساختار‬ ‫از‬ ‫استفاده‬‫فرآيند‬‫نخ‬ ‫و‬ ‫ها‬‫؛‬‫از‬ ‫بخشهايي‬ ‫روند‬ ‫اين‬ ‫طي‬
‫ساختار‬‫فرآيند‬‫ها‬‫ـديريت‬‫ـ‬‫م‬ ‫ـل‬‫ـ‬‫عام‬ ‫سيستم‬ ‫توسط‬ ‫كه‬‫ـده‬‫ـ‬‫ش‬‫و‬
‫شامل‬‫ـد‬‫ـ‬‫مفي‬ ‫اطﻼعات‬‫ـودن‬‫ـ‬‫نب‬ ‫ـا‬‫ـ‬‫ي‬ ‫ـودن‬‫ـ‬‫ب‬ ‫ـاگ‬‫ـ‬‫ديب‬ ‫ـت‬‫ـ‬‫تح‬ ‫از‬ ‫ي‬
‫فرآيند‬‫ـود‬‫ـ‬‫ش‬ ‫ـي‬‫ـ‬‫م‬ ‫ـتفاده‬‫ـ‬‫اس‬ ،‫است‬)Process and Thread
Block Checking(.
٤.‫ـ‬‫ـ‬َ‫ب‬ ‫ـي‬‫ـ‬‫بررس‬ِ‫ر‬‫ـد‬‫ـ‬‫فرآين‬ ‫ـه‬‫ـ‬‫حافظ‬ ‫و‬ ‫ـدها‬‫ـ‬‫ك‬ ‫خط‬‫ـل‬‫ـ‬‫مقاب‬ ‫در‬ ‫ـاري‬‫ـ‬‫ج‬
‫ـيط‬‫ـ‬‫محـ‬ ‫ـط‬‫ـ‬‫توسـ‬ ‫ـده‬‫ـ‬‫شـ‬ ‫ـاد‬‫ـ‬‫ايجـ‬ ‫ـرات‬‫ـ‬‫تغييـ‬‫ـاگر‬‫ـ‬‫ديبـ‬ ‫ـاي‬‫ـ‬‫هـ‬
)RuntimeCode Modification Check(.
٥.‫ـايي‬‫ـ‬‫شناس‬ ‫ـت‬‫ـ‬‫جه‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـان‬‫ـ‬‫ميزب‬ ‫ـتم‬‫ـ‬‫سيس‬ ‫ـزار‬‫ـ‬‫اف‬ ‫سخت‬ ‫بررسي‬
‫محيط‬‫ـرچم‬‫ـ‬‫پ‬ ‫ـه‬‫ـ‬‫مقايس‬ ‫و‬ ‫ـازي‬‫ـ‬‫س‬ ‫ـبيه‬‫ـ‬‫ش‬ ‫هاي‬‫ـگر‬‫ـ‬‫پردازش‬ ‫ـاي‬‫ـ‬‫ه‬
)Register and Hardware based.(
٦.‫قط‬ ‫يك‬ ‫اجراي‬ ‫منطقي‬ ‫طور‬ ‫به‬ ،‫كدها‬ ‫اجراي‬ ‫زمان‬ ‫بررسي‬‫ـه‬‫ـ‬‫ع‬
ُ‫ك‬ ‫ديباگر‬ ‫تحت‬ ‫كد‬‫سيستم‬ ‫توسط‬ ‫و‬ ‫واسطه‬ ‫بدون‬ ‫اجرا‬ ‫از‬ ‫ندتر‬
‫مي‬ ‫عامل‬‫باشد‬)Timing Detection(.
٧.‫مكانيزم‬ ‫از‬ ‫استفاده‬Self-Debugging‫ـد‬‫ـ‬‫فرآين‬ ‫آن‬ ‫ـي‬‫ـ‬‫ط‬ ‫كه‬
ِ‫ر‬‫ديباگ‬ ‫يك‬ ‫توسط‬ ‫نظر‬ ‫مورد‬‫ـده‬‫ـ‬‫ش‬ ‫ـي‬‫ـ‬‫طراح‬ ‫ـيش‬‫ـ‬‫پ‬ ‫از‬،‫ـت‬‫ـ‬‫تح‬
‫مي‬ ‫قرار‬ ‫ديباگ‬‫گيرد‬.‫ـتم‬‫ـ‬‫سيس‬ ‫ـوانين‬‫ـ‬‫ق‬ ‫ـق‬‫ـ‬‫طب‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـايي‬‫ـ‬‫آنج‬ ‫از‬
‫فرآين‬ ‫يك‬ ‫ويندوز‬ ‫عامل‬‫ديباگ‬ ‫قابل‬ ‫ديباگر‬ ‫يك‬ ‫توسط‬ ‫فقط‬ ‫د‬
‫مي‬‫نمي‬ ‫ممكن‬ ‫ثانويه‬ ‫ديباگر‬ ‫اتصال‬ ‫امكان‬ ‫باشد‬.‫شود‬
‫با‬‫اجمالي‬ ‫معرفي‬‫اين‬‫شده‬ ‫عنوان‬ ‫هاي‬ ‫تكنيك‬‫نقاط‬ ‫ادامه‬ ‫در‬‫ضعف‬‫ـر‬‫ـ‬‫ه‬
‫كدام‬‫شد‬ ‫خواهد‬ ‫بيان‬‫ـاي‬‫ـ‬‫ه‬ ‫ـك‬‫ـ‬‫تكني‬ ‫ـر‬‫ـ‬‫بهت‬ ‫ـه‬‫ـ‬‫مقايس‬ ‫ـان‬‫ـ‬‫امك‬ ‫نهايت‬ ‫در‬ ‫تا‬
‫م‬‫پيشنهادي‬ ‫روش‬ ‫با‬ ‫رسوم‬‫فراهم‬.‫شود‬
‫مب‬ ‫روش‬ ‫مزاياي‬ ‫از‬‫كاربري‬ ‫راحتي‬ ‫سيستمي‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫بر‬ ‫تني‬
‫مي‬ ‫آن‬‫باشد‬،‫كه‬‫ـت‬‫ـ‬‫اس‬ ‫ـده‬‫ـ‬‫ش‬ ‫موجب‬‫ـد‬‫ـ‬‫بتوان‬ ‫ـي‬‫ـ‬‫راحت‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـويس‬‫ـ‬‫ن‬ ‫ـه‬‫ـ‬‫برنام‬
‫نمايد‬ ‫سازي‬ ‫پياده‬ ‫را‬ ‫خود‬ ‫ضدتحليل‬ ‫ابتدايي‬ ‫مكانيزم‬.‫ـه‬‫ـ‬‫ب‬ ‫توجه‬ ‫با‬ ‫ليكن‬
‫توابع‬ ‫ساختار‬ ‫تغييرات‬API‫ـتم‬‫ـ‬‫سيس‬ ‫از‬ ‫ـدد‬‫ـ‬‫متع‬ ‫ـاي‬‫ـ‬‫ه‬ ‫نسخه‬ ‫انتشار‬ ‫طي‬
‫ويندوز‬ ‫عامل‬،‫مشكﻼتي‬ ‫با‬ ‫روش‬ ‫اين‬‫ـروز‬‫ـ‬‫ب‬ ‫ـه‬‫ـ‬‫ب‬ ‫نياز‬ ‫جمله‬ ‫از‬ ‫است‬ ‫مواجه‬
‫مكرر‬ ‫رساني‬‫دارد‬‫ـن‬‫ـ‬‫اي‬ ‫ـتندات‬‫ـ‬‫مس‬ ‫بودن‬ ‫عموم‬ ‫دسترس‬ ‫در‬ ‫به‬ ‫توجه‬ ‫با‬ ‫و‬
‫ـه‬‫ـ‬‫برنام‬ ‫از‬ ‫ـوق‬‫ـ‬‫ف‬ ‫هاي‬ ‫فراخواني‬ ‫حذف‬ ‫و‬ ‫ردگيري‬ ،‫شناسايي‬ ‫امكان‬ ،‫توابع‬
‫نفوذگ‬ ‫توسط‬‫ر‬‫مي‬ ‫مقدور‬ ‫سادگي‬ ‫به‬ ‫تحليلگر‬ ‫يا‬.‫باشد‬
‫ـ‬‫ـ‬‫بس‬ ‫در‬ ‫ـده‬‫ـ‬‫نش‬ ‫ـديريت‬‫ـ‬‫م‬ ‫خطاهاي‬ ‫بر‬ ‫مبتني‬ ‫مكانيزم‬ ‫از‬ ‫استفاده‬‫ياري‬
‫مي‬ ‫موارد‬‫و‬ ‫ـي‬‫ـ‬‫سفارش‬ ‫ـاي‬‫ـ‬‫ديباگره‬ ‫ـاد‬‫ـ‬‫ايج‬ ‫ـا‬‫ـ‬‫ب‬ ‫ولي‬ ‫شود‬ ‫واقع‬ ‫مفيد‬ ‫تواند‬
‫ـده‬‫ـ‬‫پرون‬ ‫در‬ ‫ـر‬‫ـ‬‫تغيي‬ ‫ايجاد‬ ‫بدون‬ ‫ميتوان‬ ‫ها‬ ‫وقفه‬ ‫قبال‬ ‫در‬ ‫آنها‬ ‫سازي‬ ‫مقاوم‬
‫روتين‬ ‫تمامي‬ ‫اجرايي‬.‫نمود‬ ‫خنثي‬ ‫را‬ ‫آن‬ ‫ضدديباگ‬ ‫هاي‬
‫داده‬ ‫ساختمان‬ ‫شامل‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫فرآيند‬ ‫يا‬ ‫پروسه‬ ‫هر‬-
‫مي‬ ‫اي‬‫باشد‬)Process Environment Block(.‫ـ‬‫ـ‬‫ه‬‫ـو‬‫ـ‬‫محت‬ ‫ـوك‬‫ـ‬‫بل‬ ‫ر‬‫ا‬‫ي‬
‫ـي‬‫ـ‬‫م‬ ‫ـاربر‬‫ـ‬‫ك‬ ‫نياز‬ ‫صورت‬ ‫در‬ ‫و‬ ‫عامل‬ ‫سيستم‬ ‫استفاده‬ ‫جهت‬ ‫به‬ ‫اطﻼعاتي‬-
‫باشد‬.‫مي‬ ‫اطﻼعات‬ ‫اين‬ ‫از‬‫ـام‬‫ـ‬‫ن‬ ‫ـون‬‫ـ‬‫همچ‬ ‫مواردي‬ ‫به‬ ‫دسترسي‬ ‫براي‬ ‫توان‬
‫اين‬ ‫از‬ ‫مواردي‬ ‫و‬ ‫فرآيند‬ ‫اجرايي‬ ‫مسير‬ ،‫والد‬ ‫فرآيند‬ ‫نام‬ ،‫حافظه‬ ‫در‬ ‫فرآيند‬
‫اشاره‬ ‫دست‬‫داشت‬‫ن‬ ‫عنوان‬ ‫به‬ ‫؛‬‫صورتي‬ ‫در‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫مونه‬
‫ـد‬‫ـ‬‫فرآين‬ ‫ـام‬‫ـ‬‫ن‬ ،‫آن‬ ‫ـد‬‫ـ‬‫وال‬ ‫ـد‬‫ـ‬‫فرآين‬ ‫ـرد‬‫ـ‬‫بگي‬ ‫ـرار‬‫ـ‬‫ق‬ ‫ديباگ‬ ‫تحت‬ ‫فرآيند‬ ‫يك‬ ‫كه‬
‫فرآيند‬ ‫صورت‬ ‫اين‬ ‫غير‬ ‫در‬ ‫بود‬ ‫خواهد‬ ‫ديباگر‬explorer.exe‫ـوان‬‫ـ‬‫عن‬ ‫به‬
‫مي‬ ‫داده‬ ‫تشخيص‬ ‫والد‬ ‫فرآيند‬‫ـي‬‫ـ‬‫م‬ ‫اينرو‬ ‫از‬ ‫شود‬‫ـه‬‫ـ‬‫ب‬ ‫ـي‬‫ـ‬‫دسترس‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـوان‬‫ـ‬‫ت‬
‫آ‬ ‫اطﻼعات‬ ‫استخراج‬ ‫و‬ ‫فوق‬ ‫اي‬ ‫داده‬ ‫ساختار‬‫ـد‬‫ـ‬‫وال‬ ‫ـد‬‫ـ‬‫فرآين‬ ‫ـه‬‫ـ‬‫ك‬ ‫دريافت‬ ‫ن‬
‫توج‬ ‫با‬ ‫ولي‬ .‫خير‬ ‫يا‬ ‫است‬ ‫ديباگر‬ ‫يك‬‫ه‬‫ـوط‬‫ـ‬‫مرب‬ ‫ـاري‬‫ـ‬‫معم‬ ‫به‬‫ـديريت‬‫ـ‬‫م‬ ‫ـه‬‫ـ‬‫ب‬
‫شكل‬ ‫در‬ ‫كه‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫فرآيندهاي‬١‫است‬ ‫شده‬ ‫داده‬ ‫نمايش‬
‫دسترسي‬ ‫قطع‬ ‫با‬‫به‬ ‫كاربردي‬ ‫برنامه‬‫توابع‬API‫ـا‬‫ـ‬‫آنه‬ ‫جايگزيني‬ ‫و‬ ‫اصلي‬
‫مكانيز‬ ‫به‬ ‫كه‬ ‫بازگشتي‬ ‫مقادير‬ ‫جعل‬ ‫يا‬ ‫و‬ ‫جعلي‬ ‫توابع‬ ‫با‬‫م‬Hook‫ـهرت‬‫ـ‬‫ش‬
‫دارد‬‫مي‬‫توان‬‫ـت‬‫ـ‬‫درياف‬ ‫در‬ ‫ـر‬‫ـ‬‫بهت‬ ‫عبارت‬ ‫به‬ ‫يا‬ ‫ديباگر‬ ‫صحيح‬ ‫تشخيص‬ ‫در‬
‫صحيح‬ ‫اطﻼعات‬،‫اخﻼ‬‫كرد‬ ‫ايجاد‬ ‫ل‬.‫ا‬‫ـت‬‫ـ‬‫عل‬ ‫ـه‬‫ـ‬‫ب‬ ‫كه‬ ‫است‬ ‫ذكر‬ ‫به‬ ‫ﻻزم‬ ‫لبته‬
‫تعدد‬‫ـه‬‫ـ‬‫نمون‬ ‫ـي‬‫ـ‬‫بررس‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـا‬‫ـ‬‫تنه‬ ،‫ـوق‬‫ـ‬‫ف‬ ‫شناسايي‬ ‫تكنيك‬ ‫از‬ ‫عبور‬ ‫روشهاي‬
‫باقي‬ ‫از‬ ‫و‬ ‫پرداخته‬ ‫امنيتي‬ ‫سيستم‬ ‫نقض‬ ‫مثال‬ ‫يك‬ ‫عنوان‬ ‫به‬ ‫شده‬ ‫عنوان‬
‫موارد‬‫شود‬ ‫مي‬ ‫صرفنظر‬[١٢].
‫شكل‬١‫فرا‬‫ي‬‫ﻨﺪ‬‫معمول‬‫فراخوان‬‫ي‬‫توابع‬‫ﺳ‬‫ي‬‫ﺴﺘم‬‫ي‬‫توﺳﻂ‬‫برنﺎمﻪ‬‫و‬
‫مﺪ‬‫ي‬‫ر‬‫ي‬‫ﺖ‬‫آن‬‫توﺳﻂ‬‫ﺳ‬‫ي‬‫ﺴﺘﻢ‬‫ﻋﺎمل‬
) ‫شكل‬ ‫در‬ ‫كه‬ ‫همانطور‬٢(،‫است‬ ‫مشخص‬‫ـواني‬‫ـ‬‫فراخ‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـاربردي‬‫ـ‬‫ك‬ ‫برنامه‬
‫ـه‬‫ـ‬‫ب‬ ‫ـل‬‫ـ‬‫عام‬ ‫ـتم‬‫ـ‬‫سيس‬ ‫ـلي‬‫ـ‬‫اص‬ ‫ـاي‬‫ـ‬‫ه‬ ‫ﻻيه‬ ‫به‬ ‫ارجاع‬ ‫جاي‬ ‫به‬ ‫سيستمي‬ ‫توابع‬
‫برنامه‬‫به‬ ‫موسوم‬User-Mode Hook Engine‫ـي‬‫ـ‬‫م‬ ‫ـل‬‫ـ‬‫منتق‬‫ـو‬‫ـ‬‫ش‬‫ن‬‫د‬.‫در‬
‫ـي‬‫ـ‬‫م‬ ‫سيستمي‬ ‫توابع‬ ‫از‬ ‫حاصل‬ ‫هاي‬ ‫خروجي‬ ‫تمامي‬ ‫حالت‬ ‫اين‬‫در‬ ‫ـد‬‫ـ‬‫توان‬
‫شده‬ ‫تغيير‬ ‫دستخوش‬ ‫مذكور‬ ‫بخش‬‫شود‬ ‫داده‬ ‫برگشت‬ ‫اصلي‬ ‫برنامه‬ ‫به‬ ‫و‬.
‫ـايي‬‫ـ‬‫شناس‬ ‫در‬ ‫ـه‬‫ـ‬‫برنام‬ ‫ـحيح‬‫ـ‬‫ص‬ ‫ـت‬‫ـ‬‫فعالي‬ ‫از‬ ‫ـوگيري‬‫ـ‬‫جل‬ ‫باعث‬ ‫ترتيب‬ ‫بدين‬
‫ديباگر‬ ‫محيط‬‫مي‬‫گردد‬[٧].[١١]..
‫شكل‬٢‫نمﺎ‬‫ي‬‫كل‬‫ي‬‫بعﺪ‬‫از‬‫قرار‬‫ﮔرفﺘﻦ‬‫ي‬‫ك‬‫برنﺎمﻪ‬Hook‫كﻨﻨﺪه‬‫توابع‬
‫ﺳ‬‫ي‬‫ﺴﺘم‬‫ي‬‫مﺎب‬‫ي‬‫ﻦ‬‫برنﺎمﻪ‬‫كﺎربرد‬‫ي‬‫و‬‫ﺳ‬‫ي‬‫ﺴﺘﻢ‬‫ﻋﺎمل‬
‫مكانيزم‬ ‫ساير‬ ‫از‬‫امروزه‬ ‫كه‬ ‫ضدديباگ‬ ‫هاي‬‫ـي‬‫ـ‬‫م‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـدرت‬‫ـ‬‫ن‬ ‫به‬‫ـود‬‫ـ‬‫ش‬
‫بررسي‬‫مقدار‬ ‫مرتب‬Integrityُ‫ك‬‫حافظه‬ ‫در‬ ‫دها‬‫مي‬ ‫اجرا‬ ‫از‬ ‫پس‬ ‫و‬‫باشد‬‫؛‬
‫در‬ ‫تا‬‫ـان‬‫ـ‬‫امك‬ ‫ـاظر‬‫ـ‬‫ن‬ ‫ـه‬‫ـ‬‫برنام‬ ‫هر‬ ‫يا‬ ‫ديباگر‬ ‫توسط‬ ‫توقف‬ ‫نقاط‬ ‫ايجاد‬ ‫صورت‬
‫گردد‬ ‫فراهم‬ ‫شناسايي‬.‫در‬ ‫ـاﻻ‬‫ـ‬‫ب‬ ‫ـيار‬‫ـ‬‫بس‬ ‫ـربار‬‫ـ‬‫س‬ ‫ايجاد‬ ‫علت‬ ‫به‬ ‫مكانيزم‬ ‫اين‬
‫ميزبان‬ ‫سيستم‬،‫و‬ ‫دارد‬ ‫كمي‬ ‫بسيار‬ ‫كاربرد‬‫صرفا‬‫خيلي‬ ‫موارد‬ ‫در‬‫محدود‬
‫مي‬ ‫چشم‬ ‫به‬ ‫بدافزارها‬ ‫از‬ ‫ابتدايي‬ ‫و‬.‫خورد‬
‫بحث‬ ‫مورد‬ ‫بعدي‬ ‫روش‬،‫موس‬ ‫مكانيزم‬‫قرص‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫وم‬‫ـز‬‫ـ‬‫قرم‬ ‫ـاي‬‫ـ‬‫ه‬
‫مي‬‫نرم‬ ‫يا‬ ‫بدافزار‬ ‫آن‬ ‫طي‬ ‫كه‬ ‫باشد‬‫محيط‬ ‫در‬ ‫حضور‬ ‫به‬ ‫تمايل‬ ‫كه‬ ‫افزاري‬-
‫ـذيري‬‫ـ‬‫پ‬ ‫ـيب‬‫ـ‬‫آس‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫باشد‬ ‫نداشته‬ ‫را‬ ‫ساز‬ ‫شبيه‬ ‫هاي‬‫ـن‬‫ـ‬‫اي‬ ‫ـاي‬‫ـ‬‫ه‬
‫محيط‬‫ـاطر‬‫ـ‬‫خ‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـاه‬‫ـ‬‫گ‬ ‫و‬ ‫ـاز‬‫ـ‬‫س‬ ‫ـبيه‬‫ـ‬‫ش‬ ‫ـاري‬‫ـ‬‫معم‬ ‫ـوع‬‫ـ‬‫ن‬ ‫ـت‬‫ـ‬‫عل‬ ‫به‬ ‫گاه‬ ‫كه‬ ‫ها‬
‫ـتفا‬‫ـ‬‫اس‬ ‫ـوء‬‫ـ‬‫س‬ ‫ـد‬‫ـ‬‫ان‬ ‫شده‬ ‫ايجاد‬ ‫نويسي‬ ‫برنامه‬ ‫اشتباهات‬‫ـا‬‫ـ‬‫نهايت‬ ‫و‬ ‫ـرده‬‫ـ‬‫ك‬ ‫ده‬
‫ـي‬‫ـ‬‫م‬ ‫تشخيص‬ ‫را‬ ‫شده‬ ‫سازي‬ ‫شبيه‬ ‫يا‬ ‫واقعي‬ ‫محيط‬ ‫در‬ ‫خود‬ ‫حضور‬‫ـد‬‫ـ‬‫ده‬.
‫براي‬‫كسب‬‫ـر‬‫ـ‬‫بهت‬ ‫درك‬‫از‬ ‫ي‬‫ـذكور‬‫ـ‬‫م‬ ‫روش‬،‫مثال‬‫ـه‬‫ـ‬‫ارائ‬ ‫ي‬‫ـي‬‫ـ‬‫م‬.‫ـود‬‫ـ‬‫ش‬‫ـر‬‫ـ‬‫اكث‬
‫همچون‬ ‫مجازي‬ ‫هاي‬ ‫سيستم‬ ‫از‬ ‫معموﻻ‬ ‫بدافزار‬ ‫تحليلگران‬VMWare
‫و‬Virtual Box‫مي‬ ‫استفاده‬ ‫مشابه‬ ‫ابزار‬ ‫و‬‫ـراي‬‫ـ‬‫اج‬ ‫ـورت‬‫ـ‬‫ص‬ ‫در‬ ‫ـا‬‫ـ‬‫ت‬ ‫كنند‬
‫سهوي‬‫ـردد‬‫ـ‬‫نگ‬ ‫وارد‬ ‫آسيب‬ ‫مجموعه‬ ‫اصلي‬ ‫ساخت‬ ‫زير‬ ‫به‬ ‫بدافزار‬ ‫كدهاي‬.
‫محيط‬ ‫در‬ ‫تحليل‬ ‫از‬ ‫گريز‬ ‫براي‬ ‫نيز‬ ‫بدافزارنويسان‬ ‫لذا‬‫مجازي‬ ‫ايزوله‬ ‫هاي‬،
‫ـد‬‫ـ‬‫دارن‬ ‫خود‬ ‫رفتار‬ ‫تغيير‬ ‫نهايت‬ ‫در‬ ‫و‬ ‫آنها‬ ‫شناسايي‬ ‫در‬ ‫سعي‬.‫ـد‬‫ـ‬‫رون‬ ‫ـن‬‫ـ‬‫اي‬،
‫طي‬٢‫مي‬ ‫صورت‬ ‫مجزا‬ ‫مرحله‬‫ـذيرد‬‫ـ‬‫پ‬:‫ـانيزم‬‫ـ‬‫مك‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫اول‬ ‫ـه‬‫ـ‬‫مرحل‬
‫ش‬ ‫ساده‬ ‫هاي‬‫ـام‬‫ـ‬‫ن‬ ‫و‬ ‫ـا‬‫ـ‬‫درايوره‬ ‫حضور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫مجازي‬ ‫محيط‬ ‫ناسايي‬
‫ـي‬‫ـ‬‫م‬ ‫مهمان‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫شده‬ ‫سازي‬ ‫شبيه‬ ‫افزارهاي‬ ‫سخت‬‫ـد‬‫ـ‬‫باش‬‫و‬
‫پذيري‬ ‫آسيب‬ ‫نقاط‬ ‫از‬ ‫استفاده‬ ‫دوم‬ ‫مرحله‬‫ـه‬‫ـ‬‫پرداخت‬ ‫ـا‬‫ـ‬‫آنه‬ ‫ـه‬‫ـ‬‫ب‬ ‫پيشتر‬ ‫كه‬
‫است‬ ‫شده‬‫ادامه‬ ‫در‬ .‫مي‬ ‫شده‬ ‫سازي‬ ‫شبيه‬ ‫محيط‬ ‫شناسايي‬ ‫به‬ ‫اقدام‬‫كند‬
‫كه‬‫آن‬ ‫فرآيند‬ ‫تشريح‬‫ح‬ ‫از‬‫خارج‬ ‫بحث‬ ‫موضوع‬ ‫يطه‬‫باشد‬ ‫مي‬‫و‬‫ـه‬‫ـ‬‫ب‬ ‫ـط‬‫ـ‬‫فق‬
‫مي‬ ‫بسنده‬ ‫معتبر‬ ‫مرجع‬ ‫چند‬ ‫به‬ ‫ارجاع‬ ‫و‬ ‫معرفي‬‫شود‬.
‫روش‬‫تحليلگر‬ ‫كردن‬ ‫سردرگم‬ ‫براي‬ ‫خود‬ ‫نوع‬ ‫در‬ ‫شده‬ ‫ذكر‬ ‫هاي‬،‫روند‬
‫زيركانه‬‫مي‬ ‫دنبال‬ ‫را‬ ‫اي‬‫به‬ ‫ضدديباگ‬ ‫روش‬ ‫كدام‬ ‫هيچ‬ ‫واقع‬ ‫در‬ ‫ولي‬ ‫كنند‬
‫نمي‬ ‫حساب‬‫آيند‬.‫ـدافزار‬‫ـ‬‫ب‬ ‫يك‬ ‫كه‬ ‫صورتي‬ ‫در‬ ‫حتي‬ ‫چراكه‬‫ـزار‬‫ـ‬‫اف‬ ‫ـرم‬‫ـ‬‫ن‬ ‫ـا‬‫ـ‬‫ي‬
‫ـازي‬‫ـ‬‫س‬ ‫ـبيه‬‫ـ‬‫ش‬ ‫ـيط‬‫ـ‬‫مح‬ ‫ـايي‬‫ـ‬‫شناس‬ ‫هاي‬ ‫تكنيك‬ ‫تمامي‬ ‫به‬ ‫شده‬ ‫محافظت‬
‫مي‬ ‫باز‬ ‫باشد‬ ‫شده‬ ‫مجهز‬ ‫شده‬‫عكس‬ ‫تحليل‬ ‫و‬ ‫خط‬ ‫به‬ ‫خط‬ ‫اجراي‬ ‫با‬ ‫توان‬
‫برنامه‬ ‫العمل‬،‫ك‬ ‫شناسايي‬ ‫نقاط‬‫اين‬ ‫و‬ ‫نمود‬ ‫خنثي‬ ‫را‬ ‫آنها‬ ‫و‬ ‫كشف‬ ‫را‬ ‫ننده‬
‫تكنيك‬ ‫تمامي‬ ‫مشترك‬ ‫ضعف‬ ‫نقطه‬ ‫مساله‬‫مي‬ ‫موجود‬ ‫هاي‬.‫باشد‬
‫روش‬Timing Detection) ‫شكل‬ ‫در‬ ‫كه‬ ‫است‬ ‫تلفيقي‬ ‫روشي‬٣‫ـد‬‫ـ‬‫رون‬ (
‫آن‬ ‫كلي‬.‫شود‬ ‫مي‬ ‫مشاهه‬‫ـتمي‬‫ـ‬‫سيس‬ ‫ـع‬‫ـ‬‫تواب‬ ‫از‬ ‫ـه‬‫ـ‬‫ك‬ ‫صورتي‬ ‫در‬ ‫روش‬ ‫اين‬
‫مي‬ ‫نكند‬ ‫استفاده‬ ‫زمان‬ ‫محاسبه‬ ‫براي‬‫ـه‬‫ـ‬‫ب‬ ‫توجه‬ ‫با‬ ‫ولي‬ ‫باشد‬ ‫كارآمد‬ ‫تواند‬
‫ـتمي‬‫ـ‬‫سيس‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫بدون‬ ‫زمان‬ ‫محاسبه‬ ‫باﻻي‬ ‫بسيار‬ ‫پيچيدگي‬،
‫ب‬ ‫شناسايي‬ ‫روش‬ ‫در‬ ‫موجود‬ ‫مشكل‬‫اين‬ ‫براي‬ ‫سيستمي‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫ا‬
‫ـراي‬‫ـ‬‫ب‬ ‫ـث‬‫ـ‬‫ثال‬ ‫ـد‬‫ـ‬‫ك‬ ‫ـه‬‫ـ‬‫قطع‬ ‫ـور‬‫ـ‬‫حض‬ ‫ـان‬‫ـ‬‫امك‬ ‫و‬ ‫آمد‬ ‫خواهد‬ ‫وجود‬ ‫به‬ ‫نيز‬ ‫مدل‬
‫داشت‬ ‫خواهد‬ ‫وجود‬ ‫بازگشتي‬ ‫يا‬ ‫ارسالي‬ ‫مقادير‬ ‫دستكاري‬[١٤] [١٢].
‫شكل‬٣‫فرآ‬‫ي‬‫ﻨﺪ‬‫شﻨﺎﺳﺎ‬‫يي‬‫برنﺎمﻪ‬‫تﺤﺖ‬‫د‬‫ي‬‫بﺎگ‬‫توﺳﻂ‬‫مكﺎن‬‫ي‬‫زم‬Timing
‫شكل‬ ‫در‬ ‫كه‬ ‫همانگونه‬٣‫است‬ ‫شده‬ ‫مشخص‬‫اجراي‬ ‫با‬ ‫ابتدا‬ ‫نويس‬ ‫برنامه‬
‫خود‬ ‫كدهاي‬ ‫باره‬ ‫چندين‬،‫ـبت‬‫ـ‬‫نس‬ ‫را‬ ‫آنها‬ ‫پايان‬ ‫و‬ ‫شروع‬ ‫از‬ ‫تخميني‬ ‫زمان‬
‫مي‬ ‫بدست‬ ‫اجرا‬ ‫محيط‬ ‫و‬ ‫افزار‬ ‫سخت‬ ‫به‬‫آورد‬.‫زماني‬‫پيدا‬ ‫قطعيت‬ ‫امر‬ ‫اين‬
‫مي‬‫ـين‬‫ـ‬‫ب‬ ‫ـادي‬‫ـ‬‫ع‬ ‫ـورت‬‫ـ‬‫ص‬ ‫در‬ ‫برنامه‬ ‫كد‬ ‫قطعه‬ ‫اجراي‬ ‫زمان‬ ‫كه‬ ‫كند‬١٠‫ـا‬‫ـ‬‫ت‬
‫نهايت‬١٥‫ثانيه‬‫و‬ ‫باشد‬‫مقدا‬ ‫اين‬‫ـي‬‫ـ‬‫م‬ ‫ـره‬‫ـ‬‫ذخي‬ ‫ـه‬‫ـ‬‫برنام‬ ‫در‬ ‫ر‬‫ـود‬‫ـ‬‫ش‬.‫از‬ ‫ـل‬‫ـ‬‫قب‬
‫قطعه‬ ‫اجراي‬،‫كد‬‫مي‬ ‫دريافت‬ ‫ميزبان‬ ‫سيستم‬ ‫فعلي‬ ‫زمان‬‫ـود‬‫ـ‬‫ش‬‫و‬‫ـپس‬‫ـ‬‫س‬
‫مي‬ ‫اجرا‬ ‫برنامه‬ ‫كد‬ ‫قطعه‬‫شود‬.‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫ـيط‬‫ـ‬‫مح‬ ‫در‬ ‫اجرا‬ ‫آنجاييكه‬ ‫از‬
ُ‫ك‬‫ـي‬‫ـ‬‫م‬ ‫واسطه‬ ‫بدون‬ ‫حالت‬ ‫در‬ ‫اجرا‬ ‫از‬ ‫ندتر‬‫ـل‬‫ـ‬‫داخ‬ ‫ـه‬‫ـ‬‫برنام‬ ‫ـر‬‫ـ‬‫اگ‬ ‫ـذا‬‫ـ‬‫ل‬ ‫ـد‬‫ـ‬‫باش‬
‫ـتر‬‫ـ‬‫بيش‬ ‫شده‬ ‫صرف‬ ‫زمان‬ ‫شود‬ ‫اجرا‬ ‫ديباگر‬ ‫محيط‬‫زده‬ ‫ـين‬‫ـ‬‫تخم‬ ‫ـدار‬‫ـ‬‫مق‬ ‫از‬
‫بود‬ ‫خواهد‬ ‫شده‬.‫كد‬ ‫اجراي‬ ‫از‬ ‫بعد‬ ‫آخر‬ ‫مرحله‬ ‫در‬،‫ـتم‬‫ـ‬‫سيس‬ ‫زمان‬ ‫مجدد‬
‫مي‬ ‫دريافت‬ ‫ميزبان‬‫مقدار‬ ‫دو‬ ‫اين‬ ‫تفريق‬ ‫با‬ ‫و‬ ‫شود‬،‫براي‬ ‫شده‬ ‫سپري‬ ‫زمان‬
ُ‫ك‬ ‫قطعه‬ ‫اجراي‬‫مي‬ ‫بدست‬ ‫د‬‫آيد‬.‫ـدار‬‫ـ‬‫مق‬ ‫با‬ ‫آمده‬ ‫بدست‬ ‫عدد‬ ‫اگر‬ ‫پايان‬ ‫در‬
‫خواه‬ ‫اين‬ ‫بر‬ ‫فرض‬ ‫باشد‬ ‫داشته‬ ‫مغايرت‬ ‫شده‬ ‫زده‬ ‫تخمين‬‫برنامه‬ ‫كه‬ ‫بود‬ ‫د‬
‫اجرا‬ ‫حال‬ ‫در‬ ‫ديباگر‬ ‫يك‬ ‫تحت‬‫مي‬‫باشد‬[١٤].
‫در‬‫ادامه‬‫مكانيزم‬Self-Debugging‫روش‬ ‫به‬ ‫نسبت‬ ‫زيادي‬ ‫شباهت‬ ‫كه‬
‫پيشنهادي‬.‫شود‬ ‫مي‬ ‫معرفي‬ ‫دارد‬‫ـا‬‫ـ‬‫ارتق‬ ‫نسخه‬ ‫نوعي‬ ‫به‬ ‫پيشنهادي‬ ‫روش‬
‫مي‬ ‫پيشين‬ ‫روش‬ ‫از‬ ‫نوين‬ ‫مدلي‬ ‫همراه‬ ‫به‬ ‫يافته‬.‫باشد‬
‫شكل‬٤‫رون‬‫ﺪ‬‫فرآ‬‫ي‬‫ﻨﺪ‬‫اجرا‬‫ي‬‫مكﺎن‬‫ي‬‫زم‬Self-Debugging
) ‫شكل‬ ‫در‬ ‫شده‬ ‫ارائه‬ ‫مدل‬ ‫قوت‬ ‫نقاط‬ ‫نخست‬٤(:‫شود‬ ‫مي‬ ‫ارائه‬
١.‫طبق‬‫قوانين‬‫ويندوز‬ ‫عامل‬ ‫سيستم‬،‫در‬ ‫ـا‬‫ـ‬‫تنه‬ ‫فرآيند‬ ‫يك‬
‫مي‬ ‫زمان‬ ‫يك‬‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫كنترل‬ ‫و‬ ‫ديباگ‬ ‫تحت‬ ‫تواند‬
‫گيرد‬ ‫قرار‬.‫اتصال‬ ‫با‬ ‫لذا‬‫ـد‬‫ـ‬‫فرآين‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـي‬‫ـ‬‫جعل‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫يك‬
،‫مدنظر‬‫از‬‫ديباگر‬ ‫اتصال‬‫ـه‬‫ـ‬‫ثانوي‬ ‫هاي‬‫ـل‬‫ـ‬‫عم‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـت‬‫ـ‬‫ممانع‬
‫مي‬.‫آيد‬
٢.‫ـدر‬‫ـ‬‫پ‬ ‫ـدل‬‫ـ‬‫م‬ ‫به‬ ‫توجه‬ ‫با‬-‫ـدها‬‫ـ‬‫فرآين‬ ‫در‬ ‫ـدي‬‫ـ‬‫فرزن‬،‫ـان‬‫ـ‬‫امك‬
‫مي‬ ‫فراهم‬ ‫سادگي‬ ‫به‬ ‫آنها‬ ‫مابين‬ ‫اطﻼعات‬ ‫تبادل‬‫و‬ ‫ـود‬‫ـ‬‫ش‬
‫مي‬ ‫اينرو‬ ‫از‬‫ـي‬‫ـ‬‫بررس‬ ‫ـوان‬‫ـ‬‫ت‬‫دو‬ ‫ـب‬‫ـ‬‫قال‬ ‫در‬ ‫را‬ ‫ـي‬‫ـ‬‫امنيت‬ ‫ـاي‬‫ـ‬‫ه‬
.‫داد‬ ‫انجام‬ ‫مجزا‬ ‫فرآيند‬
٣.‫ـدل‬‫ـ‬‫م‬ ‫به‬ ‫نسبت‬ ‫مدل‬ ‫اين‬‫ـاي‬‫ـ‬‫خط‬ ‫ـد‬‫ـ‬‫درص‬ ‫ـين‬‫ـ‬‫پيش‬ ‫ـاي‬‫ـ‬‫ه‬
‫ت‬ ‫با‬ ‫و‬ ‫دارد‬ ‫كمتري‬‫به‬ ‫وجه‬‫ـات‬‫ـ‬‫آزمايش‬‫ـي‬‫ـ‬‫تجرب‬،‫ـال‬‫ـ‬‫احتم‬
‫ـل‬‫ـ‬‫عام‬ ‫ـتم‬‫ـ‬‫سيس‬ ‫نسل‬ ‫ارتقاء‬ ‫طول‬ ‫در‬ ‫كمتري‬ ‫ناسازگاري‬
.‫دارد‬ ‫وجود‬ ‫ويندوز‬
٤.‫مكانيزم‬»‫نانوميتس‬«‫ـي‬‫ـ‬‫طراح‬ ‫ـيوه‬‫ـ‬‫ش‬ ‫ـين‬‫ـ‬‫هم‬ ‫از‬ ‫الهام‬ ‫با‬
‫كه‬ ‫گرديد‬‫در‬‫ـانيزم‬‫ـ‬‫مك‬ ‫ـرين‬‫ـ‬‫بهت‬ ‫از‬ ‫يكي‬ ‫خود‬ ‫زمان‬‫ـاي‬‫ـ‬‫ه‬
Anti-Dump‫مي‬ ‫شمار‬ ‫به‬.‫رفت‬
‫ادامه‬ ‫در‬‫ضعف‬ ‫نقاط‬) ‫شكل‬ ‫در‬ ‫شده‬ ‫ارائه‬ ‫مدل‬٤(:‫شود‬ ‫مي‬ ‫بيان‬
١.‫ـتمي‬‫ـ‬‫سيس‬ ‫ـع‬‫ـ‬‫تواب‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬،‫ـات‬‫ـ‬‫اطﻼع‬ ‫ـرقت‬‫ـ‬‫س‬ ‫ـر‬‫ـ‬‫خط‬
‫مكانيزم‬ ‫توسط‬Hook‫مي‬ ‫افزايش‬ ‫را‬.‫دهد‬
٢.‫فرآيند‬‫ـه‬‫ـ‬‫حافظ‬ ‫از‬ ‫ـل‬‫ـ‬‫كام‬ ‫ـورت‬‫ـ‬‫ص‬ ‫ـه‬‫ـ‬‫ب‬ ‫اجرا‬ ‫از‬ ‫قبل‬ ‫فرزند‬
‫مي‬ ‫استخراج‬ ‫قابل‬.‫باشد‬
٣.‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـا‬‫ـ‬‫ب‬ ،‫نانوميتس‬ ‫فناوري‬ ‫از‬ ‫استفاده‬ ‫صورت‬ ‫در‬
‫ابزار‬Hook‫ـتمي‬‫ـ‬‫سيس‬ ‫توابع‬ ‫كننده‬،‫ـي‬‫ـ‬‫م‬‫ـامي‬‫ـ‬‫تم‬ ‫ـوان‬‫ـ‬‫ت‬
.‫كرد‬ ‫بازيابي‬ ‫را‬ ‫شده‬ ‫حذف‬ ‫اطﻼعات‬
٤.‫صورت‬ ‫در‬‫ـار‬‫ـ‬‫ب‬ ،‫فرزند‬ ‫فرآيند‬ ‫در‬ ‫سنگين‬ ‫پردازش‬ ‫وجود‬
‫ـن‬‫ـ‬‫اي‬ ‫ـه‬‫ـ‬‫ك‬ ‫شد‬ ‫خواهد‬ ‫منتقل‬ ‫نيز‬ ‫پدر‬ ‫فرآيند‬ ‫به‬ ‫پردازشي‬
‫مي‬ ‫باعث‬ ‫امر‬.‫شود‬ ‫برابر‬ ‫دو‬ ‫پردازشي‬ ‫سربار‬ ‫ميزان‬ ‫شود‬
٥.‫ـد‬‫ـ‬‫ض‬ ‫ـوﻻت‬‫ـ‬‫محص‬ ‫ـامي‬‫ـ‬‫تم‬ ‫توسط‬ ‫فوق‬ ‫روش‬‫ـه‬‫ـ‬‫ب‬ ‫ـدافزار‬‫ـ‬‫ب‬
‫مي‬ ‫شناسايي‬ ‫پرخطر‬ ‫رفتار‬ ‫يك‬ ‫عنوان‬.‫شود‬
٦.‫ب‬‫ـابع‬‫ـ‬‫ت‬ ‫فراخواني‬ ‫حذف‬ ‫ا‬DebugActiveProcessA‫از‬
‫ـدون‬‫ـ‬‫ب‬ ‫و‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫حضور‬ ‫بدون‬ ‫فرزند‬ ‫فرآيند‬ ،‫والد‬ ‫فرآيند‬
‫ـيب‬‫ـ‬‫آس‬ ‫ـل‬‫ـ‬‫تحلي‬ ‫برابر‬ ‫در‬ ‫و‬ ‫شده‬ ‫اجرا‬ ‫مشكلي‬ ‫گونه‬ ‫هيچ‬
.‫بود‬ ‫خواهد‬ ‫پذير‬
٣-‫پيشنهادي‬ ‫روش‬
‫طي‬ ‫پيشنهادي‬ ‫روش‬٣‫گام‬‫شد‬ ‫خواهد‬ ‫ارائه‬.‫در‬‫نخست‬ ‫گام‬‫به‬‫معرفي‬
‫اجمالي‬‫از‬‫اجرايي‬ ‫فايل‬ ‫ساختار‬‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫استاندارد‬
‫پرداخت‬.‫شود‬ ‫مي‬ ‫ه‬‫در‬‫گام‬ُ‫ك‬ ‫تزريق‬ ‫مكانيزم‬ ‫دوم‬‫به‬ ‫ايستا‬ ‫صورت‬ ‫به‬ ‫د‬
‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫استاندارد‬ ‫باينري‬ ‫فايل‬‫معرفي‬‫مي‬‫شود‬‫در‬ ‫و‬
‫همراه‬ ‫به‬ ‫پيشنهادي‬ ‫روش‬ ‫آخر‬ ‫مرحله‬‫شبه‬ ‫ارائه‬‫سهولت‬ ‫جهت‬ ‫كد‬
‫خواننده‬ ‫توسط‬ ‫بررسي‬‫شود‬ ‫مي‬ ‫تشريح‬.
١-٣-‫اجر‬ ‫فايل‬ ‫ساختار‬‫ايي‬
‫فايل‬‫حمل‬ ‫قابل‬‫يا‬) ‫همان‬Portable Executable‫اصل‬ ‫قالب‬ (‫ي‬‫فا‬‫يل‬
Win٣٢‫تاحد‬ ‫آن‬ ‫مشخصات‬ .‫است‬‫ي‬‫عموم‬ ‫قالب‬ ‫از‬‫ي‬‫ش‬‫ي‬‫ء‬‫فا‬‫يل‬
‫يونيكس‬)Unix COFF‫است‬ ‫شده‬ ‫مشتق‬ (.
‫فايل‬‫حمل‬ ‫قابل‬‫يعني‬‫ا‬‫ينكه‬‫فا‬ ‫آن‬‫يل‬‫ب‬‫ين‬‫سكوها‬ ‫همه‬‫ي‬Win٣٢‫قابل‬
‫باركننده‬ .‫اجراست‬PE‫سكو‬ ‫هر‬ ‫در‬‫ي‬Win٣٢‫ا‬ ،‫ين‬‫تشخ‬ ‫را‬ ‫قالب‬‫يص‬
‫فا‬ ‫اطﻼعات‬ ‫و‬ ‫داده‬‫يل‬‫اجرا‬‫يي‬‫حافظه‬ ‫در‬ ‫را‬،‫حت‬‫ي‬‫زماني‬‫و‬ ‫كه‬‫يندوز‬‫در‬
‫سكوها‬‫ي‬CPU‫ا‬‫ي‬‫غ‬‫ير‬‫از‬Intel‫بارگذار‬ ‫شود‬ ‫اجرا‬‫ي‬‫م‬‫ي‬‫كند‬.‫ا‬ ‫اما‬‫ين‬
‫بد‬‫ين‬‫معن‬‫ي‬‫ن‬‫يست‬‫ف‬ ‫كه‬‫ايل‬‫م‬ ‫حمل‬ ‫قابل‬‫ي‬‫تواند‬‫تغ‬ ‫بدون‬‫يير‬‫همه‬ ‫در‬
CPU‫فا‬ ‫هر‬ .‫شود‬ ‫اجرا‬ ‫ها‬‫يل‬‫اجرا‬ ‫قابل‬‫ي‬Win٣٢‫فا‬ ‫قالب‬ ‫از‬‫يل‬PE
‫ا‬‫م‬ ‫ستفاده‬‫ي‬‫كند‬‫حت‬ .‫ي‬‫اندازها‬ ‫راه‬‫ي‬‫و‬ ‫هسته‬‫يندوز‬NT‫ا‬ ‫از‬‫ين‬‫قالب‬
‫فا‬‫يل‬‫م‬ ‫استفاده‬‫ي‬‫كند‬.‫لذا‬‫فا‬ ‫قالب‬‫يل‬PE‫اطﻼعات‬‫مفيدي‬‫مورد‬ ‫در‬
‫و‬ ‫ساختار‬‫يندوز‬‫ارائه‬‫م‬‫ي‬‫دهد‬.
‫شكل‬٥‫طرح‬‫كل‬‫ي‬‫قﺎﻟﺐ‬‫فﺎ‬‫ي‬‫ل‬PE
‫فا‬ ‫همه‬‫يلهاي‬PE‫حت‬‫ي‬‫ها‬ ‫كتابخانه‬‫ي‬٣٢‫ب‬‫يتي‬‫با‬‫يد‬‫با‬‫يك‬‫عنوا‬‫ن‬
DOS MZ‫شو‬ ‫شروع‬‫ن‬‫ا‬ .‫د‬‫ين‬‫برا‬ ‫قسمت‬‫ي‬‫زماني‬‫پ‬‫يش‬‫ب‬‫يني‬‫است‬ ‫شده‬
‫س‬ ‫در‬ ‫برنامه‬ ‫كه‬‫يستم‬‫عامل‬DOS‫بنابرا‬ .‫شود‬ ‫اجرا‬‫ين‬DOS‫ا‬‫ين‬‫فا‬‫يل‬
‫را‬‫يك‬‫فا‬‫يل‬‫تشخ‬ ‫اجرا‬ ‫قابل‬‫يص‬‫م‬ ‫و‬ ‫داده‬‫ي‬‫تواند‬‫كوتاه‬ ‫برنامه‬ ‫تابع‬
DOS‫عنوان‬ ‫از‬ ‫بعد‬ ‫كه‬ ‫را‬MZ‫ذخ‬‫يره‬‫كند‬ ‫اجرا‬ ،‫است‬ ‫شده‬.‫بخش‬‫ياد‬
‫آ‬ ‫نقطه‬ ‫عنوان‬ ‫به‬ ‫شده‬‫غاز‬‫ين‬‫يك‬‫فا‬‫يل‬PE‫م‬ ‫شناخته‬ ‫استاندارد‬‫ي‬‫شود‬
‫عنوان‬ ‫به‬ ‫آن‬ ‫از‬ ‫كه‬Entry Point‫ياد‬‫م‬‫ي‬.‫شود‬‫ف‬ ‫آدرس‬‫يزيكي‬EP
‫اول‬‫ين‬‫ا‬ ‫قطعه‬‫ي‬‫بارگذار‬ ‫از‬ ‫پس‬ ‫كه‬ ‫است‬‫ي‬‫فا‬‫يل‬‫م‬ ‫اجرا‬ ‫حافظه‬ ‫در‬‫ي‬‫گردد‬.
‫كوتاه‬ ‫برنامه‬ ‫تابع‬)DOS Stub‫حق‬ ‫در‬ (‫يقت‬‫يك‬EXE‫ي‬‫معتبر‬
‫موارد‬ ‫در‬ ‫و‬ ‫هست‬‫ي‬‫م‬ ‫اجرا‬‫ي‬‫شود‬‫س‬ ‫كه‬‫يستم‬‫عامل‬‫ه‬‫يچ‬‫چ‬‫يزي‬‫در‬
‫فا‬ ‫قالب‬ ‫مورد‬‫يل‬PE‫ا‬ .‫نداند‬‫ين‬‫پ‬ ‫فقط‬ ‫تابع‬‫يغام‬"This program
requires Windows"‫را‬‫نمايش‬‫م‬‫ي‬‫دهد‬‫يا‬‫ا‬‫ينكه‬‫م‬‫ي‬‫تواند‬‫برنامه‬
‫كامل‬DOS‫باشد‬،‫بستگ‬ ‫آن‬ ‫نوع‬ ‫كه‬‫ي‬‫نو‬ ‫به‬‫يسنده‬‫قسمت‬ .‫دارد‬ ‫برنامه‬
DOS Stub‫به‬‫علت‬‫بحث‬ ‫مورد‬ ‫آن‬ ‫شدن‬ ‫منسوخ‬‫مقاله‬ ‫اين‬‫نم‬‫ي‬
‫باشد‬‫ا‬ .‫ين‬‫تابع‬‫بوس‬ ‫معموﻻ‬‫يله‬‫اسمبلر‬‫يا‬‫كامپا‬‫يلر‬‫ا‬‫يجاد‬‫م‬‫ي‬‫شود‬‫در‬ .
‫بس‬‫ياري‬‫ا‬ ‫موارد‬‫ين‬‫سرو‬ ‫از‬ ‫تابع‬‫يس‬‫شماره‬٩‫وقفه‬H٢١‫م‬ ‫استفاده‬‫يكند‬
‫پ‬ ‫تا‬‫يغام‬"This program cannot run in DOS mode"‫را‬
.‫كند‬ ‫اعﻼن‬
‫از‬ ‫بعد‬DOS Stub‫عنوان‬ ‫قسمت‬ (‫كوتاه‬ ‫برنامه‬ ‫)تابع‬PE‫يا‬‫همان‬
PE header‫م‬ ‫قرار‬‫ي‬‫گي‬‫رد‬‫ساختار‬ .PE‫نام‬ ‫به‬
IMAGE_NT_HEADERS‫اصطﻼح‬ ‫در‬PE header‫نام‬‫يده‬‫م‬‫ي‬
‫شود‬‫ا‬ .‫ين‬‫محتو‬ ‫قسمت‬‫ي‬‫ف‬‫يلدهايي‬‫ضرور‬‫ي‬‫باشد‬ ‫مي‬‫باركننده‬ ‫كه‬PE
‫م‬ ‫استفاده‬ ‫آنها‬ ‫از‬‫ي‬‫كند‬‫س‬ ‫اگر‬ .‫يستم‬‫عامل‬‫ي‬‫ا‬‫ين‬‫بشناسد‬ ‫را‬ ‫قسمت‬
‫برنامه‬‫كننده‬ ‫بار‬ .‫شد‬ ‫خواهد‬ ‫اجرا‬PE‫م‬‫ي‬‫تواند‬‫شروع‬ ‫نقطه‬PE
header‫ق‬ ‫از‬ ‫را‬‫سمت‬DOS MZ header‫پ‬‫يدا‬‫نما‬‫يد‬‫قسمت‬ ‫و‬DOS
Stub‫ناد‬ ‫را‬‫يده‬‫مستق‬ ‫و‬ ‫گرفته‬‫يما‬‫قسمت‬ ‫به‬PE Header‫عنوان‬ ‫كه‬
‫حق‬‫يقي‬‫فا‬‫يل‬)Real File Header،‫هست‬ (‫شود‬ ‫هدايت‬.
‫محتواي‬‫حق‬‫يقي‬‫فا‬‫يل‬PE‫قسمتها‬ ‫به‬‫يي‬‫نام‬ ‫با‬‫يا‬ ‫بخش‬Section
‫تقس‬‫يم‬.‫است‬ ‫شده‬‫يك‬Section‫چ‬‫يزي‬‫ن‬‫يست‬‫جز‬‫يك‬‫داد‬ ‫بلوك‬‫با‬ ‫ه‬
‫معمول‬ ‫خواص‬‫ي‬‫مانند‬Code/Data‫دسترس‬ ‫و‬‫ي‬‫هاي‬Read/Write‫و‬
) ‫ديگر‬ ‫موارد‬‫م‬‫ي‬‫توان‬‫فا‬‫يل‬PE‫مانند‬ ‫را‬‫يك‬‫د‬‫يسك‬‫منطق‬‫ي‬‫فرض‬.(‫كرد‬
‫فا‬ ‫عنوان‬‫يل‬PE‫بجا‬‫ي‬‫و‬ ‫بوت‬ ‫سكتور‬Section‫ف‬ ‫ها‬‫ايلهاي‬‫رو‬‫ي‬‫د‬‫يسك‬
‫فا‬ .‫هستند‬‫يلها‬‫مخ‬ ‫خواص‬‫ت‬‫لف‬‫ي‬‫خواندن‬ ‫فقط‬ ‫خواص‬ ‫مانند‬ ‫دارند‬،‫ي‬
‫س‬،‫يستمي‬‫مخف‬،‫ي‬‫با‬‫يگاني‬‫و‬ ‫شده‬‫ديگر‬ ‫موارد‬.‫قابل‬‫توجه‬‫است‬‫گروه‬ ‫كه‬
‫بند‬‫ي‬‫درون‬ ‫داده‬‫يك‬Section‫عموم‬ ‫خواص‬ ‫اساس‬ ‫بر‬‫ي‬‫شده‬ ‫انجام‬
‫برمبنا‬ ‫نه‬ ‫است‬‫ي‬.‫منطق‬‫ندارد‬ ‫اهميت‬‫كه‬DATA‫يا‬CODE‫چگونه‬
‫م‬ ‫استفاده‬‫ي‬،‫شوند‬‫اگر‬DATA‫يا‬CODE‫فا‬ ‫در‬‫يل‬PE‫خواص‬
‫يكساني‬‫م‬ ،‫باشند‬ ‫داشته‬‫ي‬‫توانند‬‫درون‬‫يك‬Section‫جمع‬ ‫هم‬ ‫با‬‫شده‬
.‫باشند‬Section‫م‬‫ي‬‫تواند‬‫محتو‬‫ي‬CODE‫و‬DATA‫خواص‬ ‫كه‬
‫يكساني‬‫بخواه‬ ‫اگر‬ .‫باشد‬ ،‫دارند‬‫يم‬‫يك‬‫خاص‬ ‫داده‬ ‫از‬ ‫بلوك‬‫يت‬‫فقط‬
‫خواندن‬‫ي‬‫م‬ ‫باشد‬ ‫داشته‬‫ي‬‫توان‬‫درون‬‫يك‬Section‫فقط‬ ‫مشخصه‬ ‫كه‬
‫خواندن‬‫ي‬‫د‬‫ارد‬،‫د‬ ‫قرار‬‫اد‬‫مواقع‬ ‫در‬ .‫ي‬،‫باركننده‬ ‫كه‬Section‫درون‬ ‫را‬ ‫ها‬
‫ترس‬ ‫حافظه‬‫يم‬‫م‬‫ي‬،‫كند‬‫م‬‫هاي‬ ‫شخصه‬Section‫م‬ ‫را‬ ‫ها‬‫ي‬‫خواند‬‫آن‬ ‫و‬
‫مشخصات‬‫بلوكها‬ ‫به‬ ‫را‬‫ي‬ِ‫ا‬ ‫حافظه‬‫بوس‬ ‫شده‬ ‫شغال‬‫يله‬Section،‫ها‬
‫م‬ ‫نسبت‬‫ي‬‫دهد‬.‫اگر‬‫فا‬‫يل‬PE‫بصورت‬ ‫را‬‫يك‬‫د‬‫يسك‬‫منطق‬‫ي‬‫فرض‬
‫كن‬‫يم‬‫بطور‬‫يكه‬‫عنوان‬ ‫كه‬PE،‫و‬ ‫بوت‬ ‫سكتور‬Section‫فا‬ ‫ها‬‫يلهاي‬‫رو‬‫ي‬
‫د‬‫يسك‬‫كاف‬ ‫اطﻼعات‬ ‫هنوز‬ ،‫باشند‬‫ي‬‫فا‬ ‫محل‬ ‫مورد‬ ‫در‬‫يلهاي‬‫رو‬‫ي‬‫د‬‫يسك‬
.‫ندارد‬ ‫وجود‬‫يعني‬‫مس‬ ‫مورد‬ ‫در‬‫ير‬‫فهرست‬ ‫و‬)Directory‫فا‬ ‫در‬ (‫يل‬PE
‫ن‬ ‫بحث‬‫است‬ ‫شده‬‫عنوان‬ ‫از‬ ‫بعد‬ ‫بﻼفاصله‬ .PE‫جدول‬Section‫گرفته‬ ‫قرار‬
‫آرا‬ ‫كه‬ ‫است‬‫يه‬‫ا‬‫ي‬‫محتو‬ ‫ساختار‬ ‫هر‬ .‫ساختارهاست‬ ‫از‬‫ي‬‫اطﻼعات‬‫ي‬‫درباره‬
‫هر‬Section‫فا‬ ‫در‬‫يل‬PE‫همچون‬‫مشخصه‬‫فا‬ ‫برچسب‬ ،‫آن‬‫يل‬‫و‬
‫مج‬ ‫برچسب‬‫از‬‫ي‬‫پنج‬ ‫اگر‬ .‫است‬Section‫در‬‫يك‬‫فا‬‫يل‬PE‫داشته‬ ‫وجود‬
‫آرا‬ ‫در‬ ‫عنصر‬ ‫پنج‬ ،‫باشد‬‫يه‬‫م‬ .‫دارد‬ ‫وجود‬ ‫ساختار‬‫ي‬‫توان‬‫جدول‬Section
‫ر‬ ‫فهرست‬ ‫صورت‬ ‫به‬ ‫را‬‫يشه‬‫ي‬)root directory(‫يك‬‫د‬‫يسك‬‫منطق‬‫ي‬
‫آرا‬ ‫عنصر‬ ‫هر‬ ‫كه‬ ‫نمود‬ ‫فرض‬‫يه‬‫ي‬‫فهرست‬ ‫هر‬ ‫با‬ ‫معادل‬ ،‫ساختار‬‫ث‬‫بت‬
‫ر‬ ‫فهرست‬ ‫در‬ ‫شده‬‫يشه‬.‫است‬
‫در‬‫م‬‫يان‬‫ا‬ ‫تمام‬‫ين‬Section‫ها‬‫بخش‬ ،idata‫حاو‬‫ي‬‫آدرس‬ ‫جدول‬
‫ها‬‫ي‬) ‫شده‬ ‫وارد‬IAT(‫يا‬‫ب‬‫عبارتي‬‫تمام‬ ‫جدول‬‫ي‬‫در‬ ‫برنامه‬ ‫ارجاعات‬
‫فراخوان‬‫ي‬‫روت‬ ‫و‬ ‫توابع‬‫ين‬‫هاي‬‫كتابخانه‬‫ا‬‫ي‬‫پو‬‫يا‬‫م‬‫ي‬‫باشد‬‫ا‬ .‫ين‬‫جدول‬
‫حاو‬‫ي‬‫نسب‬ ‫آدرس‬‫ي‬‫توابع‬ ‫تمام‬Import‫فا‬ ‫به‬ ‫شده‬‫يل‬‫اجرا‬‫يي‬‫پس‬ .‫است‬
‫اجرا‬ ‫از‬‫ي‬‫يك‬‫فا‬‫يل‬PE‫س‬ ،‫يس‬‫تم‬‫عامل‬‫مذكور‬ ‫بخش‬‫حافظه‬ ‫درون‬ ‫را‬
‫بارگذار‬‫ي‬‫ا‬ ‫و‬ ‫كرده‬‫ين‬‫صح‬ ‫آدرس‬ ‫به‬ ‫را‬ ‫آدرسها‬‫يح‬‫در‬ ‫مذكور‬ ‫توابع‬
‫تغ‬ ‫حافظه‬‫يير‬‫م‬‫ي‬‫دهد‬‫دل‬ .‫يل‬‫ا‬ ‫وجود‬‫ين‬‫ا‬ ‫جدول‬‫ين‬‫فا‬ ‫كه‬ ‫است‬‫يل‬‫هاي‬
‫اجرا‬‫يي‬‫هم‬‫يشه‬‫ثابت‬ ‫مكان‬ ‫در‬‫ي‬‫بارگذار‬ ‫حافظه‬ ‫از‬‫ي‬‫نم‬‫ي‬‫شوند‬[٢٠] [٢].
‫در‬‫ادامه‬‫اصل‬ ‫مراحل‬‫ي‬‫بارگذار‬‫ي‬‫يك‬‫فا‬‫يل‬PE‫در‬‫حافظه‬‫شده‬ ‫بيان‬
:‫است‬
١.‫زماني‬‫فا‬ ‫كه‬‫يل‬PE‫فا‬ ‫باركننده‬ ،‫شد‬ ‫اجرا‬‫يل‬PE‫عنوان‬
DOS MZ‫برا‬ ‫را‬‫ي‬‫پ‬‫يدا‬‫كردن‬»‫عنوان‬ ‫برچسب‬«‫فا‬‫يل‬PE
‫بررس‬‫ي‬‫م‬‫ي‬‫كند‬‫اگر‬ ‫و‬‫بود‬ ‫موفق‬‫م‬ ‫برچسب‬ ‫آن‬ ‫به‬‫ي‬‫رود‬.
٢.،‫باركننده‬‫فا‬ ‫عنوان‬‫يل‬PE‫بررس‬ ‫را‬‫ي‬‫م‬‫ي‬‫كند‬،‫بود‬ ‫معتبر‬ ‫اگر‬
‫فا‬ ‫عنوان‬ ‫آخر‬ ‫به‬‫يل‬PE Header‫م‬‫ي‬‫رود‬.
٣.‫بﻼفاصله‬‫عنوان‬ ‫از‬ ‫بعد‬PE،‫جدول‬Section.‫دارد‬ ‫وجود‬
‫باركننده‬،‫اطﻼعات‬Section‫م‬ ‫را‬ ‫ها‬‫ي‬‫خواند‬‫حافظه‬ ‫درون‬ ‫و‬
‫ترس‬‫يم‬‫م‬‫ي‬‫كند‬‫همچن‬ .‫ين‬‫هر‬ ‫خواص‬Section‫مطابق‬ ‫را‬
‫جدول‬ ‫در‬ ‫آنچه‬Section‫است‬ ‫آمده‬،‫م‬ ‫آنها‬ ‫به‬‫ي‬‫دهد‬.
٤.‫بعد‬‫ترس‬ ‫از‬‫يم‬‫فا‬‫يل‬PE‫باركننده‬ ،‫حافظه‬ ‫درون‬PE‫به‬
‫قسمت‬‫ها‬‫ي‬‫م‬‫نطق‬‫ي‬‫فا‬‫يل‬PE‫مانند‬Import Table‫و‬‫ساير‬
‫ديگر‬ ‫موارد‬‫م‬‫ي‬‫پردازد‬.
٥.‫در‬‫ف‬ ‫آدرس‬ ‫مقدار‬ ‫بعد‬ ‫مرحله‬‫يزيكي‬–‫منطقي‬‫به‬ ‫مربوطه‬
Entry Point‫كه‬‫اشاره‬ ‫آن‬ ‫به‬ ‫قبﻼ‬‫ثبات‬ ‫مقدار‬ ‫درون‬ ‫شد‬
EIP‫اجرا‬ ‫و‬ ‫گرفته‬ ‫قرار‬‫ي‬‫فا‬‫يل‬‫بارگذار‬‫ي‬‫حافظه‬ ‫در‬ ‫شده‬
‫م‬ ‫شروع‬‫ي‬‫شود‬.
‫ا‬ ‫جهت‬ ‫ﻻزم‬ ‫اطﻼعات‬ ‫كليه‬ ‫نهايت‬ ‫در‬‫توسط‬ ‫اجرايي‬ ‫فايل‬ ‫جراي‬
PE loader‫قرار‬ ‫حافظه‬ ‫در‬ ،‫باشد‬ ‫مي‬ ‫عامل‬ ‫سيستم‬ ‫از‬ ‫جزئي‬ ‫كه‬
‫مي‬‫فايل‬ ‫و‬ ‫گيرد‬PE‫مي‬ ‫اجرا‬ ‫آماده‬.‫گردد‬
٢-٣-(‫)ايستا‬ ‫ﺑاينري‬ ‫فايل‬ ‫ﺑه‬ ‫كد‬ ‫تزريق‬ ‫روش‬
‫روش‬ ‫چندين‬ ‫به‬ ‫ايستا‬ ‫حالت‬ ‫در‬ ‫اجرايي‬ ‫فايل‬ ‫به‬ ‫كد‬ ‫تزريق‬
‫مي‬ ‫صورت‬ ‫مختلف‬‫ساده‬ ‫كه‬ ‫پذيرد‬‫مورد‬ ‫مقاله‬ ‫اين‬ ‫در‬ ‫آن‬ ‫ترين‬‫استفاده‬
‫است‬ ‫گرفته‬ ‫قرار‬.‫كه‬ ‫است‬ ‫ذكر‬ ‫به‬ ‫ﻻزم‬"‫منبع‬ ‫كد‬"‫فوق‬ ‫روش‬‫رايگان‬
‫است‬‫دارد‬ ‫قرار‬ ‫همگان‬ ‫اختيار‬ ‫در‬ ‫و‬.‫به‬ ‫ﻻزم‬ ‫كدهاي‬ ‫روش‬ ‫اين‬ ‫طي‬
‫قالب‬ ‫در‬ ‫و‬ ‫اسمبلي‬ ‫صورت‬Shell Code‫يك‬ ‫به‬Section‫اضافه‬ ‫جديد‬
‫آدرس‬ ‫مقدار‬ ‫و‬ ‫شده‬Entry Point) ‫فايل‬ ‫سرآيند‬ ‫در‬PE Header‫به‬ (
‫دستورا‬ ‫اولين‬‫در‬ ‫كه‬ ‫جديد‬ ‫لعمل‬Section‫تغيير‬ ‫است‬ ‫شده‬ ‫اضافه‬ ‫جديد‬
‫مي‬ ‫پيدا‬‫كند‬.‫در‬‫آ‬‫كوتاه‬ ‫پرش‬ ‫يك‬ ‫دادن‬ ‫قرار‬ ‫با‬ ‫نيز‬ ‫اسمبلي‬ ‫كدهاي‬ ‫خر‬
‫اصلي‬ ‫آدرس‬ ‫به‬Entry Point،‫مي‬ ‫باعث‬‫بعد‬ ‫برنامه‬ ‫اجراي‬ ‫روند‬ ‫تا‬ ‫گردد‬
‫شود‬ ‫سپرده‬ ‫برنامه‬ ‫اصلي‬ ‫كدهاي‬ ‫دست‬ ‫به‬ ‫شده‬ ‫تزريق‬ ‫كدهاي‬ ‫اجراي‬ ‫از‬.
) ‫شكل‬ ‫در‬٦(‫ا‬ ‫نمايي‬‫ز‬‫كد‬ ‫تزريق‬‫ايستا‬ ‫حالت‬ ‫در‬ ‫اجرايي‬ ‫فايل‬ ‫به‬‫نشان‬
‫است‬ ‫شده‬ ‫داده‬[٢] [١] [١٠].
‫شكل‬٦‫نمﺎ‬‫يي‬‫از‬‫ﺳﺎخﺘﺎر‬‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬‫اﺳﺘﺎنﺪارد‬‫قبل‬)‫اﻟف‬(‫و‬‫بعﺪ‬)‫ب‬(‫از‬
‫تزر‬‫ي‬‫ﻖ‬‫كﺪ‬‫بﻪ‬‫صورت‬‫ا‬‫ي‬‫ﺴﺘﺎ‬
) ‫شكل‬ ‫در‬ ‫كه‬ ‫همانطور‬٦(‫است‬ ‫مشخص‬‫مي‬‫به‬ ‫تكنيك‬ ‫اين‬ ‫از‬ ‫توان‬
‫فشر‬ ‫منظور‬‫نمود‬ ‫استفاده‬ ‫اجرايي‬ ‫فايل‬ ‫سازي‬ ‫ده‬‫؛‬‫ابتدا‬ ‫كه‬ ‫صورت‬ ‫بدين‬
‫تمامي‬ ‫اطﻼعات‬Section،‫خوانده‬ ‫را‬ ‫ها‬‫سپس‬‫و‬ ‫كرده‬ ‫فشرده‬ ‫يا‬ ‫رمز‬ ‫را‬ ‫آنها‬
‫در‬Section‫م‬ ‫ذخيره‬ ‫جديد‬.‫نمايد‬ ‫ي‬‫سپس‬‫تمامي‬ ‫اطﻼعات‬Section‫ها‬
‫جايگزين‬ ‫صفر‬ ‫مقدار‬ ‫با‬ ‫را‬‫شده‬ُ‫ك‬ ‫و‬‫فشرده‬ ‫اطﻼعات‬ ‫رمزگشايي‬ ‫دهاي‬
‫آدرس‬ ‫در‬ ‫را‬ ‫شده‬‫آغازين‬Section‫قرار‬ ‫جديد‬.‫گيرد‬ ‫مي‬‫اجراي‬ ‫با‬
‫برنامه‬،‫همانند‬ ‫و‬ ‫شده‬ ‫بارگذاري‬ ‫حافظه‬ ‫در‬ ‫شده‬ ‫رمز‬ ‫يا‬ ‫فشرده‬ ‫اطﻼعات‬
‫روند‬ ‫شده‬ ‫تزريق‬ ‫كدهاي‬ ‫تمامي‬ ‫اجراي‬ ‫از‬ ‫پس‬ ‫شده‬ ‫داده‬ ‫توضيح‬ ‫روش‬
‫مي‬ ‫سپرده‬ ‫حافظه‬ ‫در‬ ‫آن‬ ‫اصلي‬ ‫كدهاي‬ ‫به‬ ‫برنامه‬ ‫اجراي‬‫شود‬.‫مثال‬
‫ا‬ ،‫پركاربردترين‬ ‫از‬ ‫يكي‬ ‫شده‬ ‫عنوان‬‫فايل‬ ‫به‬ ‫كد‬ ‫تزريق‬ ‫هاي‬ ‫ستفاده‬
‫مي‬ ‫اجرايي‬.‫باشد‬
٣-٣-‫پيشنهادي‬ ‫روش‬
‫ادامه‬ ‫در‬‫پيشنهادي‬ ‫روش‬،‫صورت‬ ‫به‬‫مرحله‬‫به‬‫مرحله‬‫نمايش‬ ‫با‬ ‫همراه‬
‫اشكال‬‫بمنظور‬‫بهتر‬ ‫درك‬:‫شود‬ ‫مي‬ ‫تشريح‬ ‫فرآيند‬
١.‫مقدار‬ ‫ابتدا‬١٠٠‫آدرس‬ ‫شروع‬ ‫از‬ ‫بايت‬Entry Point‫حذف‬
‫مي‬ ‫ذخيره‬ ‫فشرده‬ ‫يا‬ ‫رمز‬ ‫صورت‬ ‫به‬ ‫و‬ ‫شده‬‫گردد‬.
٢.‫سپس‬‫مي‬ ‫محافظتي‬ ‫ﻻيه‬ ‫از‬ ‫جزئي‬ ‫كه‬ ‫داخلي‬ ‫ديباگر‬ ‫هسته‬-
‫اضافه‬ ‫اول‬ ‫مرحله‬ ‫در‬ ‫شده‬ ‫ايجاد‬ ‫اطﻼعات‬ ‫جريان‬ ‫به‬ ‫باشد‬
‫مي‬‫شود‬.‫جهت‬ ‫به‬ ‫اطﻼعات‬ ‫تمامي‬ ‫كه‬ ‫است‬ ‫ذكر‬ ‫به‬ ‫ﻻزم‬
‫ايستا‬ ‫معكوس‬ ‫مهندسي‬ ‫جهت‬ ‫به‬ ‫مانع‬ ‫ايجاد‬ ‫و‬ ‫بيشتر‬ ‫امنيت‬
‫جمله‬ ‫از‬ ‫پيشرفته‬ ‫رمزنگاري‬ ‫متدهاي‬ ‫توسط‬AES ٢٥٦
bit‫ط‬ ‫كليدهاي‬ ‫و‬،‫اجرايي‬ ‫فايل‬ ‫هر‬ ‫فرد‬ ‫به‬ ‫منحصر‬ ‫و‬ ‫وﻻني‬
‫مي‬ ‫رمزنگاري‬.‫شوند‬
٣.‫يك‬ ‫عنوان‬ ‫به‬ ‫دوم‬ ‫مرحله‬ ‫در‬ ‫شده‬ ‫توليد‬ ‫داده‬ ‫جريان‬ ‫تمامي‬
Section‫مي‬ ‫تزريق‬ ‫اجرايي‬ ‫فايل‬ ‫به‬ ‫داده‬‫شود‬.‫است‬ ‫بديهي‬
‫قابل‬ ‫و‬ ‫داشت‬ ‫خواهند‬ ‫خواندني‬ ‫قابليت‬ ‫مذكور‬ ‫اطﻼعات‬ ‫كه‬
.‫بود‬ ‫نخواهند‬ ‫اجرا‬
‫شكل‬٧‫حذف‬‫مقﺪار‬‫مﺸﺨﺼ‬‫ي‬‫از‬‫اطﻼﻋﺎت‬)‫بﻪ‬‫ﻋﻨوان‬‫مثﺎل‬٣٠‫بﺎ‬‫ي‬‫ﺖ‬(‫از‬
‫آدرس‬Entry Point‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬
٤.‫انداز‬ ‫راه‬ ‫اسمبلي‬ ‫كدهاي‬،‫يك‬ ‫عنوان‬ ‫به‬Section‫به‬ ‫جديد‬
‫آدرس‬ ‫و‬ ‫شده‬ ‫تزريق‬ ‫اجرايي‬ ‫فايل‬Entry Point‫آدرس‬ ‫به‬
‫مي‬ ‫پيدا‬ ‫تغيير‬ ‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫آغازين‬‫كند‬.
٥.‫برنامه‬ ‫اجراي‬ ‫با‬،"‫كد‬ ‫قطعه‬‫انداز‬ ‫راه‬"‫موجود‬ ‫اطﻼعات‬
‫در‬Container‫هسته‬ ‫و‬ ‫كرده‬ ‫رمزگشايي‬ ‫حافظه‬ ‫در‬ ‫را‬
‫مي‬ ‫اجرا‬ ‫حافظه‬ ‫در‬ ‫را‬ ‫داخلي‬ ‫ديباگر‬‫كند‬.‫مرحله‬ ‫اين‬ ‫در‬
‫مي‬ ‫باقي‬ ‫حافظه‬ ‫در‬ ‫انتظار‬ ‫حالت‬ ‫در‬ ‫ديباگر‬ ‫هسته‬.‫ماند‬
‫شكل‬٨‫نمﺎ‬‫يي‬‫از‬‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬‫ﭘﺲ‬‫از‬‫تزر‬‫ي‬‫ﻖ‬‫كﺪهﺎ‬‫ي‬‫راه‬‫انﺪاز‬‫و‬‫هﺴﺘﻪ‬
‫د‬‫ي‬‫بﺎﮔر‬‫داخل‬‫ي‬
) ‫شكل‬ ‫در‬ ‫كه‬ ‫همانطور‬٨‫مشاهده‬ (‫مي‬‫شو‬‫شده‬ ‫مشخص‬ ‫آدرس‬ ‫د‬
‫پيكان‬ ‫توسط‬A‫آدرس‬ ‫به‬Entry Point‫كه‬ ‫دارد‬ ‫اشاره‬ ‫اوليه‬١٠٠
‫آن‬ ‫اطﻼعات‬ ‫از‬ ‫بايت‬) ‫مرحله‬ ‫در‬١(‫شد‬ ‫حذف‬.‫است‬ ‫ه‬‫بعدي‬ ‫مرحله‬
‫رشته‬ ‫مقادير‬ ،‫داخلي‬ ‫ديباگر‬ ‫هسته‬ ‫كردن‬ ‫اضافه‬‫بين‬ ‫ارتباط‬ ‫ماژول‬ ‫و‬ ‫اي‬
‫پروسه‬‫عنوان‬ ‫تحت‬ ‫ها‬‫بسته‬Container‫مي‬‫تغيير‬ ‫با‬ ‫نهايت‬ ‫در‬ ‫كه‬ ‫باشد‬
‫آدرس‬Entry Point‫با‬ ‫كه‬ ‫جديد‬ ‫محل‬ ‫به‬‫پيكان‬B‫مي‬ ‫اشاره‬،‫كند‬
‫مي‬ ‫اشاره‬ ‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫ابتداي‬ ‫به‬ ‫واقع‬ ‫در‬ ‫آدرس‬ ‫اين‬‫تحت‬ ‫كه‬ ‫كند‬
‫يك‬ ‫عنوان‬Section‫اند‬ ‫شده‬ ‫تزريق‬ ‫اجرايي‬ ‫فايل‬ ‫به‬ ‫جديد‬‫از‬ ‫قبل‬ ‫و‬
‫اصلي‬ ‫برنامه‬ ‫اجراي‬‫بسته‬ ‫محتويات‬ ‫اجراي‬ ‫باعث‬Container‫مي‬‫شود‬
‫به‬ ‫ادامه‬ ‫در‬ ‫كه‬ ‫مراحل‬ ‫باقي‬ ‫و‬ ‫بارگذاري‬ ‫حافظه‬ ‫در‬ ‫سامانه‬ ‫اصلي‬ ‫هسته‬ ‫تا‬
‫مي‬ ‫آنها‬ ‫شرح‬‫شوند‬ ‫اجرا‬ ‫پردازيم‬.
‫شكل‬٩‫نمﺎ‬‫يي‬‫از‬‫اجرا‬‫ي‬‫كﺪهﺎ‬‫ي‬‫مربوطﻪ‬‫بﻪ‬‫راه‬‫انﺪاز‬
) ‫شكل‬ ‫در‬٩‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫اجراي‬ ‫روند‬ ‫نيز‬ (‫نمايش‬.‫است‬ ‫شده‬ ‫داده‬
‫اطﻼعات‬ ‫كه‬ ‫فايلي‬ ) ‫ثانويه‬ ‫اجرايي‬ ‫فايل‬ ‫روي‬ ‫بر‬ ‫كليك‬ ‫دوبار‬ ‫با‬ ‫واقع‬ ‫در‬
‫مي‬ ‫تست‬ ‫آماده‬ ‫و‬ ‫است‬ ‫شده‬ ‫تزريق‬ ‫موفقيت‬ ‫با‬ ‫آن‬ ‫به‬‫كدها‬ ‫اجراي‬ ( ‫باشد‬
‫از‬Entry Point‫مي‬ ‫آغاز‬ ‫ثانويه‬‫گردد‬.‫در‬ ‫كه‬ ‫ﻻزم‬ ‫كدهاي‬ ‫اجراي‬ ‫با‬
‫آن‬ ‫به‬ ‫بعدي‬ ‫هاي‬ ‫بخش‬‫اشاره‬‫مي‬‫بازسازي‬ ‫و‬ ‫شود‬١٠٠‫باي‬‫اطﻼعات‬ ‫ت‬
‫محل‬ ‫به‬ ،‫شده‬ ‫حذف‬Entry Point‫باز‬ ‫اوليه‬‫گردد‬ ‫مي‬‫اصلي‬ ‫روند‬ ‫و‬
‫مي‬ ‫طي‬ ‫برنامه‬.‫شود‬
٦.‫به‬ ‫ارجاع‬ ‫و‬ ‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫اتمام‬ ‫از‬ ‫قبل‬ ‫حاضر‬ ‫حال‬ ‫در‬
‫آدرس‬Entry Point‫پروسه‬ ‫وضعيت‬ ،‫اجرايي‬ ‫فايل‬ ‫اصلي‬
‫حالت‬ ‫به‬ ‫حافظه‬ ‫در‬ ‫آن‬Suspend‫مي‬ ‫پيدا‬ ‫تغيير‬‫اين‬ ) ‫كند‬
‫فرز‬ ‫پروسه‬ ‫براي‬ ‫وضعيت‬‫ند‬‫انداز‬ ‫راه‬ ‫كد‬ ‫توسط‬‫اعمال‬‫مي‬
‫گردد‬(.‫اطﻼعاتي‬ ،‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫انتهاي‬ ‫به‬ ‫شدن‬ ‫نزديك‬ ‫با‬
‫از‬ ‫اعم‬Process ID‫و‬Thread ID،‫فرزند‬ ‫پروسه‬ ‫از‬
،‫پروسه‬ ‫بين‬ ‫ارتباطي‬ ‫هسته‬ ‫فراخواني‬ ‫توسط‬‫پروسه‬ ‫اختيار‬ ‫در‬
‫مي‬ ‫قرار‬ ‫داخلي‬ ‫ديباگر‬.‫گيرد‬
٧.‫د‬ ‫ديباگر‬ ‫توسط‬ ‫فرزند‬ ‫پروسه‬ ‫اطﻼعات‬ ‫دريافت‬ ‫با‬،‫اخلي‬
‫سيستمي‬ ‫تابع‬ ‫فراخواني‬ ‫با‬ ‫ديباگر‬ ‫پروسه‬
DebugActiveProcessA‫ديباگ‬ ‫تحت‬ ‫را‬ ‫فرزند‬ ‫پروسه‬
‫مي‬ ‫قرار‬ ‫خود‬‫تمامي‬ ‫و‬ ‫دهد‬Exception‫هاي‬‫مديريت‬ ‫را‬ ‫آن‬
‫مي‬‫صورتي‬ ‫در‬ .‫كند‬‫موفقيت‬ ‫فرزند‬ ‫پروسه‬ ‫به‬ ‫اتصال‬ ‫عمليات‬ ‫كه‬
‫اول‬ ‫مرحله‬ ‫در‬ ‫شده‬ ‫حذف‬ ‫اطﻼعات‬ ‫باشد‬ ‫آميز‬،‫حافظه‬ ‫در‬
‫و‬ ‫شده‬ ‫رمزگشايي‬‫تابع‬ ‫توسط‬ ‫فرزند‬ ‫پروسه‬ ‫اصلي‬ ‫آدرس‬ ‫در‬
‫سيستمي‬WriteProcessMemory‫مي‬ ‫بازنويسي‬‫شوند‬.
‫سپس‬‫ساختار‬ ‫از‬ ‫استفاده‬ ‫با‬Context Control،‫ديباگر‬
‫ثبات‬ ‫مقدار‬EIP‫آدرس‬ ‫به‬ ‫را‬ ‫فرزند‬ ‫پروسه‬Entry Point
‫حالت‬ ‫از‬ ‫را‬ ‫پروسه‬ ‫وضعيت‬ ‫و‬ ‫داده‬ ‫تغيير‬ ‫اصلي‬Suspend‫به‬
Running‫مي‬ ‫تغيير‬‫دهد‬.‫در‬‫فرزند‬ ‫برنامه‬ ‫حالت‬ ‫اين‬
‫مي‬ ‫آغاز‬ ‫حافظه‬ ‫در‬ ‫را‬ ‫خود‬ ‫فعاليت‬.‫كند‬
‫شكل‬١٠‫مراحل‬‫اجرا‬‫ي‬‫برنﺎمﻪ‬‫ط‬‫ي‬‫مراحل‬٦‫و‬٧
٤-‫ارزيا‬‫پيشنهادي‬ ‫روش‬ ‫ﺑي‬
‫روش‬ ‫ساير‬ ‫با‬ ‫پيشنهادي‬ ‫روش‬ ‫ارزيابي‬ ‫براي‬‫ـي‬‫ـ‬‫مهندس‬ ‫و‬ ‫ضدديباگ‬ ‫هاي‬
‫معكوس‬،‫ساختا‬ ‫به‬ ‫مجدد‬ ‫نگاهي‬ ‫ابتدا‬ ‫است‬ ‫ﻻزم‬‫عام‬ ‫سيستم‬ ‫ر‬‫ـدوز‬‫ـ‬‫وين‬ ‫ل‬
.‫باشيم‬ ‫داشته‬‫ـط‬‫ـ‬‫فق‬ ‫را‬ ‫ـال‬‫ـ‬‫فع‬ ‫پروسه‬ ‫يك‬ ‫كاربر‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬
‫مي‬ ‫ديباگر‬ ‫يك‬ ‫توسط‬‫آن‬ ‫هاي‬ ‫فعاليت‬ ‫و‬ ‫درآورده‬ ‫خود‬ ‫كنترل‬ ‫تحت‬ ‫تواند‬
‫ـت‬‫ـ‬‫نيس‬ ‫ممكن‬ ‫ثانويه‬ ‫ديباگر‬ ‫اتصال‬ ‫امكان‬ ‫و‬ ‫دهد‬ ‫قرار‬ ‫بررسي‬ ‫مورد‬ ‫را‬.‫از‬
‫عمﻼ‬ ‫برنامه‬ ‫به‬ ‫داخلي‬ ‫ديباگر‬ ‫اتصال‬ ‫با‬ ‫پيشنهادي‬ ‫روش‬ ‫در‬ ‫رو‬ ‫اين‬‫امكان‬
‫ـت‬‫ـ‬‫حفاظ‬ ‫ـت‬‫ـ‬‫تح‬ ‫پروسه‬ ‫همان‬ ‫كه‬ ‫فرزند‬ ‫پروسه‬ ‫به‬ ‫خارجي‬ ‫ديباگر‬ ‫اتصال‬
‫بود‬ ‫خواهد‬.‫نيست‬ ‫ممكن‬‫ـع‬‫ـ‬‫قط‬ ‫با‬ ‫كه‬ ‫كند‬ ‫خطور‬ ‫ذهن‬ ‫به‬ ‫شايد‬ ‫طرفي‬ ‫از‬
‫سيستمي‬ ‫تابع‬ ‫به‬ ‫دسترسي‬DebugActiveProcessA‫مي‬‫ـانع‬‫ـ‬‫م‬ ‫ـوان‬‫ـ‬‫ت‬
‫گرديد‬ ‫فرزند‬ ‫پروسه‬ ‫كردن‬ ‫ديباگ‬ ‫فرمان‬ ‫اجراي‬‫؛‬‫ـه‬‫ـ‬‫اينك‬ ‫ـه‬‫ـ‬‫ب‬ ‫توجه‬ ‫با‬ ‫ولي‬
‫ف‬ ‫فرزند‬ ‫پروسه‬‫اقد‬١٠٠‫ـات‬‫ـ‬‫اطﻼع‬ ‫ـن‬‫ـ‬‫اي‬ ‫و‬ ‫ـت‬‫ـ‬‫اس‬ ‫آدرس‬ ‫اطﻼعات‬ ‫از‬ ‫بايت‬
‫ـد‬‫ـ‬‫فرزن‬ ‫ـه‬‫ـ‬‫پروس‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـق‬‫ـ‬‫موف‬ ‫ـال‬‫ـ‬‫اتص‬ ‫از‬ ‫پس‬ ‫ديباگر‬ ‫پروسه‬ ‫توسط‬)‫از‬ ‫ـد‬‫ـ‬‫بع‬
‫شده‬ ‫اشغال‬ ‫حافظه‬ ‫ميزان‬ ‫مقايسه‬ ‫توسط‬ ‫فرزند‬ ‫پروسه‬ ‫صﻼحيت‬ ‫بررسي‬
‫مقادير‬ ‫يا‬١٦‫ـه‬‫ـ‬‫حافظ‬ ‫از‬ ‫ـادفي‬‫ـ‬‫تص‬ ‫ـايي‬‫ـ‬‫ه‬ ‫آدرس‬ ‫از‬ ‫ـي‬‫ـ‬‫بيت‬(‫و‬ ‫ـايي‬‫ـ‬‫رمزگش‬
‫مي‬ ‫بازنويسي‬‫پروس‬ ‫اجراي‬ ‫امكان‬ ‫شود‬‫ممكن‬ ‫ديباگر‬ ‫پروسه‬ ‫بدون‬ ‫فرزند‬ ‫ه‬
‫نيست‬‫؛‬‫پروسه‬ ‫دو‬ ‫اين‬ ‫كه‬ ‫چرا‬‫براي‬‫در‬ ‫و‬ ‫ـد‬‫ـ‬‫دارن‬ ‫ـاز‬‫ـ‬‫ني‬ ‫ـديگر‬‫ـ‬‫يك‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـرا‬‫ـ‬‫اج‬
.‫بود‬ ‫نخواهد‬ ‫ممكن‬ ‫ديگري‬ ‫اجراي‬ ‫كدام‬ ‫هر‬ ‫حذف‬ ‫صورت‬
) ‫تصوير‬ ‫در‬١١‫تصوير‬ ‫در‬ ‫و‬ ‫اجرايي‬ ‫فايل‬ ‫از‬ ‫محافظت‬ ‫به‬ ‫مربوط‬ ‫كد‬ ‫شبه‬ (
)١٢‫ـده‬‫ـ‬‫ش‬ ‫محافظت‬ ‫فايل‬ ‫اجراي‬ ‫مرحله‬ ‫به‬ ‫مربوط‬ ‫كد‬ ‫شبه‬ (‫ـ‬‫ـ‬‫ش‬ ‫ـر‬‫ـ‬‫ذك‬‫ده‬
‫است‬.
‫شكل‬١١‫شبﻪ‬‫كﺪ‬‫مربوط‬‫بﻪ‬‫مرحلﻪ‬‫مﺤﺎفﻈﺖ‬‫از‬‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬
‫شكل‬١٢‫شبﻪ‬‫كﺪ‬‫مربوط‬‫بﻪ‬‫مرحلﻪ‬‫اجرا‬‫ي‬‫د‬‫ي‬‫بﺎﮔر‬‫در‬‫حﺎفﻈﻪ‬
‫شكل‬١٣‫شبﻪ‬‫كﺪ‬‫مربوط‬‫بﻪ‬‫د‬‫ي‬‫بﺎﮔر‬‫و‬‫كﻨﺘرل‬‫ﭘروﺳﻪ‬‫فرزنﺪ‬
‫مراجع‬
[١] Themida Software Protection & Anti-Reverse
Engineering Tool,
http://www.oreans.com
[٢] Specialized forum about reverse engineering and software
security including exploit development and malware
analysis,
http://www.tuts٤you.com/forum
[٣] Ultimate software protection and licensing tool,
http://www.enigmaprotector.com
[٤] Anti-Anti-DebuggerPlugins,
https://code.google.com/p/aadp/.
[٥] Adam J. Smith, T. S., USAF. (٢٠١٤). AUTOMATED
STATIC DETECTION OF OBFUSCATED ANTI-
DEBUGGING TECHNIQUES. DEPARTMENT OF THE
AIR FORCE AIR UNIVERSITY.
[٦] Craing S, A. A. (٢٠١٠). Packer Analysis Report –
Debugging and unpacking the NsPack ٣٫٤ and ٣٫٧
packer. (SANS).
[٧] Ferrie, P. (٢٠١١). The Ultimate Anti-Debugging
Reference.
[٨] Francisco Falcón, N. R. (June ٢٠١٢). Dynamic Binary
Instrumentation Frameworks. (Core Security).
[٩] Hao Shi, A. A., Jelena Mirkovic. (٢٠١٥). Cardinal Pill
Testing of System Virtual Machines. USC/Information
Sciences Institute.
[١٠] JaeKeun Lee (٢٠١٤). Evading Anti-debugging
Techniques with Binary Substitution. International
Journal of Security and Its Applications, Vol.8, No.1
(2014).
[١١] MILLER (٢٠١٢). Binary-Code Obfuscations in Prevalent
Packer Tools. (University of Wisconsin).
[١٢] Peter Ferrie, S. A.-V. R., Microsoft Corporation. (٢٠١٠).
ANTI-UNPACKER TRICKS. MSDN(Microsoft).
[١٣] Ping Chen, C. H., Lieven Desmet, and Wouter Joosen.
(٢٠١٦). A comparative study of theuse of anti-debugging
and anti-VM techniques in generic and targeted malware.
(iMinds-DistriNet).
[١٤] Shields, T. (٢٠١٥). Anti-Debugging – A Developers
View. (Veracode Inc., USA).
[١٥] Tengfei Yi, A. Z., Miao Yu, Zhong Ren, Qian Lin,
Zhengwei Qi. (٢٠١٢). Anti Debugging Framework Based
on Hardware Virtualization. Shanghai University(School
of Software, Shanghai Jiao Tong University).
[١٦] Vincent, M. (٢٠١٢). The Art of Unpacking. (IBM Internet
Security Systems).
[١٧] Xu Chen, J. A., Z. Morley Mao, Michael Bailey, Jose
Nazario. (٢٠١٥). Towards an Understanding of Anti-
virtualization and Anti-debugging Behavior in Modern
Malware. (University of Michigan).
[١٨] Intel® ٦٤ and IA-٣٢ Architectures Software Developer
Manuals. www.intel.com/products/processor/manuals/.
[١٩] O. Yuschuk, Ollydbg. http://www.ollydbg.de/.
[٢٠] A. Honig, Practical Malware Analysis. No Starch Press,
٢٠١٢.

More Related Content

Similar to Defeating software analysis using logical anti-debugging technique

قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware AnalysisM Mehdi Ahmadian
 
صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity
صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrityصحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity
صحت جریان کنترل در امنیت اطلاعاتControl Flow IntegrityM Mehdi Ahmadian
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
 
چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...
چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...
چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...M Mehdi Ahmadian
 
Scrum based methodology for distributed software development
Scrum based methodology for distributed software developmentScrum based methodology for distributed software development
Scrum based methodology for distributed software developmentNavid Sedighpour
 
Rezome.Ali.Bagheri
Rezome.Ali.BagheriRezome.Ali.Bagheri
Rezome.Ali.BagheriAli Bagheri
 
The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)Ali Bahrani
 
نرم افزار مدیریت جامع تولید
نرم افزار مدیریت جامع تولید نرم افزار مدیریت جامع تولید
نرم افزار مدیریت جامع تولید mehdi85
 
www.daneshgahi.com_45e8bf05656718c2.pptx
www.daneshgahi.com_45e8bf05656718c2.pptxwww.daneshgahi.com_45e8bf05656718c2.pptx
www.daneshgahi.com_45e8bf05656718c2.pptxarthurtdtutu
 
اتوماسیون اداری
اتوماسیون اداریاتوماسیون اداری
اتوماسیون اداریAharsoft
 
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
انواع ارزیابی های امنیتی و مراحل تست  و نفوذانواع ارزیابی های امنیتی و مراحل تست  و نفوذ
انواع ارزیابی های امنیتی و مراحل تست و نفوذSaeidGhasemshirazi
 
مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری نویسنده ناص...
مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری   نویسنده ناص...مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری   نویسنده ناص...
مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری نویسنده ناص...Aidin NaseriFard
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدعباس بني اسدي مقدم
 
Keydoc presentation (1)
Keydoc presentation (1)Keydoc presentation (1)
Keydoc presentation (1)danesh hamara
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىmarketingfarkhad
 
مقدمه ای بر هوش تجاری
مقدمه ای بر هوش تجاریمقدمه ای بر هوش تجاری
مقدمه ای بر هوش تجاریZahra Mansoori
 
Information security & isms
Information security & ismsInformation security & isms
Information security & ismsmeryamsiroos
 

Similar to Defeating software analysis using logical anti-debugging technique (20)

قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 
صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity
صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrityصحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity
صحت جریان کنترل در امنیت اطلاعاتControl Flow Integrity
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...
چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...
چارچوب تشخیص باجگیرها 2entFOX: A framework for high survivable ransomwares de...
 
Scrum based methodology for distributed software development
Scrum based methodology for distributed software developmentScrum based methodology for distributed software development
Scrum based methodology for distributed software development
 
Rezome.Ali.Bagheri
Rezome.Ali.BagheriRezome.Ali.Bagheri
Rezome.Ali.Bagheri
 
The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)The role of formal method in reaching dependable software (farsi)
The role of formal method in reaching dependable software (farsi)
 
نرم افزار مدیریت جامع تولید
نرم افزار مدیریت جامع تولید نرم افزار مدیریت جامع تولید
نرم افزار مدیریت جامع تولید
 
ارائهٔ DLP
ارائهٔ DLPارائهٔ DLP
ارائهٔ DLP
 
Red team
Red teamRed team
Red team
 
www.daneshgahi.com_45e8bf05656718c2.pptx
www.daneshgahi.com_45e8bf05656718c2.pptxwww.daneshgahi.com_45e8bf05656718c2.pptx
www.daneshgahi.com_45e8bf05656718c2.pptx
 
اتوماسیون اداری
اتوماسیون اداریاتوماسیون اداری
اتوماسیون اداری
 
RayBPMS (Rayvarz Business Process Management System)
RayBPMS (Rayvarz Business Process Management System)RayBPMS (Rayvarz Business Process Management System)
RayBPMS (Rayvarz Business Process Management System)
 
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
انواع ارزیابی های امنیتی و مراحل تست  و نفوذانواع ارزیابی های امنیتی و مراحل تست  و نفوذ
انواع ارزیابی های امنیتی و مراحل تست و نفوذ
 
مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری نویسنده ناص...
مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری   نویسنده ناص...مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری   نویسنده ناص...
مقاله بررسی مدل های ارزیابی ریسک امنیت اطلاعات برای رایانش ابری نویسنده ناص...
 
مهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهدمهاجرت به متن باز در شرکت توزیع برق مشهد
مهاجرت به متن باز در شرکت توزیع برق مشهد
 
Keydoc presentation (1)
Keydoc presentation (1)Keydoc presentation (1)
Keydoc presentation (1)
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازى
 
مقدمه ای بر هوش تجاری
مقدمه ای بر هوش تجاریمقدمه ای بر هوش تجاری
مقدمه ای بر هوش تجاری
 
Information security & isms
Information security & ismsInformation security & isms
Information security & isms
 

Defeating software analysis using logical anti-debugging technique

  • 1. ‫پويا‬ ‫تحليل‬ ‫از‬ ‫جلوگيري‬‫افزار‬ ‫نرم‬ ‫ي‬‫ﺑا‬‫ضدديباگر‬ ‫مكانيزم‬‫تحليل‬ ‫محيط‬ ‫يا‬ ‫اﺑزار‬ ‫شناسايي‬ ‫از‬ ‫فارغ‬ *‫رضايي‬ ‫عباسعلي‬١،‫تبريزي‬ ‫جوي‬ ‫نيك‬ ‫نيما‬٢‫زاهدي‬ ‫هادي‬ ‫محمد‬٣ ١* ،‫نور‬ ‫پيام‬ ‫دانشگاه‬ ،‫اطﻼعات‬ ‫فناوري‬ ‫و‬ ‫كامپيوتر‬ ‫مهندسي‬ ‫گروه‬ ،‫استاديار‬‫پستي‬ ‫صندوق‬٣٦٩٧-١٩٣٩٥‫ايران‬ ،‫تهران‬ A_rezaee@pnu.ac.ir ٢ ‫كارشناس‬‫ارشد‬‫بدافزار‬ ‫تحليلگر‬ ‫و‬ ‫اطﻼعات‬ ‫امنيت‬،‫دوره‬ ‫مدرس‬‫آپا‬ ‫مركز‬ ‫اطﻼعات‬ ‫امنيت‬ ‫هاي‬‫شريف‬ ‫صنعتي‬ ‫دانشگاه‬ nima.nikjoo@gmail.com ٣ ‫افزار‬ ‫نرم‬ ‫مهندسي‬ ‫دكتري‬،‫طوسي‬ ‫الدين‬ ‫نصير‬ ‫خواجه‬ ‫صنعتي‬ ‫دانشگاه‬ ‫استاديار‬ zahedi@Kntu.ac.ir ‫چكيده‬ ‫اخير‬ ‫سالهاي‬ ‫در‬‫تﻘا‬‫ﺑل‬‫روش‬ ‫و‬ ‫معكوس‬ ‫مهندسي‬ ‫ﺑين‬‫آن‬ ‫ﺑا‬ ‫مﻘاﺑله‬ ‫هاي‬،‫ﻋلﺖ‬ ‫ﺑه‬‫و‬ ‫آمدن‬ ‫پديد‬‫تاثير‬‫جديد‬ ‫موضوﻋات‬‫جمله‬ ‫از‬‫نفوذ‬ ‫هك‬،‫تازه‬ ‫مفهوم‬‫شاهد‬ ‫روز‬ ‫هر‬ ‫و‬ ‫يافته‬ ‫اي‬‫پيدايش‬‫روش‬‫مت‬ ‫و‬ ‫جديد‬ ‫هاي‬‫ن‬‫مهندسي‬ ‫حوزه‬ ‫در‬ ‫وﻋي‬‫روش‬ ‫آن‬ ‫ﺑالطبع‬ ‫و‬ ‫معكوس‬‫مﻘاﺑله‬ ‫هاي‬ .‫هستيم‬ ‫آن‬ ‫ﺑا‬‫مﻘاله‬‫معرفي‬ ‫ﺑه‬ ‫رو‬ ‫پيش‬‫روشي‬‫مي‬‫پردازد‬‫مي‬ ‫قادر‬ ‫را‬ ‫نويسان‬ ‫ﺑرنامه‬ ‫كه‬‫محـيط‬ ‫حضـور‬ ‫تشـخيص‬ ‫ﺑه‬ ‫نياز‬ ‫ﺑدون‬ ‫سازد‬ ‫حافظه‬ ‫در‬ ‫ديباگرها‬‫پذيري‬ ‫آسيب‬ ‫از‬ ‫استفاده‬ ‫يا‬‫حاضـر‬ ‫حـال‬ ‫در‬ ‫كه‬ ‫منطﻘي‬ ‫روند‬ ‫يك‬ ‫طي‬ ‫ﺑا‬ ‫فﻘط‬ ،‫نشده‬ ‫شناخته‬ ‫يا‬ ‫شده‬ ‫شناخته‬ ‫هاي‬ ‫در‬ ‫فﻘط‬‫خانواده‬‫مي‬ ‫اجرا‬ ‫قاﺑل‬ ‫ويندوز‬ ‫ﻋامل‬ ‫سيستم‬‫ﺑاشد‬‫ﺑرنامه‬ ‫اجراي‬ ‫از‬‫نظ‬ ‫مورد‬‫ر‬‫محيط‬ ‫در‬‫و‬ ‫سندﺑاكس‬ ،‫ديباگرها‬ ‫از‬ ‫اﻋم‬ ‫تحليل‬ ‫هاي‬ ‫ديگر‬ ‫موارد‬‫آورد‬ ‫ﻋمل‬ ‫ﺑه‬ ‫ممانعﺖ‬. ‫كليدي‬ ‫كلمات‬ ‫ضد‬‫مكانيزم‬ ،‫ضدديباگ‬ ،‫تحليل‬‫پذيري‬ ‫آسيب‬ ،‫قرمز‬ ‫قرص‬ ،‫منطﻘي‬ ‫هاي‬‫مهندسي‬ ‫ضد‬ ،‫ديباگرها‬ ‫هاي‬‫سامانه‬ ،‫معكوس‬‫محافظتي‬ ‫هاي‬ ١-‫مﻘدمه‬ ‫تحلي‬ ‫بهتر‬ ‫عبارت‬ ‫به‬ ‫يا‬ ‫دقيق‬ ‫بررسي‬ ‫براي‬ ‫گام‬ ‫اولين‬‫ـزار‬‫ـ‬‫اف‬ ‫ـرم‬‫ـ‬‫ن‬ ‫ـك‬‫ـ‬‫ي‬ ‫ل‬، ‫ـد‬‫ـ‬‫باش‬ ‫ـي‬‫ـ‬‫م‬ ‫آن‬ ‫ـراي‬‫ـ‬‫اج‬ ‫روند‬ ‫داشتن‬ ‫كنترل‬ ‫تحت‬.‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫رو‬ ‫ـن‬‫ـ‬‫اي‬ ‫از‬ ‫ـت‬‫ـ‬‫اس‬ ‫ـديهي‬‫ـ‬‫ب‬ ‫و‬ ‫ـروري‬‫ـ‬‫ض‬ ‫كامﻼ‬ ‫امري‬ ‫هدف‬ ‫اين‬ ‫به‬ ‫نيل‬ ‫براي‬ ‫ها‬ ‫ديباگر‬. ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـدتا‬‫ـ‬‫عم‬ ‫ـدافزار‬‫ـ‬‫ب‬ ‫تحليلگران‬ ‫و‬ ‫اطﻼعات‬ ‫امنيت‬ ‫متخصصين‬ ‫مقابل‬ ‫براي‬ ‫راهكار‬ ‫ارائه‬ ‫زمان‬ ‫كاهش‬ ‫در‬ ‫سعي‬ ‫تحليل‬ ‫جديد‬ ‫روشهاي‬‫ـا‬‫ـ‬‫ب‬ ‫ه‬ ‫بدافز‬‫بدفزار‬ ‫ديگر‬ ‫طرف‬ ‫از‬ ‫و‬ ‫دارند‬ ‫ارها‬‫ـده‬‫ـ‬‫پيچي‬ ‫ـدهاي‬‫ـ‬‫مت‬ ‫ارائه‬ ‫با‬ ‫نويسان‬، ‫روند‬‫م‬ ‫شكل‬ ‫هر‬ ‫به‬ ‫را‬ ‫تحليل‬‫مي‬ ‫تر‬ ‫سخت‬ ‫روز‬ ‫به‬ ‫روز‬ ‫مكن‬‫كنند‬. ‫از‬ ‫استفاده‬‫روش‬‫هاي‬‫ضد‬‫ديباگ‬‫در‬‫اين‬‫حوزه‬.‫دارد‬ ‫زيادي‬ ‫بسيار‬ ‫دﻻيل‬ ‫هكر‬ ‫و‬ ‫بدافزار‬ ‫اي‬ ‫حرفه‬ ‫هاي‬ ‫نويس‬ ‫برنامه‬ ‫كه‬ ‫عمده‬ ‫دﻻيل‬ ‫از‬ ‫يكي‬ ‫اما‬‫ـا‬‫ـ‬‫ه‬ ‫ها‬ ‫روش‬ ‫اين‬ ‫از‬‫بهره‬‫مي‬‫برند‬‫طول‬ ‫افزايش‬ ،‫عمر‬‫يك‬‫برنامه‬‫ـه‬‫ـ‬‫ب‬‫ـور‬‫ـ‬‫منظ‬ ‫انجام‬‫فعاليت‬‫خود‬‫به‬‫صورت‬‫مخفيانه‬‫است‬.‫به‬‫عبارت‬،‫ديگر‬‫ـا‬‫ـ‬‫آنه‬‫ـن‬‫ـ‬‫ازاي‬ ‫روش‬‫ها‬‫به‬‫منظور‬‫ـه‬‫ـ‬‫اينك‬‫ـين‬‫ـ‬‫متخصص‬‫ـت‬‫ـ‬‫امني‬‫و‬‫ـه‬‫ـ‬‫ب‬ ‫ـد‬‫ـ‬‫نتوانن‬ ‫ـات‬‫ـ‬‫اطﻼع‬ ‫ـت‬‫ـ‬‫دس‬ ‫ـه‬‫ـ‬‫ب‬ ‫اطﻼعات‬ ‫آنها‬ ‫توليدي‬ ‫بدافزارهاي‬ ‫عملياتي‬ ‫مقاصد‬ ‫از‬ ‫سادگي‬ ‫از‬ ‫آورند‬‫تجزيه‬ ‫فرآيند‬ ،‫ها‬ ‫روش‬ ‫اين‬ ‫لذا‬ .‫كنند‬ ‫مي‬ ‫استفاده‬ ‫ها‬ ‫روش‬ ‫اين‬ ‫ـه‬‫ـ‬‫متوج‬ ‫توان‬ ‫مي‬ ‫سختي‬ ‫به‬ ‫و‬ ‫كنند‬ ‫مي‬ ‫دشوار‬ ‫بسيار‬ ‫را‬ ‫بدافزار‬ ‫تحليل‬ ‫و‬ ‫ـي‬‫ـ‬‫طراح‬ ‫را‬ ‫ـا‬‫ـ‬‫ه‬ ‫آن‬ ‫كساني‬ ‫چه‬ ‫و‬ ‫است‬ ‫داشته‬ ‫اهدافي‬ ‫چه‬ ‫بدافزار‬ ‫كه‬ ‫شد‬ ‫اند‬ ‫كرده‬. ‫ابتدا‬ ‫كه‬ ‫همانطور‬‫بيان‬‫شد‬‫ـاگ‬‫ـ‬‫ديب‬ ‫ـد‬‫ـ‬‫ض‬ ‫ـاي‬‫ـ‬‫ه‬ ‫روش‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫هدف‬ ، ‫دش‬ ،‫كردن‬‫فرآيند‬ ‫ساختن‬ ‫وار‬‫معکوس‬ ‫مهندسی‬‫ـت‬‫ـ‬‫اس‬‫امـا‬ ‫را‬ ‫ديبـاگر‬ ‫يک‬ ‫وجود‬ ‫بدافزار‬ ‫يک‬ ‫چگونه‬ ‫دهد؟‬ ‫می‬ ‫تشخيص‬‫ـود‬‫ـ‬‫وج‬ ‫زيادي‬ ‫بسيار‬ ‫هاي‬ ‫روش‬ ‫منظور‬ ‫بدين‬
  • 2. ‫پرداخت‬ ‫آنها‬ ‫رايجترين‬ ‫به‬ ‫مقاله‬ ‫اين‬ ‫در‬ ‫كه‬ ‫دارد‬‫ـد‬‫ـ‬‫ش‬ ‫خواهد‬ ‫ه‬.‫ـرض‬‫ـ‬‫ف‬ ‫ـا‬‫ـ‬‫ب‬ ‫اين‬‫را‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫ـت‬‫ـ‬‫موفقي‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـت‬‫ـ‬‫توانس‬ ‫روش‬ ‫ـك‬‫ـ‬‫ي‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫با‬ ‫بدافزار‬ ‫كه‬ ‫تشخيص‬‫ـوﻻ‬‫ـ‬‫اص‬ ‫داد؟‬ ‫ـد‬‫ـ‬‫خواه‬ ‫انجام‬ ‫كاري‬ ‫چه‬ ‫ادامه‬ ‫در‬ ،‫دهد‬‫ـدافزارها‬‫ـ‬‫ب‬ ،‫ـد‬‫ـ‬‫دهن‬ ‫ـي‬‫ـ‬‫م‬ ‫ـخيص‬‫ـ‬‫تش‬ ‫را‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـامي‬‫ـ‬‫هنگ‬‫ـکل‬‫ـ‬‫ش‬ ‫ـه‬‫ـ‬‫ب‬ ‫کنند‬ ‫می‬ ‫عمل‬ ‫متفاوتی‬‫ـد‬‫ـ‬‫بتوانن‬ ‫تا‬‫مخـرب‬ ‫هويت‬ ‫خودشان‬‫شرايط‬ ‫از‬ ‫برخي‬ ‫در‬ ‫يا‬ ‫دارند‬ ‫نگه‬ ‫مخفي‬ ‫تحليلگر‬ ‫چشم‬ ‫از‬ ‫را‬ ‫ـه‬‫ـ‬‫ك‬ ‫شوند‬ ‫مي‬ ‫موجب‬‫ديباگر‬‫متوﻗـﻒ‬‫ـدافزارهاي‬‫ـ‬‫ب‬ ‫در‬ .‫ـود‬‫ـ‬‫ش‬ ‫عمليات‬‫از‬ ‫ـتر‬‫ـ‬‫بيش‬ ،‫ـر‬‫ـ‬‫اخي‬ ‫ـاي‬‫ـ‬‫ه‬ ‫ـه‬‫ـ‬‫ده‬ ‫در‬ ‫شده‬ ‫ي‬‫ـده‬‫ـ‬‫كنن‬ ‫ـراه‬‫ـ‬‫گم‬ ‫ـانيزم‬‫ـ‬‫مك‬ ‫ـي‬‫ـ‬‫م‬ ‫استفاده‬‫ـود‬‫ـ‬‫ش‬.‫را‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫ـود‬‫ـ‬‫وج‬ ‫ـدافزار‬‫ـ‬‫ب‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـامي‬‫ـ‬‫هنگ‬ ‫ـي‬‫ـ‬‫يعن‬ ‫در‬ ‫را‬ ‫ـر‬‫ـ‬‫تحليلگ‬ ‫و‬ ‫ـد‬‫ـ‬‫كن‬ ‫ـي‬‫ـ‬‫م‬ ‫ـار‬‫ـ‬‫رفت‬ ‫متفاوتي‬ ‫شكل‬ ‫به‬ ،‫دهد‬ ‫مي‬ ‫تشخيص‬ ‫ده‬ ‫مي‬ ‫قرار‬ ‫شرايطي‬‫به‬ ‫را‬ ‫آن‬ ‫هويت‬ ‫تواند‬ ‫نمي‬ ‫كه‬ ‫د‬‫ـخيص‬‫ـ‬‫تش‬ ‫ـتي‬‫ـ‬‫درس‬ .‫دهد‬‫ب‬‫عﻼوه‬،‫ض‬ ‫هاي‬ ‫مكانيزم‬ ‫ديگر‬‫نا‬ ‫وضعيت‬ ‫به‬ ‫توجه‬ ‫با‬ ‫تحليل‬ ‫د‬‫بسامان‬ ‫نرم‬ ‫صنعت‬‫در‬ ‫ـته‬‫ـ‬‫شكس‬ ‫ـل‬‫ـ‬‫قف‬ ‫و‬ ‫ـانوني‬‫ـ‬‫غيرق‬ ‫هاي‬ ‫نسخه‬ ‫از‬ ‫استفاده‬ ‫و‬ ‫افزار‬ ‫جهاني‬ ‫سطح‬،‫ـرم‬‫ـ‬‫ن‬ ‫امنيت‬ ‫محصوﻻت‬ ‫گان‬ ‫توليدكننده‬ ‫توجه‬ ‫مورد‬ ‫بسيار‬ ‫است‬ ‫گرفته‬ ‫قرار‬ ‫افزاري‬،‫ـن‬‫ـ‬‫اي‬ ‫از‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـا‬‫ـ‬‫ب‬ ‫تا‬‫روش‬‫ـاي‬‫ـ‬‫ه‬ ‫ـه‬‫ـ‬‫ﻻي‬ ‫ـا‬‫ـ‬‫ه‬ ‫م‬ ‫و‬ ‫داده‬ ‫افزايش‬ ‫را‬ ‫افزارها‬ ‫نرم‬ ‫امنيتي‬‫ـ‬‫ـ‬‫ب‬ ‫و‬ ‫زمان‬ ‫دت‬‫ـال‬‫ـ‬‫دنب‬ ‫ه‬‫ـه‬‫ـ‬‫هزين‬ ‫آن‬ ‫تو‬ ‫ـده‬‫ـ‬‫ش‬ ‫ـت‬‫ـ‬‫محافظ‬ ‫محصوﻻت‬ ‫افزاري‬ ‫نرم‬ ‫قفل‬ ‫شكستن‬‫ـرمين‬‫ـ‬‫مج‬ ‫ـط‬‫ـ‬‫س‬ .‫ـد‬‫ـ‬‫دهن‬ ‫ـزايش‬‫ـ‬‫اف‬ ‫را‬ ‫سايبري‬‫ـرد‬‫ـ‬‫رويك‬ ‫ـه‬‫ـ‬‫مقال‬ ‫ـن‬‫ـ‬‫اي‬ ‫در‬ ‫ـذا‬‫ـ‬‫ل‬‫ـلي‬‫ـ‬‫اص‬‫ـي‬‫ـ‬‫بررس‬ ‫ـا‬‫ـ‬‫ي‬ ‫طراحي‬ ‫اطﻼعات‬ ‫امنيت‬ ‫متخصصين‬ ‫توسط‬ ‫بعضا‬ ‫كه‬ ‫پيشين‬ ‫روشهاي‬ ‫ـداع‬‫ـ‬‫اب‬ ‫بدافزار‬ ‫گان‬ ‫كننده‬ ‫توليد‬ ‫توسط‬ ‫آنها‬ ‫از‬ ‫برخي‬ ‫و‬ ‫شده‬ ‫كشف‬‫ـده‬‫ـ‬‫ش‬ ،‫است‬‫باشد‬ ‫مي‬.‫نقاط‬ ،‫بررسي‬ ‫اتمام‬ ‫با‬‫قوت‬ ‫و‬ ‫ضعف‬‫كدا‬ ‫هر‬‫م‬‫نهايت‬ ‫در‬ ‫و‬ ‫ـالش‬‫ـ‬‫چ‬ ‫ـه‬‫ـ‬‫ب‬ ‫روش‬ ‫هر‬ ‫كارايي‬‫ـيده‬‫ـ‬‫كش‬‫ـواه‬‫ـ‬‫خ‬‫ـ‬‫ـ‬‫ش‬‫د‬.‫ـز‬‫ـ‬‫ني‬ ‫روش‬ ‫ـن‬‫ـ‬‫اي‬ ‫ـه‬‫ـ‬‫البت‬ ‫كاستي‬‫هاي‬‫را‬ ‫خود‬‫د‬ ‫خواهد‬‫اشت‬‫ممكن‬ ‫حالت‬ ‫بدترين‬ ‫در‬ ‫و‬،‫مي‬‫به‬ ‫تواند‬ ‫ـت‬‫ـ‬‫امني‬ ‫ـوزه‬‫ـ‬‫ح‬ ‫در‬ ‫ـال‬‫ـ‬‫فع‬ ‫ـين‬‫ـ‬‫محقق‬ ‫ـش‬‫ـ‬‫بخ‬ ‫ـام‬‫ـ‬‫اله‬ ‫جديد‬ ‫ايده‬ ‫يك‬ ‫عنوان‬ ‫ارائه‬ ‫جهت‬ ‫اطﻼعات‬‫تكنيك‬‫اول‬ ‫بخش‬ ‫در‬ ‫مقاله‬ ‫ادامه‬ ‫در‬ ‫باشد؛‬ ‫بهتر‬ ‫هاي‬ ‫ـي‬‫ـ‬‫برخ‬ ‫ـا‬‫ـ‬‫ب‬ ‫و‬ ‫داشت‬ ‫خواهيم‬ ‫گذرا‬ ‫نگاهي‬ ‫بحث‬ ‫مورد‬ ‫موضوع‬ ‫تاريخچه‬ ‫به‬ ‫شد‬ ‫خواهيم‬ ‫آشنا‬ ‫مفاهيم‬.‫ـت‬‫ـ‬‫فعالي‬ ‫دوم‬ ‫ـش‬‫ـ‬‫بخ‬ ‫در‬ ‫ـپس‬‫ـ‬‫س‬‫ـورت‬‫ـ‬‫ص‬ ‫ـاي‬‫ـ‬‫ه‬ ‫حوزه‬ ‫اين‬ ‫در‬ ‫پذيرفته‬‫شوند‬ ‫مي‬ ‫معرفي‬‫سعي‬ ‫ممكن‬ ‫جاي‬ ‫تا‬ ‫و‬‫ـد‬‫ـ‬‫ش‬ ‫ـي‬‫ـ‬‫م‬ ‫هركدام‬ ‫ضعف‬ ‫و‬ ‫قوت‬ ‫نقاط‬.‫شود‬ ‫بيان‬‫بخش‬ ‫در‬‫ـوم‬‫ـ‬‫س‬‫ر‬‫ـنهادي‬‫ـ‬‫پيش‬ ‫وش‬ ‫ارائه‬‫خواه‬‫شد‬ ‫د‬‫و‬‫ـت‬‫ـ‬‫نهاي‬ ‫در‬‫ـارم‬‫ـ‬‫چه‬ ‫ـش‬‫ـ‬‫بخ‬ ‫در‬‫ـه‬‫ـ‬‫ب‬‫و‬ ‫ـابي‬‫ـ‬‫ارزي‬‫ـه‬‫ـ‬‫مقايس‬ ‫روش‬ ‫با‬ ‫شده‬ ‫پيشنهاد‬ ‫روش‬ ‫اجمالي‬‫بيان‬ ‫موجود‬ ‫هاي‬‫مي‬‫شود‬. ٢-‫كارهاي‬‫مرتبط‬ ‫شد‬ ‫عنوان‬ ‫پيشتر‬ ‫كه‬ ‫همانطور‬‫روش‬‫ـول‬‫ـ‬‫معم‬ ‫از‬ ‫ـي‬‫ـ‬‫يك‬ ‫ـدديباگ‬‫ـ‬‫ض‬‫ـرين‬‫ـ‬‫ت‬ ‫مي‬ ‫تحليل‬ ‫از‬ ‫جلوگيري‬ ‫روشهاي‬‫كنن‬ ‫توليد‬ ‫توسط‬ ‫امروزه‬ ‫كه‬ ‫باشد‬‫دگان‬ ‫گسترده‬ ‫شكل‬ ‫به‬ ‫بدافزار‬ ‫نويسان‬ ‫برنامه‬ ‫و‬ ‫امنيتي‬ ‫هاي‬ ‫سيستم‬‫اي‬‫مورد‬ ‫مي‬ ‫قرار‬ ‫استفاده‬‫گيرد‬.‫ديباگ‬ ‫محيط‬ ‫شناسايي‬ ‫هاي‬ ‫تكنيك‬ ‫از‬ ‫استفاده‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـه‬‫ـ‬‫ك‬ ‫باشد‬ ‫مي‬ ‫ضدتحليل‬ ‫روشهاي‬ ‫ترين‬ ‫ابتدايي‬ ‫و‬ ‫ترين‬ ‫ساده‬ ‫از‬ ‫يكي‬ ‫به‬ ‫عمده‬ ‫طور‬٧‫م‬ ‫تقسيم‬ ‫عمده‬ ‫بخش‬‫ي‬‫ادامه‬ ‫در‬ ‫كه‬ ‫شوند‬‫معرفي‬‫ـي‬‫ـ‬‫م‬- ‫شو‬‫ن‬‫د‬[١٠] [٤] [١] [٣]: ١.‫سيستمي‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫بر‬ ‫مبتني‬ ‫ضدديباگ‬ ‫هاي‬ ‫تكنيك‬ )API-Based(. ٢.‫ـتم‬‫ـ‬‫سيس‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـده‬‫ـ‬‫نش‬ ‫مديريت‬ ‫خطاهاي‬ ‫و‬ ‫ها‬ ‫وقفه‬ ‫از‬ ‫استفاده‬ ‫دارد‬ ‫را‬ ‫آنها‬ ‫مديريت‬ ‫توانايي‬ ‫عامل‬‫؛‬‫ـه‬‫ـ‬‫ب‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫افزار‬ ‫نرم‬ ‫ولي‬ ‫ـد‬‫ـ‬‫تولي‬ ‫يا‬ ‫طراحي‬ ‫در‬ ‫ضعف‬ ‫خاطر‬،‫را‬ ‫ـا‬‫ـ‬‫آنه‬ ‫ـديريت‬‫ـ‬‫م‬ ‫ـايي‬‫ـ‬‫توان‬ ‫ندارد‬)Exception-Based(. ٣.‫ساختار‬ ‫از‬ ‫استفاده‬‫فرآيند‬‫نخ‬ ‫و‬ ‫ها‬‫؛‬‫از‬ ‫بخشهايي‬ ‫روند‬ ‫اين‬ ‫طي‬ ‫ساختار‬‫فرآيند‬‫ها‬‫ـديريت‬‫ـ‬‫م‬ ‫ـل‬‫ـ‬‫عام‬ ‫سيستم‬ ‫توسط‬ ‫كه‬‫ـده‬‫ـ‬‫ش‬‫و‬ ‫شامل‬‫ـد‬‫ـ‬‫مفي‬ ‫اطﻼعات‬‫ـودن‬‫ـ‬‫نب‬ ‫ـا‬‫ـ‬‫ي‬ ‫ـودن‬‫ـ‬‫ب‬ ‫ـاگ‬‫ـ‬‫ديب‬ ‫ـت‬‫ـ‬‫تح‬ ‫از‬ ‫ي‬ ‫فرآيند‬‫ـود‬‫ـ‬‫ش‬ ‫ـي‬‫ـ‬‫م‬ ‫ـتفاده‬‫ـ‬‫اس‬ ،‫است‬)Process and Thread Block Checking(. ٤.‫ـ‬‫ـ‬َ‫ب‬ ‫ـي‬‫ـ‬‫بررس‬ِ‫ر‬‫ـد‬‫ـ‬‫فرآين‬ ‫ـه‬‫ـ‬‫حافظ‬ ‫و‬ ‫ـدها‬‫ـ‬‫ك‬ ‫خط‬‫ـل‬‫ـ‬‫مقاب‬ ‫در‬ ‫ـاري‬‫ـ‬‫ج‬ ‫ـيط‬‫ـ‬‫محـ‬ ‫ـط‬‫ـ‬‫توسـ‬ ‫ـده‬‫ـ‬‫شـ‬ ‫ـاد‬‫ـ‬‫ايجـ‬ ‫ـرات‬‫ـ‬‫تغييـ‬‫ـاگر‬‫ـ‬‫ديبـ‬ ‫ـاي‬‫ـ‬‫هـ‬ )RuntimeCode Modification Check(. ٥.‫ـايي‬‫ـ‬‫شناس‬ ‫ـت‬‫ـ‬‫جه‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـان‬‫ـ‬‫ميزب‬ ‫ـتم‬‫ـ‬‫سيس‬ ‫ـزار‬‫ـ‬‫اف‬ ‫سخت‬ ‫بررسي‬ ‫محيط‬‫ـرچم‬‫ـ‬‫پ‬ ‫ـه‬‫ـ‬‫مقايس‬ ‫و‬ ‫ـازي‬‫ـ‬‫س‬ ‫ـبيه‬‫ـ‬‫ش‬ ‫هاي‬‫ـگر‬‫ـ‬‫پردازش‬ ‫ـاي‬‫ـ‬‫ه‬ )Register and Hardware based.( ٦.‫قط‬ ‫يك‬ ‫اجراي‬ ‫منطقي‬ ‫طور‬ ‫به‬ ،‫كدها‬ ‫اجراي‬ ‫زمان‬ ‫بررسي‬‫ـه‬‫ـ‬‫ع‬ ُ‫ك‬ ‫ديباگر‬ ‫تحت‬ ‫كد‬‫سيستم‬ ‫توسط‬ ‫و‬ ‫واسطه‬ ‫بدون‬ ‫اجرا‬ ‫از‬ ‫ندتر‬ ‫مي‬ ‫عامل‬‫باشد‬)Timing Detection(. ٧.‫مكانيزم‬ ‫از‬ ‫استفاده‬Self-Debugging‫ـد‬‫ـ‬‫فرآين‬ ‫آن‬ ‫ـي‬‫ـ‬‫ط‬ ‫كه‬ ِ‫ر‬‫ديباگ‬ ‫يك‬ ‫توسط‬ ‫نظر‬ ‫مورد‬‫ـده‬‫ـ‬‫ش‬ ‫ـي‬‫ـ‬‫طراح‬ ‫ـيش‬‫ـ‬‫پ‬ ‫از‬،‫ـت‬‫ـ‬‫تح‬ ‫مي‬ ‫قرار‬ ‫ديباگ‬‫گيرد‬.‫ـتم‬‫ـ‬‫سيس‬ ‫ـوانين‬‫ـ‬‫ق‬ ‫ـق‬‫ـ‬‫طب‬ ‫ـه‬‫ـ‬‫ك‬ ‫ـايي‬‫ـ‬‫آنج‬ ‫از‬ ‫فرآين‬ ‫يك‬ ‫ويندوز‬ ‫عامل‬‫ديباگ‬ ‫قابل‬ ‫ديباگر‬ ‫يك‬ ‫توسط‬ ‫فقط‬ ‫د‬ ‫مي‬‫نمي‬ ‫ممكن‬ ‫ثانويه‬ ‫ديباگر‬ ‫اتصال‬ ‫امكان‬ ‫باشد‬.‫شود‬ ‫با‬‫اجمالي‬ ‫معرفي‬‫اين‬‫شده‬ ‫عنوان‬ ‫هاي‬ ‫تكنيك‬‫نقاط‬ ‫ادامه‬ ‫در‬‫ضعف‬‫ـر‬‫ـ‬‫ه‬ ‫كدام‬‫شد‬ ‫خواهد‬ ‫بيان‬‫ـاي‬‫ـ‬‫ه‬ ‫ـك‬‫ـ‬‫تكني‬ ‫ـر‬‫ـ‬‫بهت‬ ‫ـه‬‫ـ‬‫مقايس‬ ‫ـان‬‫ـ‬‫امك‬ ‫نهايت‬ ‫در‬ ‫تا‬ ‫م‬‫پيشنهادي‬ ‫روش‬ ‫با‬ ‫رسوم‬‫فراهم‬.‫شود‬ ‫مب‬ ‫روش‬ ‫مزاياي‬ ‫از‬‫كاربري‬ ‫راحتي‬ ‫سيستمي‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫بر‬ ‫تني‬ ‫مي‬ ‫آن‬‫باشد‬،‫كه‬‫ـت‬‫ـ‬‫اس‬ ‫ـده‬‫ـ‬‫ش‬ ‫موجب‬‫ـد‬‫ـ‬‫بتوان‬ ‫ـي‬‫ـ‬‫راحت‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـويس‬‫ـ‬‫ن‬ ‫ـه‬‫ـ‬‫برنام‬ ‫نمايد‬ ‫سازي‬ ‫پياده‬ ‫را‬ ‫خود‬ ‫ضدتحليل‬ ‫ابتدايي‬ ‫مكانيزم‬.‫ـه‬‫ـ‬‫ب‬ ‫توجه‬ ‫با‬ ‫ليكن‬ ‫توابع‬ ‫ساختار‬ ‫تغييرات‬API‫ـتم‬‫ـ‬‫سيس‬ ‫از‬ ‫ـدد‬‫ـ‬‫متع‬ ‫ـاي‬‫ـ‬‫ه‬ ‫نسخه‬ ‫انتشار‬ ‫طي‬
  • 3. ‫ويندوز‬ ‫عامل‬،‫مشكﻼتي‬ ‫با‬ ‫روش‬ ‫اين‬‫ـروز‬‫ـ‬‫ب‬ ‫ـه‬‫ـ‬‫ب‬ ‫نياز‬ ‫جمله‬ ‫از‬ ‫است‬ ‫مواجه‬ ‫مكرر‬ ‫رساني‬‫دارد‬‫ـن‬‫ـ‬‫اي‬ ‫ـتندات‬‫ـ‬‫مس‬ ‫بودن‬ ‫عموم‬ ‫دسترس‬ ‫در‬ ‫به‬ ‫توجه‬ ‫با‬ ‫و‬ ‫ـه‬‫ـ‬‫برنام‬ ‫از‬ ‫ـوق‬‫ـ‬‫ف‬ ‫هاي‬ ‫فراخواني‬ ‫حذف‬ ‫و‬ ‫ردگيري‬ ،‫شناسايي‬ ‫امكان‬ ،‫توابع‬ ‫نفوذگ‬ ‫توسط‬‫ر‬‫مي‬ ‫مقدور‬ ‫سادگي‬ ‫به‬ ‫تحليلگر‬ ‫يا‬.‫باشد‬ ‫ـ‬‫ـ‬‫بس‬ ‫در‬ ‫ـده‬‫ـ‬‫نش‬ ‫ـديريت‬‫ـ‬‫م‬ ‫خطاهاي‬ ‫بر‬ ‫مبتني‬ ‫مكانيزم‬ ‫از‬ ‫استفاده‬‫ياري‬ ‫مي‬ ‫موارد‬‫و‬ ‫ـي‬‫ـ‬‫سفارش‬ ‫ـاي‬‫ـ‬‫ديباگره‬ ‫ـاد‬‫ـ‬‫ايج‬ ‫ـا‬‫ـ‬‫ب‬ ‫ولي‬ ‫شود‬ ‫واقع‬ ‫مفيد‬ ‫تواند‬ ‫ـده‬‫ـ‬‫پرون‬ ‫در‬ ‫ـر‬‫ـ‬‫تغيي‬ ‫ايجاد‬ ‫بدون‬ ‫ميتوان‬ ‫ها‬ ‫وقفه‬ ‫قبال‬ ‫در‬ ‫آنها‬ ‫سازي‬ ‫مقاوم‬ ‫روتين‬ ‫تمامي‬ ‫اجرايي‬.‫نمود‬ ‫خنثي‬ ‫را‬ ‫آن‬ ‫ضدديباگ‬ ‫هاي‬ ‫داده‬ ‫ساختمان‬ ‫شامل‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫فرآيند‬ ‫يا‬ ‫پروسه‬ ‫هر‬- ‫مي‬ ‫اي‬‫باشد‬)Process Environment Block(.‫ـ‬‫ـ‬‫ه‬‫ـو‬‫ـ‬‫محت‬ ‫ـوك‬‫ـ‬‫بل‬ ‫ر‬‫ا‬‫ي‬ ‫ـي‬‫ـ‬‫م‬ ‫ـاربر‬‫ـ‬‫ك‬ ‫نياز‬ ‫صورت‬ ‫در‬ ‫و‬ ‫عامل‬ ‫سيستم‬ ‫استفاده‬ ‫جهت‬ ‫به‬ ‫اطﻼعاتي‬- ‫باشد‬.‫مي‬ ‫اطﻼعات‬ ‫اين‬ ‫از‬‫ـام‬‫ـ‬‫ن‬ ‫ـون‬‫ـ‬‫همچ‬ ‫مواردي‬ ‫به‬ ‫دسترسي‬ ‫براي‬ ‫توان‬ ‫اين‬ ‫از‬ ‫مواردي‬ ‫و‬ ‫فرآيند‬ ‫اجرايي‬ ‫مسير‬ ،‫والد‬ ‫فرآيند‬ ‫نام‬ ،‫حافظه‬ ‫در‬ ‫فرآيند‬ ‫اشاره‬ ‫دست‬‫داشت‬‫ن‬ ‫عنوان‬ ‫به‬ ‫؛‬‫صورتي‬ ‫در‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫مونه‬ ‫ـد‬‫ـ‬‫فرآين‬ ‫ـام‬‫ـ‬‫ن‬ ،‫آن‬ ‫ـد‬‫ـ‬‫وال‬ ‫ـد‬‫ـ‬‫فرآين‬ ‫ـرد‬‫ـ‬‫بگي‬ ‫ـرار‬‫ـ‬‫ق‬ ‫ديباگ‬ ‫تحت‬ ‫فرآيند‬ ‫يك‬ ‫كه‬ ‫فرآيند‬ ‫صورت‬ ‫اين‬ ‫غير‬ ‫در‬ ‫بود‬ ‫خواهد‬ ‫ديباگر‬explorer.exe‫ـوان‬‫ـ‬‫عن‬ ‫به‬ ‫مي‬ ‫داده‬ ‫تشخيص‬ ‫والد‬ ‫فرآيند‬‫ـي‬‫ـ‬‫م‬ ‫اينرو‬ ‫از‬ ‫شود‬‫ـه‬‫ـ‬‫ب‬ ‫ـي‬‫ـ‬‫دسترس‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـوان‬‫ـ‬‫ت‬ ‫آ‬ ‫اطﻼعات‬ ‫استخراج‬ ‫و‬ ‫فوق‬ ‫اي‬ ‫داده‬ ‫ساختار‬‫ـد‬‫ـ‬‫وال‬ ‫ـد‬‫ـ‬‫فرآين‬ ‫ـه‬‫ـ‬‫ك‬ ‫دريافت‬ ‫ن‬ ‫توج‬ ‫با‬ ‫ولي‬ .‫خير‬ ‫يا‬ ‫است‬ ‫ديباگر‬ ‫يك‬‫ه‬‫ـوط‬‫ـ‬‫مرب‬ ‫ـاري‬‫ـ‬‫معم‬ ‫به‬‫ـديريت‬‫ـ‬‫م‬ ‫ـه‬‫ـ‬‫ب‬ ‫شكل‬ ‫در‬ ‫كه‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫فرآيندهاي‬١‫است‬ ‫شده‬ ‫داده‬ ‫نمايش‬ ‫دسترسي‬ ‫قطع‬ ‫با‬‫به‬ ‫كاربردي‬ ‫برنامه‬‫توابع‬API‫ـا‬‫ـ‬‫آنه‬ ‫جايگزيني‬ ‫و‬ ‫اصلي‬ ‫مكانيز‬ ‫به‬ ‫كه‬ ‫بازگشتي‬ ‫مقادير‬ ‫جعل‬ ‫يا‬ ‫و‬ ‫جعلي‬ ‫توابع‬ ‫با‬‫م‬Hook‫ـهرت‬‫ـ‬‫ش‬ ‫دارد‬‫مي‬‫توان‬‫ـت‬‫ـ‬‫درياف‬ ‫در‬ ‫ـر‬‫ـ‬‫بهت‬ ‫عبارت‬ ‫به‬ ‫يا‬ ‫ديباگر‬ ‫صحيح‬ ‫تشخيص‬ ‫در‬ ‫صحيح‬ ‫اطﻼعات‬،‫اخﻼ‬‫كرد‬ ‫ايجاد‬ ‫ل‬.‫ا‬‫ـت‬‫ـ‬‫عل‬ ‫ـه‬‫ـ‬‫ب‬ ‫كه‬ ‫است‬ ‫ذكر‬ ‫به‬ ‫ﻻزم‬ ‫لبته‬ ‫تعدد‬‫ـه‬‫ـ‬‫نمون‬ ‫ـي‬‫ـ‬‫بررس‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـا‬‫ـ‬‫تنه‬ ،‫ـوق‬‫ـ‬‫ف‬ ‫شناسايي‬ ‫تكنيك‬ ‫از‬ ‫عبور‬ ‫روشهاي‬ ‫باقي‬ ‫از‬ ‫و‬ ‫پرداخته‬ ‫امنيتي‬ ‫سيستم‬ ‫نقض‬ ‫مثال‬ ‫يك‬ ‫عنوان‬ ‫به‬ ‫شده‬ ‫عنوان‬ ‫موارد‬‫شود‬ ‫مي‬ ‫صرفنظر‬[١٢]. ‫شكل‬١‫فرا‬‫ي‬‫ﻨﺪ‬‫معمول‬‫فراخوان‬‫ي‬‫توابع‬‫ﺳ‬‫ي‬‫ﺴﺘم‬‫ي‬‫توﺳﻂ‬‫برنﺎمﻪ‬‫و‬ ‫مﺪ‬‫ي‬‫ر‬‫ي‬‫ﺖ‬‫آن‬‫توﺳﻂ‬‫ﺳ‬‫ي‬‫ﺴﺘﻢ‬‫ﻋﺎمل‬ ) ‫شكل‬ ‫در‬ ‫كه‬ ‫همانطور‬٢(،‫است‬ ‫مشخص‬‫ـواني‬‫ـ‬‫فراخ‬ ‫ـا‬‫ـ‬‫ب‬ ‫ـاربردي‬‫ـ‬‫ك‬ ‫برنامه‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـل‬‫ـ‬‫عام‬ ‫ـتم‬‫ـ‬‫سيس‬ ‫ـلي‬‫ـ‬‫اص‬ ‫ـاي‬‫ـ‬‫ه‬ ‫ﻻيه‬ ‫به‬ ‫ارجاع‬ ‫جاي‬ ‫به‬ ‫سيستمي‬ ‫توابع‬ ‫برنامه‬‫به‬ ‫موسوم‬User-Mode Hook Engine‫ـي‬‫ـ‬‫م‬ ‫ـل‬‫ـ‬‫منتق‬‫ـو‬‫ـ‬‫ش‬‫ن‬‫د‬.‫در‬ ‫ـي‬‫ـ‬‫م‬ ‫سيستمي‬ ‫توابع‬ ‫از‬ ‫حاصل‬ ‫هاي‬ ‫خروجي‬ ‫تمامي‬ ‫حالت‬ ‫اين‬‫در‬ ‫ـد‬‫ـ‬‫توان‬ ‫شده‬ ‫تغيير‬ ‫دستخوش‬ ‫مذكور‬ ‫بخش‬‫شود‬ ‫داده‬ ‫برگشت‬ ‫اصلي‬ ‫برنامه‬ ‫به‬ ‫و‬. ‫ـايي‬‫ـ‬‫شناس‬ ‫در‬ ‫ـه‬‫ـ‬‫برنام‬ ‫ـحيح‬‫ـ‬‫ص‬ ‫ـت‬‫ـ‬‫فعالي‬ ‫از‬ ‫ـوگيري‬‫ـ‬‫جل‬ ‫باعث‬ ‫ترتيب‬ ‫بدين‬ ‫ديباگر‬ ‫محيط‬‫مي‬‫گردد‬[٧].[١١].. ‫شكل‬٢‫نمﺎ‬‫ي‬‫كل‬‫ي‬‫بعﺪ‬‫از‬‫قرار‬‫ﮔرفﺘﻦ‬‫ي‬‫ك‬‫برنﺎمﻪ‬Hook‫كﻨﻨﺪه‬‫توابع‬ ‫ﺳ‬‫ي‬‫ﺴﺘم‬‫ي‬‫مﺎب‬‫ي‬‫ﻦ‬‫برنﺎمﻪ‬‫كﺎربرد‬‫ي‬‫و‬‫ﺳ‬‫ي‬‫ﺴﺘﻢ‬‫ﻋﺎمل‬ ‫مكانيزم‬ ‫ساير‬ ‫از‬‫امروزه‬ ‫كه‬ ‫ضدديباگ‬ ‫هاي‬‫ـي‬‫ـ‬‫م‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـدرت‬‫ـ‬‫ن‬ ‫به‬‫ـود‬‫ـ‬‫ش‬ ‫بررسي‬‫مقدار‬ ‫مرتب‬Integrityُ‫ك‬‫حافظه‬ ‫در‬ ‫دها‬‫مي‬ ‫اجرا‬ ‫از‬ ‫پس‬ ‫و‬‫باشد‬‫؛‬ ‫در‬ ‫تا‬‫ـان‬‫ـ‬‫امك‬ ‫ـاظر‬‫ـ‬‫ن‬ ‫ـه‬‫ـ‬‫برنام‬ ‫هر‬ ‫يا‬ ‫ديباگر‬ ‫توسط‬ ‫توقف‬ ‫نقاط‬ ‫ايجاد‬ ‫صورت‬ ‫گردد‬ ‫فراهم‬ ‫شناسايي‬.‫در‬ ‫ـاﻻ‬‫ـ‬‫ب‬ ‫ـيار‬‫ـ‬‫بس‬ ‫ـربار‬‫ـ‬‫س‬ ‫ايجاد‬ ‫علت‬ ‫به‬ ‫مكانيزم‬ ‫اين‬ ‫ميزبان‬ ‫سيستم‬،‫و‬ ‫دارد‬ ‫كمي‬ ‫بسيار‬ ‫كاربرد‬‫صرفا‬‫خيلي‬ ‫موارد‬ ‫در‬‫محدود‬ ‫مي‬ ‫چشم‬ ‫به‬ ‫بدافزارها‬ ‫از‬ ‫ابتدايي‬ ‫و‬.‫خورد‬ ‫بحث‬ ‫مورد‬ ‫بعدي‬ ‫روش‬،‫موس‬ ‫مكانيزم‬‫قرص‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫وم‬‫ـز‬‫ـ‬‫قرم‬ ‫ـاي‬‫ـ‬‫ه‬ ‫مي‬‫نرم‬ ‫يا‬ ‫بدافزار‬ ‫آن‬ ‫طي‬ ‫كه‬ ‫باشد‬‫محيط‬ ‫در‬ ‫حضور‬ ‫به‬ ‫تمايل‬ ‫كه‬ ‫افزاري‬- ‫ـذيري‬‫ـ‬‫پ‬ ‫ـيب‬‫ـ‬‫آس‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫باشد‬ ‫نداشته‬ ‫را‬ ‫ساز‬ ‫شبيه‬ ‫هاي‬‫ـن‬‫ـ‬‫اي‬ ‫ـاي‬‫ـ‬‫ه‬ ‫محيط‬‫ـاطر‬‫ـ‬‫خ‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـاه‬‫ـ‬‫گ‬ ‫و‬ ‫ـاز‬‫ـ‬‫س‬ ‫ـبيه‬‫ـ‬‫ش‬ ‫ـاري‬‫ـ‬‫معم‬ ‫ـوع‬‫ـ‬‫ن‬ ‫ـت‬‫ـ‬‫عل‬ ‫به‬ ‫گاه‬ ‫كه‬ ‫ها‬ ‫ـتفا‬‫ـ‬‫اس‬ ‫ـوء‬‫ـ‬‫س‬ ‫ـد‬‫ـ‬‫ان‬ ‫شده‬ ‫ايجاد‬ ‫نويسي‬ ‫برنامه‬ ‫اشتباهات‬‫ـا‬‫ـ‬‫نهايت‬ ‫و‬ ‫ـرده‬‫ـ‬‫ك‬ ‫ده‬ ‫ـي‬‫ـ‬‫م‬ ‫تشخيص‬ ‫را‬ ‫شده‬ ‫سازي‬ ‫شبيه‬ ‫يا‬ ‫واقعي‬ ‫محيط‬ ‫در‬ ‫خود‬ ‫حضور‬‫ـد‬‫ـ‬‫ده‬. ‫براي‬‫كسب‬‫ـر‬‫ـ‬‫بهت‬ ‫درك‬‫از‬ ‫ي‬‫ـذكور‬‫ـ‬‫م‬ ‫روش‬،‫مثال‬‫ـه‬‫ـ‬‫ارائ‬ ‫ي‬‫ـي‬‫ـ‬‫م‬.‫ـود‬‫ـ‬‫ش‬‫ـر‬‫ـ‬‫اكث‬ ‫همچون‬ ‫مجازي‬ ‫هاي‬ ‫سيستم‬ ‫از‬ ‫معموﻻ‬ ‫بدافزار‬ ‫تحليلگران‬VMWare ‫و‬Virtual Box‫مي‬ ‫استفاده‬ ‫مشابه‬ ‫ابزار‬ ‫و‬‫ـراي‬‫ـ‬‫اج‬ ‫ـورت‬‫ـ‬‫ص‬ ‫در‬ ‫ـا‬‫ـ‬‫ت‬ ‫كنند‬ ‫سهوي‬‫ـردد‬‫ـ‬‫نگ‬ ‫وارد‬ ‫آسيب‬ ‫مجموعه‬ ‫اصلي‬ ‫ساخت‬ ‫زير‬ ‫به‬ ‫بدافزار‬ ‫كدهاي‬.
  • 4. ‫محيط‬ ‫در‬ ‫تحليل‬ ‫از‬ ‫گريز‬ ‫براي‬ ‫نيز‬ ‫بدافزارنويسان‬ ‫لذا‬‫مجازي‬ ‫ايزوله‬ ‫هاي‬، ‫ـد‬‫ـ‬‫دارن‬ ‫خود‬ ‫رفتار‬ ‫تغيير‬ ‫نهايت‬ ‫در‬ ‫و‬ ‫آنها‬ ‫شناسايي‬ ‫در‬ ‫سعي‬.‫ـد‬‫ـ‬‫رون‬ ‫ـن‬‫ـ‬‫اي‬، ‫طي‬٢‫مي‬ ‫صورت‬ ‫مجزا‬ ‫مرحله‬‫ـذيرد‬‫ـ‬‫پ‬:‫ـانيزم‬‫ـ‬‫مك‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫اول‬ ‫ـه‬‫ـ‬‫مرحل‬ ‫ش‬ ‫ساده‬ ‫هاي‬‫ـام‬‫ـ‬‫ن‬ ‫و‬ ‫ـا‬‫ـ‬‫درايوره‬ ‫حضور‬ ‫از‬ ‫استفاده‬ ‫با‬ ‫مجازي‬ ‫محيط‬ ‫ناسايي‬ ‫ـي‬‫ـ‬‫م‬ ‫مهمان‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫شده‬ ‫سازي‬ ‫شبيه‬ ‫افزارهاي‬ ‫سخت‬‫ـد‬‫ـ‬‫باش‬‫و‬ ‫پذيري‬ ‫آسيب‬ ‫نقاط‬ ‫از‬ ‫استفاده‬ ‫دوم‬ ‫مرحله‬‫ـه‬‫ـ‬‫پرداخت‬ ‫ـا‬‫ـ‬‫آنه‬ ‫ـه‬‫ـ‬‫ب‬ ‫پيشتر‬ ‫كه‬ ‫است‬ ‫شده‬‫ادامه‬ ‫در‬ .‫مي‬ ‫شده‬ ‫سازي‬ ‫شبيه‬ ‫محيط‬ ‫شناسايي‬ ‫به‬ ‫اقدام‬‫كند‬ ‫كه‬‫آن‬ ‫فرآيند‬ ‫تشريح‬‫ح‬ ‫از‬‫خارج‬ ‫بحث‬ ‫موضوع‬ ‫يطه‬‫باشد‬ ‫مي‬‫و‬‫ـه‬‫ـ‬‫ب‬ ‫ـط‬‫ـ‬‫فق‬ ‫مي‬ ‫بسنده‬ ‫معتبر‬ ‫مرجع‬ ‫چند‬ ‫به‬ ‫ارجاع‬ ‫و‬ ‫معرفي‬‫شود‬. ‫روش‬‫تحليلگر‬ ‫كردن‬ ‫سردرگم‬ ‫براي‬ ‫خود‬ ‫نوع‬ ‫در‬ ‫شده‬ ‫ذكر‬ ‫هاي‬،‫روند‬ ‫زيركانه‬‫مي‬ ‫دنبال‬ ‫را‬ ‫اي‬‫به‬ ‫ضدديباگ‬ ‫روش‬ ‫كدام‬ ‫هيچ‬ ‫واقع‬ ‫در‬ ‫ولي‬ ‫كنند‬ ‫نمي‬ ‫حساب‬‫آيند‬.‫ـدافزار‬‫ـ‬‫ب‬ ‫يك‬ ‫كه‬ ‫صورتي‬ ‫در‬ ‫حتي‬ ‫چراكه‬‫ـزار‬‫ـ‬‫اف‬ ‫ـرم‬‫ـ‬‫ن‬ ‫ـا‬‫ـ‬‫ي‬ ‫ـازي‬‫ـ‬‫س‬ ‫ـبيه‬‫ـ‬‫ش‬ ‫ـيط‬‫ـ‬‫مح‬ ‫ـايي‬‫ـ‬‫شناس‬ ‫هاي‬ ‫تكنيك‬ ‫تمامي‬ ‫به‬ ‫شده‬ ‫محافظت‬ ‫مي‬ ‫باز‬ ‫باشد‬ ‫شده‬ ‫مجهز‬ ‫شده‬‫عكس‬ ‫تحليل‬ ‫و‬ ‫خط‬ ‫به‬ ‫خط‬ ‫اجراي‬ ‫با‬ ‫توان‬ ‫برنامه‬ ‫العمل‬،‫ك‬ ‫شناسايي‬ ‫نقاط‬‫اين‬ ‫و‬ ‫نمود‬ ‫خنثي‬ ‫را‬ ‫آنها‬ ‫و‬ ‫كشف‬ ‫را‬ ‫ننده‬ ‫تكنيك‬ ‫تمامي‬ ‫مشترك‬ ‫ضعف‬ ‫نقطه‬ ‫مساله‬‫مي‬ ‫موجود‬ ‫هاي‬.‫باشد‬ ‫روش‬Timing Detection) ‫شكل‬ ‫در‬ ‫كه‬ ‫است‬ ‫تلفيقي‬ ‫روشي‬٣‫ـد‬‫ـ‬‫رون‬ ( ‫آن‬ ‫كلي‬.‫شود‬ ‫مي‬ ‫مشاهه‬‫ـتمي‬‫ـ‬‫سيس‬ ‫ـع‬‫ـ‬‫تواب‬ ‫از‬ ‫ـه‬‫ـ‬‫ك‬ ‫صورتي‬ ‫در‬ ‫روش‬ ‫اين‬ ‫مي‬ ‫نكند‬ ‫استفاده‬ ‫زمان‬ ‫محاسبه‬ ‫براي‬‫ـه‬‫ـ‬‫ب‬ ‫توجه‬ ‫با‬ ‫ولي‬ ‫باشد‬ ‫كارآمد‬ ‫تواند‬ ‫ـتمي‬‫ـ‬‫سيس‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫بدون‬ ‫زمان‬ ‫محاسبه‬ ‫باﻻي‬ ‫بسيار‬ ‫پيچيدگي‬، ‫ب‬ ‫شناسايي‬ ‫روش‬ ‫در‬ ‫موجود‬ ‫مشكل‬‫اين‬ ‫براي‬ ‫سيستمي‬ ‫توابع‬ ‫از‬ ‫استفاده‬ ‫ا‬ ‫ـراي‬‫ـ‬‫ب‬ ‫ـث‬‫ـ‬‫ثال‬ ‫ـد‬‫ـ‬‫ك‬ ‫ـه‬‫ـ‬‫قطع‬ ‫ـور‬‫ـ‬‫حض‬ ‫ـان‬‫ـ‬‫امك‬ ‫و‬ ‫آمد‬ ‫خواهد‬ ‫وجود‬ ‫به‬ ‫نيز‬ ‫مدل‬ ‫داشت‬ ‫خواهد‬ ‫وجود‬ ‫بازگشتي‬ ‫يا‬ ‫ارسالي‬ ‫مقادير‬ ‫دستكاري‬[١٤] [١٢]. ‫شكل‬٣‫فرآ‬‫ي‬‫ﻨﺪ‬‫شﻨﺎﺳﺎ‬‫يي‬‫برنﺎمﻪ‬‫تﺤﺖ‬‫د‬‫ي‬‫بﺎگ‬‫توﺳﻂ‬‫مكﺎن‬‫ي‬‫زم‬Timing ‫شكل‬ ‫در‬ ‫كه‬ ‫همانگونه‬٣‫است‬ ‫شده‬ ‫مشخص‬‫اجراي‬ ‫با‬ ‫ابتدا‬ ‫نويس‬ ‫برنامه‬ ‫خود‬ ‫كدهاي‬ ‫باره‬ ‫چندين‬،‫ـبت‬‫ـ‬‫نس‬ ‫را‬ ‫آنها‬ ‫پايان‬ ‫و‬ ‫شروع‬ ‫از‬ ‫تخميني‬ ‫زمان‬ ‫مي‬ ‫بدست‬ ‫اجرا‬ ‫محيط‬ ‫و‬ ‫افزار‬ ‫سخت‬ ‫به‬‫آورد‬.‫زماني‬‫پيدا‬ ‫قطعيت‬ ‫امر‬ ‫اين‬ ‫مي‬‫ـين‬‫ـ‬‫ب‬ ‫ـادي‬‫ـ‬‫ع‬ ‫ـورت‬‫ـ‬‫ص‬ ‫در‬ ‫برنامه‬ ‫كد‬ ‫قطعه‬ ‫اجراي‬ ‫زمان‬ ‫كه‬ ‫كند‬١٠‫ـا‬‫ـ‬‫ت‬ ‫نهايت‬١٥‫ثانيه‬‫و‬ ‫باشد‬‫مقدا‬ ‫اين‬‫ـي‬‫ـ‬‫م‬ ‫ـره‬‫ـ‬‫ذخي‬ ‫ـه‬‫ـ‬‫برنام‬ ‫در‬ ‫ر‬‫ـود‬‫ـ‬‫ش‬.‫از‬ ‫ـل‬‫ـ‬‫قب‬ ‫قطعه‬ ‫اجراي‬،‫كد‬‫مي‬ ‫دريافت‬ ‫ميزبان‬ ‫سيستم‬ ‫فعلي‬ ‫زمان‬‫ـود‬‫ـ‬‫ش‬‫و‬‫ـپس‬‫ـ‬‫س‬ ‫مي‬ ‫اجرا‬ ‫برنامه‬ ‫كد‬ ‫قطعه‬‫شود‬.‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫ـيط‬‫ـ‬‫مح‬ ‫در‬ ‫اجرا‬ ‫آنجاييكه‬ ‫از‬ ُ‫ك‬‫ـي‬‫ـ‬‫م‬ ‫واسطه‬ ‫بدون‬ ‫حالت‬ ‫در‬ ‫اجرا‬ ‫از‬ ‫ندتر‬‫ـل‬‫ـ‬‫داخ‬ ‫ـه‬‫ـ‬‫برنام‬ ‫ـر‬‫ـ‬‫اگ‬ ‫ـذا‬‫ـ‬‫ل‬ ‫ـد‬‫ـ‬‫باش‬ ‫ـتر‬‫ـ‬‫بيش‬ ‫شده‬ ‫صرف‬ ‫زمان‬ ‫شود‬ ‫اجرا‬ ‫ديباگر‬ ‫محيط‬‫زده‬ ‫ـين‬‫ـ‬‫تخم‬ ‫ـدار‬‫ـ‬‫مق‬ ‫از‬ ‫بود‬ ‫خواهد‬ ‫شده‬.‫كد‬ ‫اجراي‬ ‫از‬ ‫بعد‬ ‫آخر‬ ‫مرحله‬ ‫در‬،‫ـتم‬‫ـ‬‫سيس‬ ‫زمان‬ ‫مجدد‬ ‫مي‬ ‫دريافت‬ ‫ميزبان‬‫مقدار‬ ‫دو‬ ‫اين‬ ‫تفريق‬ ‫با‬ ‫و‬ ‫شود‬،‫براي‬ ‫شده‬ ‫سپري‬ ‫زمان‬ ُ‫ك‬ ‫قطعه‬ ‫اجراي‬‫مي‬ ‫بدست‬ ‫د‬‫آيد‬.‫ـدار‬‫ـ‬‫مق‬ ‫با‬ ‫آمده‬ ‫بدست‬ ‫عدد‬ ‫اگر‬ ‫پايان‬ ‫در‬ ‫خواه‬ ‫اين‬ ‫بر‬ ‫فرض‬ ‫باشد‬ ‫داشته‬ ‫مغايرت‬ ‫شده‬ ‫زده‬ ‫تخمين‬‫برنامه‬ ‫كه‬ ‫بود‬ ‫د‬ ‫اجرا‬ ‫حال‬ ‫در‬ ‫ديباگر‬ ‫يك‬ ‫تحت‬‫مي‬‫باشد‬[١٤]. ‫در‬‫ادامه‬‫مكانيزم‬Self-Debugging‫روش‬ ‫به‬ ‫نسبت‬ ‫زيادي‬ ‫شباهت‬ ‫كه‬ ‫پيشنهادي‬.‫شود‬ ‫مي‬ ‫معرفي‬ ‫دارد‬‫ـا‬‫ـ‬‫ارتق‬ ‫نسخه‬ ‫نوعي‬ ‫به‬ ‫پيشنهادي‬ ‫روش‬ ‫مي‬ ‫پيشين‬ ‫روش‬ ‫از‬ ‫نوين‬ ‫مدلي‬ ‫همراه‬ ‫به‬ ‫يافته‬.‫باشد‬ ‫شكل‬٤‫رون‬‫ﺪ‬‫فرآ‬‫ي‬‫ﻨﺪ‬‫اجرا‬‫ي‬‫مكﺎن‬‫ي‬‫زم‬Self-Debugging ) ‫شكل‬ ‫در‬ ‫شده‬ ‫ارائه‬ ‫مدل‬ ‫قوت‬ ‫نقاط‬ ‫نخست‬٤(:‫شود‬ ‫مي‬ ‫ارائه‬ ١.‫طبق‬‫قوانين‬‫ويندوز‬ ‫عامل‬ ‫سيستم‬،‫در‬ ‫ـا‬‫ـ‬‫تنه‬ ‫فرآيند‬ ‫يك‬ ‫مي‬ ‫زمان‬ ‫يك‬‫ـاگر‬‫ـ‬‫ديب‬ ‫ـك‬‫ـ‬‫ي‬ ‫كنترل‬ ‫و‬ ‫ديباگ‬ ‫تحت‬ ‫تواند‬
  • 5. ‫گيرد‬ ‫قرار‬.‫اتصال‬ ‫با‬ ‫لذا‬‫ـد‬‫ـ‬‫فرآين‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـي‬‫ـ‬‫جعل‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫يك‬ ،‫مدنظر‬‫از‬‫ديباگر‬ ‫اتصال‬‫ـه‬‫ـ‬‫ثانوي‬ ‫هاي‬‫ـل‬‫ـ‬‫عم‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـت‬‫ـ‬‫ممانع‬ ‫مي‬.‫آيد‬ ٢.‫ـدر‬‫ـ‬‫پ‬ ‫ـدل‬‫ـ‬‫م‬ ‫به‬ ‫توجه‬ ‫با‬-‫ـدها‬‫ـ‬‫فرآين‬ ‫در‬ ‫ـدي‬‫ـ‬‫فرزن‬،‫ـان‬‫ـ‬‫امك‬ ‫مي‬ ‫فراهم‬ ‫سادگي‬ ‫به‬ ‫آنها‬ ‫مابين‬ ‫اطﻼعات‬ ‫تبادل‬‫و‬ ‫ـود‬‫ـ‬‫ش‬ ‫مي‬ ‫اينرو‬ ‫از‬‫ـي‬‫ـ‬‫بررس‬ ‫ـوان‬‫ـ‬‫ت‬‫دو‬ ‫ـب‬‫ـ‬‫قال‬ ‫در‬ ‫را‬ ‫ـي‬‫ـ‬‫امنيت‬ ‫ـاي‬‫ـ‬‫ه‬ .‫داد‬ ‫انجام‬ ‫مجزا‬ ‫فرآيند‬ ٣.‫ـدل‬‫ـ‬‫م‬ ‫به‬ ‫نسبت‬ ‫مدل‬ ‫اين‬‫ـاي‬‫ـ‬‫خط‬ ‫ـد‬‫ـ‬‫درص‬ ‫ـين‬‫ـ‬‫پيش‬ ‫ـاي‬‫ـ‬‫ه‬ ‫ت‬ ‫با‬ ‫و‬ ‫دارد‬ ‫كمتري‬‫به‬ ‫وجه‬‫ـات‬‫ـ‬‫آزمايش‬‫ـي‬‫ـ‬‫تجرب‬،‫ـال‬‫ـ‬‫احتم‬ ‫ـل‬‫ـ‬‫عام‬ ‫ـتم‬‫ـ‬‫سيس‬ ‫نسل‬ ‫ارتقاء‬ ‫طول‬ ‫در‬ ‫كمتري‬ ‫ناسازگاري‬ .‫دارد‬ ‫وجود‬ ‫ويندوز‬ ٤.‫مكانيزم‬»‫نانوميتس‬«‫ـي‬‫ـ‬‫طراح‬ ‫ـيوه‬‫ـ‬‫ش‬ ‫ـين‬‫ـ‬‫هم‬ ‫از‬ ‫الهام‬ ‫با‬ ‫كه‬ ‫گرديد‬‫در‬‫ـانيزم‬‫ـ‬‫مك‬ ‫ـرين‬‫ـ‬‫بهت‬ ‫از‬ ‫يكي‬ ‫خود‬ ‫زمان‬‫ـاي‬‫ـ‬‫ه‬ Anti-Dump‫مي‬ ‫شمار‬ ‫به‬.‫رفت‬ ‫ادامه‬ ‫در‬‫ضعف‬ ‫نقاط‬) ‫شكل‬ ‫در‬ ‫شده‬ ‫ارائه‬ ‫مدل‬٤(:‫شود‬ ‫مي‬ ‫بيان‬ ١.‫ـتمي‬‫ـ‬‫سيس‬ ‫ـع‬‫ـ‬‫تواب‬ ‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬،‫ـات‬‫ـ‬‫اطﻼع‬ ‫ـرقت‬‫ـ‬‫س‬ ‫ـر‬‫ـ‬‫خط‬ ‫مكانيزم‬ ‫توسط‬Hook‫مي‬ ‫افزايش‬ ‫را‬.‫دهد‬ ٢.‫فرآيند‬‫ـه‬‫ـ‬‫حافظ‬ ‫از‬ ‫ـل‬‫ـ‬‫كام‬ ‫ـورت‬‫ـ‬‫ص‬ ‫ـه‬‫ـ‬‫ب‬ ‫اجرا‬ ‫از‬ ‫قبل‬ ‫فرزند‬ ‫مي‬ ‫استخراج‬ ‫قابل‬.‫باشد‬ ٣.‫از‬ ‫ـتفاده‬‫ـ‬‫اس‬ ‫ـا‬‫ـ‬‫ب‬ ،‫نانوميتس‬ ‫فناوري‬ ‫از‬ ‫استفاده‬ ‫صورت‬ ‫در‬ ‫ابزار‬Hook‫ـتمي‬‫ـ‬‫سيس‬ ‫توابع‬ ‫كننده‬،‫ـي‬‫ـ‬‫م‬‫ـامي‬‫ـ‬‫تم‬ ‫ـوان‬‫ـ‬‫ت‬ .‫كرد‬ ‫بازيابي‬ ‫را‬ ‫شده‬ ‫حذف‬ ‫اطﻼعات‬ ٤.‫صورت‬ ‫در‬‫ـار‬‫ـ‬‫ب‬ ،‫فرزند‬ ‫فرآيند‬ ‫در‬ ‫سنگين‬ ‫پردازش‬ ‫وجود‬ ‫ـن‬‫ـ‬‫اي‬ ‫ـه‬‫ـ‬‫ك‬ ‫شد‬ ‫خواهد‬ ‫منتقل‬ ‫نيز‬ ‫پدر‬ ‫فرآيند‬ ‫به‬ ‫پردازشي‬ ‫مي‬ ‫باعث‬ ‫امر‬.‫شود‬ ‫برابر‬ ‫دو‬ ‫پردازشي‬ ‫سربار‬ ‫ميزان‬ ‫شود‬ ٥.‫ـد‬‫ـ‬‫ض‬ ‫ـوﻻت‬‫ـ‬‫محص‬ ‫ـامي‬‫ـ‬‫تم‬ ‫توسط‬ ‫فوق‬ ‫روش‬‫ـه‬‫ـ‬‫ب‬ ‫ـدافزار‬‫ـ‬‫ب‬ ‫مي‬ ‫شناسايي‬ ‫پرخطر‬ ‫رفتار‬ ‫يك‬ ‫عنوان‬.‫شود‬ ٦.‫ب‬‫ـابع‬‫ـ‬‫ت‬ ‫فراخواني‬ ‫حذف‬ ‫ا‬DebugActiveProcessA‫از‬ ‫ـدون‬‫ـ‬‫ب‬ ‫و‬ ‫ـاگر‬‫ـ‬‫ديب‬ ‫حضور‬ ‫بدون‬ ‫فرزند‬ ‫فرآيند‬ ،‫والد‬ ‫فرآيند‬ ‫ـيب‬‫ـ‬‫آس‬ ‫ـل‬‫ـ‬‫تحلي‬ ‫برابر‬ ‫در‬ ‫و‬ ‫شده‬ ‫اجرا‬ ‫مشكلي‬ ‫گونه‬ ‫هيچ‬ .‫بود‬ ‫خواهد‬ ‫پذير‬ ٣-‫پيشنهادي‬ ‫روش‬ ‫طي‬ ‫پيشنهادي‬ ‫روش‬٣‫گام‬‫شد‬ ‫خواهد‬ ‫ارائه‬.‫در‬‫نخست‬ ‫گام‬‫به‬‫معرفي‬ ‫اجمالي‬‫از‬‫اجرايي‬ ‫فايل‬ ‫ساختار‬‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫استاندارد‬ ‫پرداخت‬.‫شود‬ ‫مي‬ ‫ه‬‫در‬‫گام‬ُ‫ك‬ ‫تزريق‬ ‫مكانيزم‬ ‫دوم‬‫به‬ ‫ايستا‬ ‫صورت‬ ‫به‬ ‫د‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫استاندارد‬ ‫باينري‬ ‫فايل‬‫معرفي‬‫مي‬‫شود‬‫در‬ ‫و‬ ‫همراه‬ ‫به‬ ‫پيشنهادي‬ ‫روش‬ ‫آخر‬ ‫مرحله‬‫شبه‬ ‫ارائه‬‫سهولت‬ ‫جهت‬ ‫كد‬ ‫خواننده‬ ‫توسط‬ ‫بررسي‬‫شود‬ ‫مي‬ ‫تشريح‬. ١-٣-‫اجر‬ ‫فايل‬ ‫ساختار‬‫ايي‬ ‫فايل‬‫حمل‬ ‫قابل‬‫يا‬) ‫همان‬Portable Executable‫اصل‬ ‫قالب‬ (‫ي‬‫فا‬‫يل‬ Win٣٢‫تاحد‬ ‫آن‬ ‫مشخصات‬ .‫است‬‫ي‬‫عموم‬ ‫قالب‬ ‫از‬‫ي‬‫ش‬‫ي‬‫ء‬‫فا‬‫يل‬ ‫يونيكس‬)Unix COFF‫است‬ ‫شده‬ ‫مشتق‬ (. ‫فايل‬‫حمل‬ ‫قابل‬‫يعني‬‫ا‬‫ينكه‬‫فا‬ ‫آن‬‫يل‬‫ب‬‫ين‬‫سكوها‬ ‫همه‬‫ي‬Win٣٢‫قابل‬ ‫باركننده‬ .‫اجراست‬PE‫سكو‬ ‫هر‬ ‫در‬‫ي‬Win٣٢‫ا‬ ،‫ين‬‫تشخ‬ ‫را‬ ‫قالب‬‫يص‬ ‫فا‬ ‫اطﻼعات‬ ‫و‬ ‫داده‬‫يل‬‫اجرا‬‫يي‬‫حافظه‬ ‫در‬ ‫را‬،‫حت‬‫ي‬‫زماني‬‫و‬ ‫كه‬‫يندوز‬‫در‬ ‫سكوها‬‫ي‬CPU‫ا‬‫ي‬‫غ‬‫ير‬‫از‬Intel‫بارگذار‬ ‫شود‬ ‫اجرا‬‫ي‬‫م‬‫ي‬‫كند‬.‫ا‬ ‫اما‬‫ين‬ ‫بد‬‫ين‬‫معن‬‫ي‬‫ن‬‫يست‬‫ف‬ ‫كه‬‫ايل‬‫م‬ ‫حمل‬ ‫قابل‬‫ي‬‫تواند‬‫تغ‬ ‫بدون‬‫يير‬‫همه‬ ‫در‬ CPU‫فا‬ ‫هر‬ .‫شود‬ ‫اجرا‬ ‫ها‬‫يل‬‫اجرا‬ ‫قابل‬‫ي‬Win٣٢‫فا‬ ‫قالب‬ ‫از‬‫يل‬PE ‫ا‬‫م‬ ‫ستفاده‬‫ي‬‫كند‬‫حت‬ .‫ي‬‫اندازها‬ ‫راه‬‫ي‬‫و‬ ‫هسته‬‫يندوز‬NT‫ا‬ ‫از‬‫ين‬‫قالب‬ ‫فا‬‫يل‬‫م‬ ‫استفاده‬‫ي‬‫كند‬.‫لذا‬‫فا‬ ‫قالب‬‫يل‬PE‫اطﻼعات‬‫مفيدي‬‫مورد‬ ‫در‬ ‫و‬ ‫ساختار‬‫يندوز‬‫ارائه‬‫م‬‫ي‬‫دهد‬. ‫شكل‬٥‫طرح‬‫كل‬‫ي‬‫قﺎﻟﺐ‬‫فﺎ‬‫ي‬‫ل‬PE ‫فا‬ ‫همه‬‫يلهاي‬PE‫حت‬‫ي‬‫ها‬ ‫كتابخانه‬‫ي‬٣٢‫ب‬‫يتي‬‫با‬‫يد‬‫با‬‫يك‬‫عنوا‬‫ن‬ DOS MZ‫شو‬ ‫شروع‬‫ن‬‫ا‬ .‫د‬‫ين‬‫برا‬ ‫قسمت‬‫ي‬‫زماني‬‫پ‬‫يش‬‫ب‬‫يني‬‫است‬ ‫شده‬ ‫س‬ ‫در‬ ‫برنامه‬ ‫كه‬‫يستم‬‫عامل‬DOS‫بنابرا‬ .‫شود‬ ‫اجرا‬‫ين‬DOS‫ا‬‫ين‬‫فا‬‫يل‬ ‫را‬‫يك‬‫فا‬‫يل‬‫تشخ‬ ‫اجرا‬ ‫قابل‬‫يص‬‫م‬ ‫و‬ ‫داده‬‫ي‬‫تواند‬‫كوتاه‬ ‫برنامه‬ ‫تابع‬ DOS‫عنوان‬ ‫از‬ ‫بعد‬ ‫كه‬ ‫را‬MZ‫ذخ‬‫يره‬‫كند‬ ‫اجرا‬ ،‫است‬ ‫شده‬.‫بخش‬‫ياد‬ ‫آ‬ ‫نقطه‬ ‫عنوان‬ ‫به‬ ‫شده‬‫غاز‬‫ين‬‫يك‬‫فا‬‫يل‬PE‫م‬ ‫شناخته‬ ‫استاندارد‬‫ي‬‫شود‬ ‫عنوان‬ ‫به‬ ‫آن‬ ‫از‬ ‫كه‬Entry Point‫ياد‬‫م‬‫ي‬.‫شود‬‫ف‬ ‫آدرس‬‫يزيكي‬EP ‫اول‬‫ين‬‫ا‬ ‫قطعه‬‫ي‬‫بارگذار‬ ‫از‬ ‫پس‬ ‫كه‬ ‫است‬‫ي‬‫فا‬‫يل‬‫م‬ ‫اجرا‬ ‫حافظه‬ ‫در‬‫ي‬‫گردد‬.
  • 6. ‫كوتاه‬ ‫برنامه‬ ‫تابع‬)DOS Stub‫حق‬ ‫در‬ (‫يقت‬‫يك‬EXE‫ي‬‫معتبر‬ ‫موارد‬ ‫در‬ ‫و‬ ‫هست‬‫ي‬‫م‬ ‫اجرا‬‫ي‬‫شود‬‫س‬ ‫كه‬‫يستم‬‫عامل‬‫ه‬‫يچ‬‫چ‬‫يزي‬‫در‬ ‫فا‬ ‫قالب‬ ‫مورد‬‫يل‬PE‫ا‬ .‫نداند‬‫ين‬‫پ‬ ‫فقط‬ ‫تابع‬‫يغام‬"This program requires Windows"‫را‬‫نمايش‬‫م‬‫ي‬‫دهد‬‫يا‬‫ا‬‫ينكه‬‫م‬‫ي‬‫تواند‬‫برنامه‬ ‫كامل‬DOS‫باشد‬،‫بستگ‬ ‫آن‬ ‫نوع‬ ‫كه‬‫ي‬‫نو‬ ‫به‬‫يسنده‬‫قسمت‬ .‫دارد‬ ‫برنامه‬ DOS Stub‫به‬‫علت‬‫بحث‬ ‫مورد‬ ‫آن‬ ‫شدن‬ ‫منسوخ‬‫مقاله‬ ‫اين‬‫نم‬‫ي‬ ‫باشد‬‫ا‬ .‫ين‬‫تابع‬‫بوس‬ ‫معموﻻ‬‫يله‬‫اسمبلر‬‫يا‬‫كامپا‬‫يلر‬‫ا‬‫يجاد‬‫م‬‫ي‬‫شود‬‫در‬ . ‫بس‬‫ياري‬‫ا‬ ‫موارد‬‫ين‬‫سرو‬ ‫از‬ ‫تابع‬‫يس‬‫شماره‬٩‫وقفه‬H٢١‫م‬ ‫استفاده‬‫يكند‬ ‫پ‬ ‫تا‬‫يغام‬"This program cannot run in DOS mode"‫را‬ .‫كند‬ ‫اعﻼن‬ ‫از‬ ‫بعد‬DOS Stub‫عنوان‬ ‫قسمت‬ (‫كوتاه‬ ‫برنامه‬ ‫)تابع‬PE‫يا‬‫همان‬ PE header‫م‬ ‫قرار‬‫ي‬‫گي‬‫رد‬‫ساختار‬ .PE‫نام‬ ‫به‬ IMAGE_NT_HEADERS‫اصطﻼح‬ ‫در‬PE header‫نام‬‫يده‬‫م‬‫ي‬ ‫شود‬‫ا‬ .‫ين‬‫محتو‬ ‫قسمت‬‫ي‬‫ف‬‫يلدهايي‬‫ضرور‬‫ي‬‫باشد‬ ‫مي‬‫باركننده‬ ‫كه‬PE ‫م‬ ‫استفاده‬ ‫آنها‬ ‫از‬‫ي‬‫كند‬‫س‬ ‫اگر‬ .‫يستم‬‫عامل‬‫ي‬‫ا‬‫ين‬‫بشناسد‬ ‫را‬ ‫قسمت‬ ‫برنامه‬‫كننده‬ ‫بار‬ .‫شد‬ ‫خواهد‬ ‫اجرا‬PE‫م‬‫ي‬‫تواند‬‫شروع‬ ‫نقطه‬PE header‫ق‬ ‫از‬ ‫را‬‫سمت‬DOS MZ header‫پ‬‫يدا‬‫نما‬‫يد‬‫قسمت‬ ‫و‬DOS Stub‫ناد‬ ‫را‬‫يده‬‫مستق‬ ‫و‬ ‫گرفته‬‫يما‬‫قسمت‬ ‫به‬PE Header‫عنوان‬ ‫كه‬ ‫حق‬‫يقي‬‫فا‬‫يل‬)Real File Header،‫هست‬ (‫شود‬ ‫هدايت‬. ‫محتواي‬‫حق‬‫يقي‬‫فا‬‫يل‬PE‫قسمتها‬ ‫به‬‫يي‬‫نام‬ ‫با‬‫يا‬ ‫بخش‬Section ‫تقس‬‫يم‬.‫است‬ ‫شده‬‫يك‬Section‫چ‬‫يزي‬‫ن‬‫يست‬‫جز‬‫يك‬‫داد‬ ‫بلوك‬‫با‬ ‫ه‬ ‫معمول‬ ‫خواص‬‫ي‬‫مانند‬Code/Data‫دسترس‬ ‫و‬‫ي‬‫هاي‬Read/Write‫و‬ ) ‫ديگر‬ ‫موارد‬‫م‬‫ي‬‫توان‬‫فا‬‫يل‬PE‫مانند‬ ‫را‬‫يك‬‫د‬‫يسك‬‫منطق‬‫ي‬‫فرض‬.(‫كرد‬ ‫فا‬ ‫عنوان‬‫يل‬PE‫بجا‬‫ي‬‫و‬ ‫بوت‬ ‫سكتور‬Section‫ف‬ ‫ها‬‫ايلهاي‬‫رو‬‫ي‬‫د‬‫يسك‬ ‫فا‬ .‫هستند‬‫يلها‬‫مخ‬ ‫خواص‬‫ت‬‫لف‬‫ي‬‫خواندن‬ ‫فقط‬ ‫خواص‬ ‫مانند‬ ‫دارند‬،‫ي‬ ‫س‬،‫يستمي‬‫مخف‬،‫ي‬‫با‬‫يگاني‬‫و‬ ‫شده‬‫ديگر‬ ‫موارد‬.‫قابل‬‫توجه‬‫است‬‫گروه‬ ‫كه‬ ‫بند‬‫ي‬‫درون‬ ‫داده‬‫يك‬Section‫عموم‬ ‫خواص‬ ‫اساس‬ ‫بر‬‫ي‬‫شده‬ ‫انجام‬ ‫برمبنا‬ ‫نه‬ ‫است‬‫ي‬.‫منطق‬‫ندارد‬ ‫اهميت‬‫كه‬DATA‫يا‬CODE‫چگونه‬ ‫م‬ ‫استفاده‬‫ي‬،‫شوند‬‫اگر‬DATA‫يا‬CODE‫فا‬ ‫در‬‫يل‬PE‫خواص‬ ‫يكساني‬‫م‬ ،‫باشند‬ ‫داشته‬‫ي‬‫توانند‬‫درون‬‫يك‬Section‫جمع‬ ‫هم‬ ‫با‬‫شده‬ .‫باشند‬Section‫م‬‫ي‬‫تواند‬‫محتو‬‫ي‬CODE‫و‬DATA‫خواص‬ ‫كه‬ ‫يكساني‬‫بخواه‬ ‫اگر‬ .‫باشد‬ ،‫دارند‬‫يم‬‫يك‬‫خاص‬ ‫داده‬ ‫از‬ ‫بلوك‬‫يت‬‫فقط‬ ‫خواندن‬‫ي‬‫م‬ ‫باشد‬ ‫داشته‬‫ي‬‫توان‬‫درون‬‫يك‬Section‫فقط‬ ‫مشخصه‬ ‫كه‬ ‫خواندن‬‫ي‬‫د‬‫ارد‬،‫د‬ ‫قرار‬‫اد‬‫مواقع‬ ‫در‬ .‫ي‬،‫باركننده‬ ‫كه‬Section‫درون‬ ‫را‬ ‫ها‬ ‫ترس‬ ‫حافظه‬‫يم‬‫م‬‫ي‬،‫كند‬‫م‬‫هاي‬ ‫شخصه‬Section‫م‬ ‫را‬ ‫ها‬‫ي‬‫خواند‬‫آن‬ ‫و‬ ‫مشخصات‬‫بلوكها‬ ‫به‬ ‫را‬‫ي‬ِ‫ا‬ ‫حافظه‬‫بوس‬ ‫شده‬ ‫شغال‬‫يله‬Section،‫ها‬ ‫م‬ ‫نسبت‬‫ي‬‫دهد‬.‫اگر‬‫فا‬‫يل‬PE‫بصورت‬ ‫را‬‫يك‬‫د‬‫يسك‬‫منطق‬‫ي‬‫فرض‬ ‫كن‬‫يم‬‫بطور‬‫يكه‬‫عنوان‬ ‫كه‬PE،‫و‬ ‫بوت‬ ‫سكتور‬Section‫فا‬ ‫ها‬‫يلهاي‬‫رو‬‫ي‬ ‫د‬‫يسك‬‫كاف‬ ‫اطﻼعات‬ ‫هنوز‬ ،‫باشند‬‫ي‬‫فا‬ ‫محل‬ ‫مورد‬ ‫در‬‫يلهاي‬‫رو‬‫ي‬‫د‬‫يسك‬ .‫ندارد‬ ‫وجود‬‫يعني‬‫مس‬ ‫مورد‬ ‫در‬‫ير‬‫فهرست‬ ‫و‬)Directory‫فا‬ ‫در‬ (‫يل‬PE ‫ن‬ ‫بحث‬‫است‬ ‫شده‬‫عنوان‬ ‫از‬ ‫بعد‬ ‫بﻼفاصله‬ .PE‫جدول‬Section‫گرفته‬ ‫قرار‬ ‫آرا‬ ‫كه‬ ‫است‬‫يه‬‫ا‬‫ي‬‫محتو‬ ‫ساختار‬ ‫هر‬ .‫ساختارهاست‬ ‫از‬‫ي‬‫اطﻼعات‬‫ي‬‫درباره‬ ‫هر‬Section‫فا‬ ‫در‬‫يل‬PE‫همچون‬‫مشخصه‬‫فا‬ ‫برچسب‬ ،‫آن‬‫يل‬‫و‬ ‫مج‬ ‫برچسب‬‫از‬‫ي‬‫پنج‬ ‫اگر‬ .‫است‬Section‫در‬‫يك‬‫فا‬‫يل‬PE‫داشته‬ ‫وجود‬ ‫آرا‬ ‫در‬ ‫عنصر‬ ‫پنج‬ ،‫باشد‬‫يه‬‫م‬ .‫دارد‬ ‫وجود‬ ‫ساختار‬‫ي‬‫توان‬‫جدول‬Section ‫ر‬ ‫فهرست‬ ‫صورت‬ ‫به‬ ‫را‬‫يشه‬‫ي‬)root directory(‫يك‬‫د‬‫يسك‬‫منطق‬‫ي‬ ‫آرا‬ ‫عنصر‬ ‫هر‬ ‫كه‬ ‫نمود‬ ‫فرض‬‫يه‬‫ي‬‫فهرست‬ ‫هر‬ ‫با‬ ‫معادل‬ ،‫ساختار‬‫ث‬‫بت‬ ‫ر‬ ‫فهرست‬ ‫در‬ ‫شده‬‫يشه‬.‫است‬ ‫در‬‫م‬‫يان‬‫ا‬ ‫تمام‬‫ين‬Section‫ها‬‫بخش‬ ،idata‫حاو‬‫ي‬‫آدرس‬ ‫جدول‬ ‫ها‬‫ي‬) ‫شده‬ ‫وارد‬IAT(‫يا‬‫ب‬‫عبارتي‬‫تمام‬ ‫جدول‬‫ي‬‫در‬ ‫برنامه‬ ‫ارجاعات‬ ‫فراخوان‬‫ي‬‫روت‬ ‫و‬ ‫توابع‬‫ين‬‫هاي‬‫كتابخانه‬‫ا‬‫ي‬‫پو‬‫يا‬‫م‬‫ي‬‫باشد‬‫ا‬ .‫ين‬‫جدول‬ ‫حاو‬‫ي‬‫نسب‬ ‫آدرس‬‫ي‬‫توابع‬ ‫تمام‬Import‫فا‬ ‫به‬ ‫شده‬‫يل‬‫اجرا‬‫يي‬‫پس‬ .‫است‬ ‫اجرا‬ ‫از‬‫ي‬‫يك‬‫فا‬‫يل‬PE‫س‬ ،‫يس‬‫تم‬‫عامل‬‫مذكور‬ ‫بخش‬‫حافظه‬ ‫درون‬ ‫را‬ ‫بارگذار‬‫ي‬‫ا‬ ‫و‬ ‫كرده‬‫ين‬‫صح‬ ‫آدرس‬ ‫به‬ ‫را‬ ‫آدرسها‬‫يح‬‫در‬ ‫مذكور‬ ‫توابع‬ ‫تغ‬ ‫حافظه‬‫يير‬‫م‬‫ي‬‫دهد‬‫دل‬ .‫يل‬‫ا‬ ‫وجود‬‫ين‬‫ا‬ ‫جدول‬‫ين‬‫فا‬ ‫كه‬ ‫است‬‫يل‬‫هاي‬ ‫اجرا‬‫يي‬‫هم‬‫يشه‬‫ثابت‬ ‫مكان‬ ‫در‬‫ي‬‫بارگذار‬ ‫حافظه‬ ‫از‬‫ي‬‫نم‬‫ي‬‫شوند‬[٢٠] [٢]. ‫در‬‫ادامه‬‫اصل‬ ‫مراحل‬‫ي‬‫بارگذار‬‫ي‬‫يك‬‫فا‬‫يل‬PE‫در‬‫حافظه‬‫شده‬ ‫بيان‬ :‫است‬ ١.‫زماني‬‫فا‬ ‫كه‬‫يل‬PE‫فا‬ ‫باركننده‬ ،‫شد‬ ‫اجرا‬‫يل‬PE‫عنوان‬ DOS MZ‫برا‬ ‫را‬‫ي‬‫پ‬‫يدا‬‫كردن‬»‫عنوان‬ ‫برچسب‬«‫فا‬‫يل‬PE ‫بررس‬‫ي‬‫م‬‫ي‬‫كند‬‫اگر‬ ‫و‬‫بود‬ ‫موفق‬‫م‬ ‫برچسب‬ ‫آن‬ ‫به‬‫ي‬‫رود‬. ٢.،‫باركننده‬‫فا‬ ‫عنوان‬‫يل‬PE‫بررس‬ ‫را‬‫ي‬‫م‬‫ي‬‫كند‬،‫بود‬ ‫معتبر‬ ‫اگر‬ ‫فا‬ ‫عنوان‬ ‫آخر‬ ‫به‬‫يل‬PE Header‫م‬‫ي‬‫رود‬. ٣.‫بﻼفاصله‬‫عنوان‬ ‫از‬ ‫بعد‬PE،‫جدول‬Section.‫دارد‬ ‫وجود‬ ‫باركننده‬،‫اطﻼعات‬Section‫م‬ ‫را‬ ‫ها‬‫ي‬‫خواند‬‫حافظه‬ ‫درون‬ ‫و‬ ‫ترس‬‫يم‬‫م‬‫ي‬‫كند‬‫همچن‬ .‫ين‬‫هر‬ ‫خواص‬Section‫مطابق‬ ‫را‬ ‫جدول‬ ‫در‬ ‫آنچه‬Section‫است‬ ‫آمده‬،‫م‬ ‫آنها‬ ‫به‬‫ي‬‫دهد‬. ٤.‫بعد‬‫ترس‬ ‫از‬‫يم‬‫فا‬‫يل‬PE‫باركننده‬ ،‫حافظه‬ ‫درون‬PE‫به‬ ‫قسمت‬‫ها‬‫ي‬‫م‬‫نطق‬‫ي‬‫فا‬‫يل‬PE‫مانند‬Import Table‫و‬‫ساير‬ ‫ديگر‬ ‫موارد‬‫م‬‫ي‬‫پردازد‬. ٥.‫در‬‫ف‬ ‫آدرس‬ ‫مقدار‬ ‫بعد‬ ‫مرحله‬‫يزيكي‬–‫منطقي‬‫به‬ ‫مربوطه‬ Entry Point‫كه‬‫اشاره‬ ‫آن‬ ‫به‬ ‫قبﻼ‬‫ثبات‬ ‫مقدار‬ ‫درون‬ ‫شد‬
  • 7. EIP‫اجرا‬ ‫و‬ ‫گرفته‬ ‫قرار‬‫ي‬‫فا‬‫يل‬‫بارگذار‬‫ي‬‫حافظه‬ ‫در‬ ‫شده‬ ‫م‬ ‫شروع‬‫ي‬‫شود‬. ‫ا‬ ‫جهت‬ ‫ﻻزم‬ ‫اطﻼعات‬ ‫كليه‬ ‫نهايت‬ ‫در‬‫توسط‬ ‫اجرايي‬ ‫فايل‬ ‫جراي‬ PE loader‫قرار‬ ‫حافظه‬ ‫در‬ ،‫باشد‬ ‫مي‬ ‫عامل‬ ‫سيستم‬ ‫از‬ ‫جزئي‬ ‫كه‬ ‫مي‬‫فايل‬ ‫و‬ ‫گيرد‬PE‫مي‬ ‫اجرا‬ ‫آماده‬.‫گردد‬ ٢-٣-(‫)ايستا‬ ‫ﺑاينري‬ ‫فايل‬ ‫ﺑه‬ ‫كد‬ ‫تزريق‬ ‫روش‬ ‫روش‬ ‫چندين‬ ‫به‬ ‫ايستا‬ ‫حالت‬ ‫در‬ ‫اجرايي‬ ‫فايل‬ ‫به‬ ‫كد‬ ‫تزريق‬ ‫مي‬ ‫صورت‬ ‫مختلف‬‫ساده‬ ‫كه‬ ‫پذيرد‬‫مورد‬ ‫مقاله‬ ‫اين‬ ‫در‬ ‫آن‬ ‫ترين‬‫استفاده‬ ‫است‬ ‫گرفته‬ ‫قرار‬.‫كه‬ ‫است‬ ‫ذكر‬ ‫به‬ ‫ﻻزم‬"‫منبع‬ ‫كد‬"‫فوق‬ ‫روش‬‫رايگان‬ ‫است‬‫دارد‬ ‫قرار‬ ‫همگان‬ ‫اختيار‬ ‫در‬ ‫و‬.‫به‬ ‫ﻻزم‬ ‫كدهاي‬ ‫روش‬ ‫اين‬ ‫طي‬ ‫قالب‬ ‫در‬ ‫و‬ ‫اسمبلي‬ ‫صورت‬Shell Code‫يك‬ ‫به‬Section‫اضافه‬ ‫جديد‬ ‫آدرس‬ ‫مقدار‬ ‫و‬ ‫شده‬Entry Point) ‫فايل‬ ‫سرآيند‬ ‫در‬PE Header‫به‬ ( ‫دستورا‬ ‫اولين‬‫در‬ ‫كه‬ ‫جديد‬ ‫لعمل‬Section‫تغيير‬ ‫است‬ ‫شده‬ ‫اضافه‬ ‫جديد‬ ‫مي‬ ‫پيدا‬‫كند‬.‫در‬‫آ‬‫كوتاه‬ ‫پرش‬ ‫يك‬ ‫دادن‬ ‫قرار‬ ‫با‬ ‫نيز‬ ‫اسمبلي‬ ‫كدهاي‬ ‫خر‬ ‫اصلي‬ ‫آدرس‬ ‫به‬Entry Point،‫مي‬ ‫باعث‬‫بعد‬ ‫برنامه‬ ‫اجراي‬ ‫روند‬ ‫تا‬ ‫گردد‬ ‫شود‬ ‫سپرده‬ ‫برنامه‬ ‫اصلي‬ ‫كدهاي‬ ‫دست‬ ‫به‬ ‫شده‬ ‫تزريق‬ ‫كدهاي‬ ‫اجراي‬ ‫از‬. ) ‫شكل‬ ‫در‬٦(‫ا‬ ‫نمايي‬‫ز‬‫كد‬ ‫تزريق‬‫ايستا‬ ‫حالت‬ ‫در‬ ‫اجرايي‬ ‫فايل‬ ‫به‬‫نشان‬ ‫است‬ ‫شده‬ ‫داده‬[٢] [١] [١٠]. ‫شكل‬٦‫نمﺎ‬‫يي‬‫از‬‫ﺳﺎخﺘﺎر‬‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬‫اﺳﺘﺎنﺪارد‬‫قبل‬)‫اﻟف‬(‫و‬‫بعﺪ‬)‫ب‬(‫از‬ ‫تزر‬‫ي‬‫ﻖ‬‫كﺪ‬‫بﻪ‬‫صورت‬‫ا‬‫ي‬‫ﺴﺘﺎ‬ ) ‫شكل‬ ‫در‬ ‫كه‬ ‫همانطور‬٦(‫است‬ ‫مشخص‬‫مي‬‫به‬ ‫تكنيك‬ ‫اين‬ ‫از‬ ‫توان‬ ‫فشر‬ ‫منظور‬‫نمود‬ ‫استفاده‬ ‫اجرايي‬ ‫فايل‬ ‫سازي‬ ‫ده‬‫؛‬‫ابتدا‬ ‫كه‬ ‫صورت‬ ‫بدين‬ ‫تمامي‬ ‫اطﻼعات‬Section،‫خوانده‬ ‫را‬ ‫ها‬‫سپس‬‫و‬ ‫كرده‬ ‫فشرده‬ ‫يا‬ ‫رمز‬ ‫را‬ ‫آنها‬ ‫در‬Section‫م‬ ‫ذخيره‬ ‫جديد‬.‫نمايد‬ ‫ي‬‫سپس‬‫تمامي‬ ‫اطﻼعات‬Section‫ها‬ ‫جايگزين‬ ‫صفر‬ ‫مقدار‬ ‫با‬ ‫را‬‫شده‬ُ‫ك‬ ‫و‬‫فشرده‬ ‫اطﻼعات‬ ‫رمزگشايي‬ ‫دهاي‬ ‫آدرس‬ ‫در‬ ‫را‬ ‫شده‬‫آغازين‬Section‫قرار‬ ‫جديد‬.‫گيرد‬ ‫مي‬‫اجراي‬ ‫با‬ ‫برنامه‬،‫همانند‬ ‫و‬ ‫شده‬ ‫بارگذاري‬ ‫حافظه‬ ‫در‬ ‫شده‬ ‫رمز‬ ‫يا‬ ‫فشرده‬ ‫اطﻼعات‬ ‫روند‬ ‫شده‬ ‫تزريق‬ ‫كدهاي‬ ‫تمامي‬ ‫اجراي‬ ‫از‬ ‫پس‬ ‫شده‬ ‫داده‬ ‫توضيح‬ ‫روش‬ ‫مي‬ ‫سپرده‬ ‫حافظه‬ ‫در‬ ‫آن‬ ‫اصلي‬ ‫كدهاي‬ ‫به‬ ‫برنامه‬ ‫اجراي‬‫شود‬.‫مثال‬ ‫ا‬ ،‫پركاربردترين‬ ‫از‬ ‫يكي‬ ‫شده‬ ‫عنوان‬‫فايل‬ ‫به‬ ‫كد‬ ‫تزريق‬ ‫هاي‬ ‫ستفاده‬ ‫مي‬ ‫اجرايي‬.‫باشد‬ ٣-٣-‫پيشنهادي‬ ‫روش‬ ‫ادامه‬ ‫در‬‫پيشنهادي‬ ‫روش‬،‫صورت‬ ‫به‬‫مرحله‬‫به‬‫مرحله‬‫نمايش‬ ‫با‬ ‫همراه‬ ‫اشكال‬‫بمنظور‬‫بهتر‬ ‫درك‬:‫شود‬ ‫مي‬ ‫تشريح‬ ‫فرآيند‬ ١.‫مقدار‬ ‫ابتدا‬١٠٠‫آدرس‬ ‫شروع‬ ‫از‬ ‫بايت‬Entry Point‫حذف‬ ‫مي‬ ‫ذخيره‬ ‫فشرده‬ ‫يا‬ ‫رمز‬ ‫صورت‬ ‫به‬ ‫و‬ ‫شده‬‫گردد‬. ٢.‫سپس‬‫مي‬ ‫محافظتي‬ ‫ﻻيه‬ ‫از‬ ‫جزئي‬ ‫كه‬ ‫داخلي‬ ‫ديباگر‬ ‫هسته‬- ‫اضافه‬ ‫اول‬ ‫مرحله‬ ‫در‬ ‫شده‬ ‫ايجاد‬ ‫اطﻼعات‬ ‫جريان‬ ‫به‬ ‫باشد‬ ‫مي‬‫شود‬.‫جهت‬ ‫به‬ ‫اطﻼعات‬ ‫تمامي‬ ‫كه‬ ‫است‬ ‫ذكر‬ ‫به‬ ‫ﻻزم‬ ‫ايستا‬ ‫معكوس‬ ‫مهندسي‬ ‫جهت‬ ‫به‬ ‫مانع‬ ‫ايجاد‬ ‫و‬ ‫بيشتر‬ ‫امنيت‬ ‫جمله‬ ‫از‬ ‫پيشرفته‬ ‫رمزنگاري‬ ‫متدهاي‬ ‫توسط‬AES ٢٥٦ bit‫ط‬ ‫كليدهاي‬ ‫و‬،‫اجرايي‬ ‫فايل‬ ‫هر‬ ‫فرد‬ ‫به‬ ‫منحصر‬ ‫و‬ ‫وﻻني‬ ‫مي‬ ‫رمزنگاري‬.‫شوند‬ ٣.‫يك‬ ‫عنوان‬ ‫به‬ ‫دوم‬ ‫مرحله‬ ‫در‬ ‫شده‬ ‫توليد‬ ‫داده‬ ‫جريان‬ ‫تمامي‬ Section‫مي‬ ‫تزريق‬ ‫اجرايي‬ ‫فايل‬ ‫به‬ ‫داده‬‫شود‬.‫است‬ ‫بديهي‬ ‫قابل‬ ‫و‬ ‫داشت‬ ‫خواهند‬ ‫خواندني‬ ‫قابليت‬ ‫مذكور‬ ‫اطﻼعات‬ ‫كه‬ .‫بود‬ ‫نخواهند‬ ‫اجرا‬ ‫شكل‬٧‫حذف‬‫مقﺪار‬‫مﺸﺨﺼ‬‫ي‬‫از‬‫اطﻼﻋﺎت‬)‫بﻪ‬‫ﻋﻨوان‬‫مثﺎل‬٣٠‫بﺎ‬‫ي‬‫ﺖ‬(‫از‬ ‫آدرس‬Entry Point‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬ ٤.‫انداز‬ ‫راه‬ ‫اسمبلي‬ ‫كدهاي‬،‫يك‬ ‫عنوان‬ ‫به‬Section‫به‬ ‫جديد‬ ‫آدرس‬ ‫و‬ ‫شده‬ ‫تزريق‬ ‫اجرايي‬ ‫فايل‬Entry Point‫آدرس‬ ‫به‬ ‫مي‬ ‫پيدا‬ ‫تغيير‬ ‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫آغازين‬‫كند‬.
  • 8. ٥.‫برنامه‬ ‫اجراي‬ ‫با‬،"‫كد‬ ‫قطعه‬‫انداز‬ ‫راه‬"‫موجود‬ ‫اطﻼعات‬ ‫در‬Container‫هسته‬ ‫و‬ ‫كرده‬ ‫رمزگشايي‬ ‫حافظه‬ ‫در‬ ‫را‬ ‫مي‬ ‫اجرا‬ ‫حافظه‬ ‫در‬ ‫را‬ ‫داخلي‬ ‫ديباگر‬‫كند‬.‫مرحله‬ ‫اين‬ ‫در‬ ‫مي‬ ‫باقي‬ ‫حافظه‬ ‫در‬ ‫انتظار‬ ‫حالت‬ ‫در‬ ‫ديباگر‬ ‫هسته‬.‫ماند‬ ‫شكل‬٨‫نمﺎ‬‫يي‬‫از‬‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬‫ﭘﺲ‬‫از‬‫تزر‬‫ي‬‫ﻖ‬‫كﺪهﺎ‬‫ي‬‫راه‬‫انﺪاز‬‫و‬‫هﺴﺘﻪ‬ ‫د‬‫ي‬‫بﺎﮔر‬‫داخل‬‫ي‬ ) ‫شكل‬ ‫در‬ ‫كه‬ ‫همانطور‬٨‫مشاهده‬ (‫مي‬‫شو‬‫شده‬ ‫مشخص‬ ‫آدرس‬ ‫د‬ ‫پيكان‬ ‫توسط‬A‫آدرس‬ ‫به‬Entry Point‫كه‬ ‫دارد‬ ‫اشاره‬ ‫اوليه‬١٠٠ ‫آن‬ ‫اطﻼعات‬ ‫از‬ ‫بايت‬) ‫مرحله‬ ‫در‬١(‫شد‬ ‫حذف‬.‫است‬ ‫ه‬‫بعدي‬ ‫مرحله‬ ‫رشته‬ ‫مقادير‬ ،‫داخلي‬ ‫ديباگر‬ ‫هسته‬ ‫كردن‬ ‫اضافه‬‫بين‬ ‫ارتباط‬ ‫ماژول‬ ‫و‬ ‫اي‬ ‫پروسه‬‫عنوان‬ ‫تحت‬ ‫ها‬‫بسته‬Container‫مي‬‫تغيير‬ ‫با‬ ‫نهايت‬ ‫در‬ ‫كه‬ ‫باشد‬ ‫آدرس‬Entry Point‫با‬ ‫كه‬ ‫جديد‬ ‫محل‬ ‫به‬‫پيكان‬B‫مي‬ ‫اشاره‬،‫كند‬ ‫مي‬ ‫اشاره‬ ‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫ابتداي‬ ‫به‬ ‫واقع‬ ‫در‬ ‫آدرس‬ ‫اين‬‫تحت‬ ‫كه‬ ‫كند‬ ‫يك‬ ‫عنوان‬Section‫اند‬ ‫شده‬ ‫تزريق‬ ‫اجرايي‬ ‫فايل‬ ‫به‬ ‫جديد‬‫از‬ ‫قبل‬ ‫و‬ ‫اصلي‬ ‫برنامه‬ ‫اجراي‬‫بسته‬ ‫محتويات‬ ‫اجراي‬ ‫باعث‬Container‫مي‬‫شود‬ ‫به‬ ‫ادامه‬ ‫در‬ ‫كه‬ ‫مراحل‬ ‫باقي‬ ‫و‬ ‫بارگذاري‬ ‫حافظه‬ ‫در‬ ‫سامانه‬ ‫اصلي‬ ‫هسته‬ ‫تا‬ ‫مي‬ ‫آنها‬ ‫شرح‬‫شوند‬ ‫اجرا‬ ‫پردازيم‬. ‫شكل‬٩‫نمﺎ‬‫يي‬‫از‬‫اجرا‬‫ي‬‫كﺪهﺎ‬‫ي‬‫مربوطﻪ‬‫بﻪ‬‫راه‬‫انﺪاز‬ ) ‫شكل‬ ‫در‬٩‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫اجراي‬ ‫روند‬ ‫نيز‬ (‫نمايش‬.‫است‬ ‫شده‬ ‫داده‬ ‫اطﻼعات‬ ‫كه‬ ‫فايلي‬ ) ‫ثانويه‬ ‫اجرايي‬ ‫فايل‬ ‫روي‬ ‫بر‬ ‫كليك‬ ‫دوبار‬ ‫با‬ ‫واقع‬ ‫در‬ ‫مي‬ ‫تست‬ ‫آماده‬ ‫و‬ ‫است‬ ‫شده‬ ‫تزريق‬ ‫موفقيت‬ ‫با‬ ‫آن‬ ‫به‬‫كدها‬ ‫اجراي‬ ( ‫باشد‬ ‫از‬Entry Point‫مي‬ ‫آغاز‬ ‫ثانويه‬‫گردد‬.‫در‬ ‫كه‬ ‫ﻻزم‬ ‫كدهاي‬ ‫اجراي‬ ‫با‬ ‫آن‬ ‫به‬ ‫بعدي‬ ‫هاي‬ ‫بخش‬‫اشاره‬‫مي‬‫بازسازي‬ ‫و‬ ‫شود‬١٠٠‫باي‬‫اطﻼعات‬ ‫ت‬ ‫محل‬ ‫به‬ ،‫شده‬ ‫حذف‬Entry Point‫باز‬ ‫اوليه‬‫گردد‬ ‫مي‬‫اصلي‬ ‫روند‬ ‫و‬ ‫مي‬ ‫طي‬ ‫برنامه‬.‫شود‬ ٦.‫به‬ ‫ارجاع‬ ‫و‬ ‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫اتمام‬ ‫از‬ ‫قبل‬ ‫حاضر‬ ‫حال‬ ‫در‬ ‫آدرس‬Entry Point‫پروسه‬ ‫وضعيت‬ ،‫اجرايي‬ ‫فايل‬ ‫اصلي‬ ‫حالت‬ ‫به‬ ‫حافظه‬ ‫در‬ ‫آن‬Suspend‫مي‬ ‫پيدا‬ ‫تغيير‬‫اين‬ ) ‫كند‬ ‫فرز‬ ‫پروسه‬ ‫براي‬ ‫وضعيت‬‫ند‬‫انداز‬ ‫راه‬ ‫كد‬ ‫توسط‬‫اعمال‬‫مي‬ ‫گردد‬(.‫اطﻼعاتي‬ ،‫انداز‬ ‫راه‬ ‫كدهاي‬ ‫انتهاي‬ ‫به‬ ‫شدن‬ ‫نزديك‬ ‫با‬ ‫از‬ ‫اعم‬Process ID‫و‬Thread ID،‫فرزند‬ ‫پروسه‬ ‫از‬ ،‫پروسه‬ ‫بين‬ ‫ارتباطي‬ ‫هسته‬ ‫فراخواني‬ ‫توسط‬‫پروسه‬ ‫اختيار‬ ‫در‬ ‫مي‬ ‫قرار‬ ‫داخلي‬ ‫ديباگر‬.‫گيرد‬ ٧.‫د‬ ‫ديباگر‬ ‫توسط‬ ‫فرزند‬ ‫پروسه‬ ‫اطﻼعات‬ ‫دريافت‬ ‫با‬،‫اخلي‬ ‫سيستمي‬ ‫تابع‬ ‫فراخواني‬ ‫با‬ ‫ديباگر‬ ‫پروسه‬ DebugActiveProcessA‫ديباگ‬ ‫تحت‬ ‫را‬ ‫فرزند‬ ‫پروسه‬ ‫مي‬ ‫قرار‬ ‫خود‬‫تمامي‬ ‫و‬ ‫دهد‬Exception‫هاي‬‫مديريت‬ ‫را‬ ‫آن‬ ‫مي‬‫صورتي‬ ‫در‬ .‫كند‬‫موفقيت‬ ‫فرزند‬ ‫پروسه‬ ‫به‬ ‫اتصال‬ ‫عمليات‬ ‫كه‬ ‫اول‬ ‫مرحله‬ ‫در‬ ‫شده‬ ‫حذف‬ ‫اطﻼعات‬ ‫باشد‬ ‫آميز‬،‫حافظه‬ ‫در‬ ‫و‬ ‫شده‬ ‫رمزگشايي‬‫تابع‬ ‫توسط‬ ‫فرزند‬ ‫پروسه‬ ‫اصلي‬ ‫آدرس‬ ‫در‬ ‫سيستمي‬WriteProcessMemory‫مي‬ ‫بازنويسي‬‫شوند‬. ‫سپس‬‫ساختار‬ ‫از‬ ‫استفاده‬ ‫با‬Context Control،‫ديباگر‬ ‫ثبات‬ ‫مقدار‬EIP‫آدرس‬ ‫به‬ ‫را‬ ‫فرزند‬ ‫پروسه‬Entry Point ‫حالت‬ ‫از‬ ‫را‬ ‫پروسه‬ ‫وضعيت‬ ‫و‬ ‫داده‬ ‫تغيير‬ ‫اصلي‬Suspend‫به‬ Running‫مي‬ ‫تغيير‬‫دهد‬.‫در‬‫فرزند‬ ‫برنامه‬ ‫حالت‬ ‫اين‬ ‫مي‬ ‫آغاز‬ ‫حافظه‬ ‫در‬ ‫را‬ ‫خود‬ ‫فعاليت‬.‫كند‬ ‫شكل‬١٠‫مراحل‬‫اجرا‬‫ي‬‫برنﺎمﻪ‬‫ط‬‫ي‬‫مراحل‬٦‫و‬٧
  • 9. ٤-‫ارزيا‬‫پيشنهادي‬ ‫روش‬ ‫ﺑي‬ ‫روش‬ ‫ساير‬ ‫با‬ ‫پيشنهادي‬ ‫روش‬ ‫ارزيابي‬ ‫براي‬‫ـي‬‫ـ‬‫مهندس‬ ‫و‬ ‫ضدديباگ‬ ‫هاي‬ ‫معكوس‬،‫ساختا‬ ‫به‬ ‫مجدد‬ ‫نگاهي‬ ‫ابتدا‬ ‫است‬ ‫ﻻزم‬‫عام‬ ‫سيستم‬ ‫ر‬‫ـدوز‬‫ـ‬‫وين‬ ‫ل‬ .‫باشيم‬ ‫داشته‬‫ـط‬‫ـ‬‫فق‬ ‫را‬ ‫ـال‬‫ـ‬‫فع‬ ‫پروسه‬ ‫يك‬ ‫كاربر‬ ‫ويندوز‬ ‫عامل‬ ‫سيستم‬ ‫در‬ ‫مي‬ ‫ديباگر‬ ‫يك‬ ‫توسط‬‫آن‬ ‫هاي‬ ‫فعاليت‬ ‫و‬ ‫درآورده‬ ‫خود‬ ‫كنترل‬ ‫تحت‬ ‫تواند‬ ‫ـت‬‫ـ‬‫نيس‬ ‫ممكن‬ ‫ثانويه‬ ‫ديباگر‬ ‫اتصال‬ ‫امكان‬ ‫و‬ ‫دهد‬ ‫قرار‬ ‫بررسي‬ ‫مورد‬ ‫را‬.‫از‬ ‫عمﻼ‬ ‫برنامه‬ ‫به‬ ‫داخلي‬ ‫ديباگر‬ ‫اتصال‬ ‫با‬ ‫پيشنهادي‬ ‫روش‬ ‫در‬ ‫رو‬ ‫اين‬‫امكان‬ ‫ـت‬‫ـ‬‫حفاظ‬ ‫ـت‬‫ـ‬‫تح‬ ‫پروسه‬ ‫همان‬ ‫كه‬ ‫فرزند‬ ‫پروسه‬ ‫به‬ ‫خارجي‬ ‫ديباگر‬ ‫اتصال‬ ‫بود‬ ‫خواهد‬.‫نيست‬ ‫ممكن‬‫ـع‬‫ـ‬‫قط‬ ‫با‬ ‫كه‬ ‫كند‬ ‫خطور‬ ‫ذهن‬ ‫به‬ ‫شايد‬ ‫طرفي‬ ‫از‬ ‫سيستمي‬ ‫تابع‬ ‫به‬ ‫دسترسي‬DebugActiveProcessA‫مي‬‫ـانع‬‫ـ‬‫م‬ ‫ـوان‬‫ـ‬‫ت‬ ‫گرديد‬ ‫فرزند‬ ‫پروسه‬ ‫كردن‬ ‫ديباگ‬ ‫فرمان‬ ‫اجراي‬‫؛‬‫ـه‬‫ـ‬‫اينك‬ ‫ـه‬‫ـ‬‫ب‬ ‫توجه‬ ‫با‬ ‫ولي‬ ‫ف‬ ‫فرزند‬ ‫پروسه‬‫اقد‬١٠٠‫ـات‬‫ـ‬‫اطﻼع‬ ‫ـن‬‫ـ‬‫اي‬ ‫و‬ ‫ـت‬‫ـ‬‫اس‬ ‫آدرس‬ ‫اطﻼعات‬ ‫از‬ ‫بايت‬ ‫ـد‬‫ـ‬‫فرزن‬ ‫ـه‬‫ـ‬‫پروس‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـق‬‫ـ‬‫موف‬ ‫ـال‬‫ـ‬‫اتص‬ ‫از‬ ‫پس‬ ‫ديباگر‬ ‫پروسه‬ ‫توسط‬)‫از‬ ‫ـد‬‫ـ‬‫بع‬ ‫شده‬ ‫اشغال‬ ‫حافظه‬ ‫ميزان‬ ‫مقايسه‬ ‫توسط‬ ‫فرزند‬ ‫پروسه‬ ‫صﻼحيت‬ ‫بررسي‬ ‫مقادير‬ ‫يا‬١٦‫ـه‬‫ـ‬‫حافظ‬ ‫از‬ ‫ـادفي‬‫ـ‬‫تص‬ ‫ـايي‬‫ـ‬‫ه‬ ‫آدرس‬ ‫از‬ ‫ـي‬‫ـ‬‫بيت‬(‫و‬ ‫ـايي‬‫ـ‬‫رمزگش‬ ‫مي‬ ‫بازنويسي‬‫پروس‬ ‫اجراي‬ ‫امكان‬ ‫شود‬‫ممكن‬ ‫ديباگر‬ ‫پروسه‬ ‫بدون‬ ‫فرزند‬ ‫ه‬ ‫نيست‬‫؛‬‫پروسه‬ ‫دو‬ ‫اين‬ ‫كه‬ ‫چرا‬‫براي‬‫در‬ ‫و‬ ‫ـد‬‫ـ‬‫دارن‬ ‫ـاز‬‫ـ‬‫ني‬ ‫ـديگر‬‫ـ‬‫يك‬ ‫ـه‬‫ـ‬‫ب‬ ‫ـرا‬‫ـ‬‫اج‬ .‫بود‬ ‫نخواهد‬ ‫ممكن‬ ‫ديگري‬ ‫اجراي‬ ‫كدام‬ ‫هر‬ ‫حذف‬ ‫صورت‬ ) ‫تصوير‬ ‫در‬١١‫تصوير‬ ‫در‬ ‫و‬ ‫اجرايي‬ ‫فايل‬ ‫از‬ ‫محافظت‬ ‫به‬ ‫مربوط‬ ‫كد‬ ‫شبه‬ ( )١٢‫ـده‬‫ـ‬‫ش‬ ‫محافظت‬ ‫فايل‬ ‫اجراي‬ ‫مرحله‬ ‫به‬ ‫مربوط‬ ‫كد‬ ‫شبه‬ (‫ـ‬‫ـ‬‫ش‬ ‫ـر‬‫ـ‬‫ذك‬‫ده‬ ‫است‬. ‫شكل‬١١‫شبﻪ‬‫كﺪ‬‫مربوط‬‫بﻪ‬‫مرحلﻪ‬‫مﺤﺎفﻈﺖ‬‫از‬‫فﺎ‬‫ي‬‫ل‬‫اجرا‬‫يي‬ ‫شكل‬١٢‫شبﻪ‬‫كﺪ‬‫مربوط‬‫بﻪ‬‫مرحلﻪ‬‫اجرا‬‫ي‬‫د‬‫ي‬‫بﺎﮔر‬‫در‬‫حﺎفﻈﻪ‬ ‫شكل‬١٣‫شبﻪ‬‫كﺪ‬‫مربوط‬‫بﻪ‬‫د‬‫ي‬‫بﺎﮔر‬‫و‬‫كﻨﺘرل‬‫ﭘروﺳﻪ‬‫فرزنﺪ‬ ‫مراجع‬ [١] Themida Software Protection & Anti-Reverse Engineering Tool, http://www.oreans.com [٢] Specialized forum about reverse engineering and software security including exploit development and malware analysis, http://www.tuts٤you.com/forum [٣] Ultimate software protection and licensing tool, http://www.enigmaprotector.com [٤] Anti-Anti-DebuggerPlugins, https://code.google.com/p/aadp/. [٥] Adam J. Smith, T. S., USAF. (٢٠١٤). AUTOMATED STATIC DETECTION OF OBFUSCATED ANTI- DEBUGGING TECHNIQUES. DEPARTMENT OF THE AIR FORCE AIR UNIVERSITY. [٦] Craing S, A. A. (٢٠١٠). Packer Analysis Report – Debugging and unpacking the NsPack ٣٫٤ and ٣٫٧ packer. (SANS). [٧] Ferrie, P. (٢٠١١). The Ultimate Anti-Debugging Reference. [٨] Francisco Falcón, N. R. (June ٢٠١٢). Dynamic Binary Instrumentation Frameworks. (Core Security). [٩] Hao Shi, A. A., Jelena Mirkovic. (٢٠١٥). Cardinal Pill Testing of System Virtual Machines. USC/Information Sciences Institute. [١٠] JaeKeun Lee (٢٠١٤). Evading Anti-debugging Techniques with Binary Substitution. International Journal of Security and Its Applications, Vol.8, No.1 (2014). [١١] MILLER (٢٠١٢). Binary-Code Obfuscations in Prevalent Packer Tools. (University of Wisconsin).
  • 10. [١٢] Peter Ferrie, S. A.-V. R., Microsoft Corporation. (٢٠١٠). ANTI-UNPACKER TRICKS. MSDN(Microsoft). [١٣] Ping Chen, C. H., Lieven Desmet, and Wouter Joosen. (٢٠١٦). A comparative study of theuse of anti-debugging and anti-VM techniques in generic and targeted malware. (iMinds-DistriNet). [١٤] Shields, T. (٢٠١٥). Anti-Debugging – A Developers View. (Veracode Inc., USA). [١٥] Tengfei Yi, A. Z., Miao Yu, Zhong Ren, Qian Lin, Zhengwei Qi. (٢٠١٢). Anti Debugging Framework Based on Hardware Virtualization. Shanghai University(School of Software, Shanghai Jiao Tong University). [١٦] Vincent, M. (٢٠١٢). The Art of Unpacking. (IBM Internet Security Systems). [١٧] Xu Chen, J. A., Z. Morley Mao, Michael Bailey, Jose Nazario. (٢٠١٥). Towards an Understanding of Anti- virtualization and Anti-debugging Behavior in Modern Malware. (University of Michigan). [١٨] Intel® ٦٤ and IA-٣٢ Architectures Software Developer Manuals. www.intel.com/products/processor/manuals/. [١٩] O. Yuschuk, Ollydbg. http://www.ollydbg.de/. [٢٠] A. Honig, Practical Malware Analysis. No Starch Press, ٢٠١٢.