مبهم سازی کد به منظور جلوگیری از اجرای نمادین

نویسندگان

1 دانشگاه علم و صنعت ایران

2 دانشگاه علم و صنعت ایران

3 دانشگاه علم و صنعت ایران

doi
چکیده

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