[2021]EAC开始使用MSR_IA32_TSX_CTRL崩溃虚拟机 huoji 无线安全,游戏安全,C/C++,汇编 2021-01-12 EAC在rust上加了这一段: ```cpp bool EnableTsx() { unsigned __int64 tdx; // r9 unsigned __int64 newtsx; // rax tdx = __readmsr(0x122u); _disable(); __writemsr(0x122u, tdx & 0xFFFFFFFFFFFFFFFEui64); newtsx = __readmsr(0x122u); __writemsr(0x122u, tdx); _enable(); return (newtsx & 1) == 0; } _BOOL8 IsTsxEnabled() { unsigned __int64 tsx_bit; // rax tsx_bit = __readmsr(0x122u); return (tsx_bit & 1) == 0; } void SetupTSXAbort() { __asm { xbegin locret_4B759 xend } } ``` 0x122 = MSR_IA32_TSX_CTRL 来源于ESL反作弊 实际上使用的是CVE-2019-19338的方法 https://www.openwall.com/lists/oss-security/2019/12/10/3 如你所见 解决方法也很简单 handle msr RW 本文由 huoji 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。
还不快抢沙发