检测代码:
EasyAntiCheat.sys+7DBE6 - 0F78 0A - vmread [rdx],ecx EasyAntiCheat.sys+7DBE9 - 0F94 C0 - sete al EasyAntiCheat.sys+7DBEC - 0F92 C1 - setb cl EasyAntiCheat.sys+7DBEF - 12 C1 - adc al,cl EasyAntiCheat.sys+7DBF1 - C3 - ret EasyAntiCheat.sys+7DBFE - 53 - push rbx EasyAntiCheat.sys+7DBFF - 57 - push rdi EasyAntiCheat.sys+7DC00 - 48 8B F9 - mov rdi,rcx EasyAntiCheat.sys+7DC03 - 48 33 C0 - xor rax,rax EasyAntiCheat.sys+7DC06 - F0 FE 07 - lock inc byte ptr [rdi] EasyAntiCheat.sys+7DC09 - 0FA2 - cpuid EasyAntiCheat.sys+7DC0B - F0 FE 0F - lock dec [rdi] EasyAntiCheat.sys+7DC0E - 5F - pop rdi EasyAntiCheat.sys+7DC0F - 5B - pop rbx EasyAntiCheat.sys+7DC10 - C3 - ret EasyAntiCheat.sys+7DC29 - 0F01 3A - invplg [rdx] EasyAntiCheat.sys+7DC2C - F0 FE 01 - lock inc byte ptr [rcx] EasyAntiCheat.sys+7DC2F - 8A 02 - mov al,[rdx] EasyAntiCheat.sys+7DC31 - FF D2 - call rdx EasyAntiCheat.sys+7DC33 - F0 FE 09 - lock dec [rcx] EasyAntiCheat.sys+7DC36 - C3 - ret
之前通过拦截vmread 向客户及注入异常发现无济于事(vmread后还有代码在检测HV),由于本人能力有限,跟不到后面的检测代码,于是就想出了一个办法过掉检测,这里给大家分享一下:
host拦截到vmread指令后,直接修改guest 的rip到自己的驱动代码里面然他一直循环,这样检测HV的这条线程就到vmread不会继续往下执行了。
vmwrite(guest_rip,&EAC_FUCK);
QWORD EAC_FUCK() { while (true) { Kernel_Sleep(10u); } //可以添加一个全局变量控制循环,跳出循环后要结束线程,不然会炸。 PsTerminateSystemThread(STATUS_SUCCESS); return 0; }
给位老哥,多发点文章给我学习学习,疫情那么严重不要工作了,快回来玩。
看雪2022 KCTF 秋季赛 防守篇规则,征题截止日期11月12日!(iPhone 14等你拿!)
最后于 4天前 被麦瑞鸭编辑 ,原因:
|
|
---|---|
FFFFF807D247DFC0 - C7 F8030000 - xbegin FFFFF807D247DFC8 FFFFF807D247DFC5 - 00 0F - add [rdi],cl FFFFF807D247DFC7 - 01 D5 - add ebp,edx FFFFF807D247DFC9 - C3 - ret FFFFF807D247DFCA - C7 F80A0000 - xbegin FFFFF807D247DFD9 FFFFF807D247DFCF - 00 8A 01FFD10F - add [rdx+0FD1FF01],cl FFFFF807D247DFD5 - 01 D5 - add ebp,edx FFFFF807D247DFD7 - B0 01 - mov al,01 FFFFF807D247DFD9 - C3 - ret FFFFF807D247DFDA - 32 C0 - xor al,al FFFFF807D247DFDC - C3 - ret 这几处检测 vmread 似乎是最后面执行的,至于TSX cpuid invplg 这几处也搞不懂在检测个啥,原理是什么? 最后于 4天前 被麦瑞鸭编辑 ,原因: |
|
vmread 直接返回不支持这个功能注入异常不可以吗?还有包括一些别的VMxxx都是直接回返让它显示此计算机不支持VT 最后于 4天前 被~时光荏苒编辑 ,原因: |
|
~时光荏苒 vmread 直接返回不支持这个功能注入异常不可以吗?还有包括一些别的VMxxx都是直接回返让它显示此计算机不支持VT 可以啊,但是你注入异常后只能 过掉 vmx指令的检测,他后面还有检测。 |
|
~时光荏苒 vmread 直接返回不支持这个功能注入异常不可以吗?还有包括一些别的VMxxx都是直接回返让它显示此计算机不支持VT 除非你能把后面的检测HV的代码找到,否则你注入异常了也无济于事。 最后于 4天前 被麦瑞鸭编辑 ,原因: |
|
https://secret.club/2020/04/13/how-anti-cheats-detect-system-emulation.html 你可以查考一下这个 |
|
tsx 是4 代到9代酷睿的一个多线程协同指令 默认关闭 用这个指令检测是因为这个指令触发handle的编号不同没办法捕获 |
|
Chords tsx 是4 代到9代酷睿的一个多线程协同指令 默认关闭 用这个指令检测是因为这个指令触发handle的编号不同没办法捕获 原来如此,怪不得我在正常模式和vt模式跑出的结果都一样,12代 |
|
mark |
|
返回