تحلیل اجرای کد در محیطهای سراب (Phantom Execution)
مفهوم:
برخی از بدافزارهای پیشرفته برای جلوگیری از تحلیل، از تکنیکی به نام "Phantom Execution" استفاده میکنند. در این روش، بدافزار کدی را اجرا میکند که در واقع وجود خارجی ندارد!
چگونه؟
بدافزار ابتدا یک فضای حافظه تخصیص میدهد، اما قبل از اینکه کد واقعی در آن قرار بگیرد، CPU را مجبور میکند تا آن را اجرا کند. این کار معمولاً با دستکاری مستقیم Instruction Pointer (EIP/RIP) یا Branch Prediction انجام میشود. برخی پردازندهها، مخصوصاً آنهایی که مکانیزم Speculative Execution دارند، ممکن است دستورالعملهای بارگذارینشده را موقتاً پردازش کنند، که امکان اجرای کدی را فراهم میآورد که عملاً در حافظه وجود ندارد.
چطور مهندسی معکوسش کنیم؟
از Intel Pin یا DynamoRIO برای بررسی رفتارهای غیرعادی اجرای کد استفاده کنید. ابزارهایی مانند Bochs یا Unicorn Engine میتوانند پردازش قبل از اجرای واقعی را شبیهسازی کنند. از Branch Tracing در CPUهای مدرن (مثلاً با استفاده از Intel PT) برای کشف شاخههای غیرمنتظره کمک بگیرید.
چرا این تکنیک خطرناک است؟
آنتیویروسها و دیباگرهای کلاسیک نمیتوانند چیزی را که در حافظه بارگذاری نشده تحلیل کنند! این تکنیک میتواند برای اجرای شلکدهای مخفی و دور زدن مکانیزمهای امنیتی استفاده شود.
تمرین عملی هم خواهیم داشت گروه نوروز کتابخوانی Evasive Malware بدافزار های پیشرفته