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