چند وقتی هست که توجه زیادی به Tencent VM Obfuscation در حوزه مهندسی معکوس جلب شده. طبق این گزارش، تیم تحلیل back.engineering از مدتها قبل موفق شده بودند این VM را بهصورت کامل و استاتیک Devirtualize کنند و جالبتر اینکه تیمهای دیگری هم به نتایج مشابهی رسیدند.
مقاله Static Devirtualization of Tencent VM به فرآیند Devirtualize کردن این VM می پردازد
در Tencent VM، نقطه ورود (Entry Point) تابع اصلی تغییر میکند و به بخش اختصاصی tvm. منتقل میشود.
در شروع اجرای VM، فضایی روی Stack برای نگهداری VM Context رزرو میشود. سپس تمام رجیسترهای عمومی پردازنده (GPRs) و فلگهای پردازنده (EFLAGS) ذخیره میشوند.
این اطلاعات ابتدا روی Stack قرار میگیرند و بعد به ساختار VM Context منتقل میشوند تا ماشین مجازی بتواند وضعیت اجرای کد اصلی را مدیریت کند.
در واقع این مرحله همان جایی است که VM کنترل اجرای برنامه را از کد اصلی گرفته و وارد محیط مجازی خودش میکند.
_



