qemu-anti-detection
qemu-anti-detection copied to clipboard
Nvidia Rtx3060 mobile/laptop error 43(Solved)
在完成了显卡直通的笔记本的虚拟机xml配置中加入教程中的feature和qemu agrs中的内容后启动虚拟机,显卡报错代码43,如果不去虚拟化以原始方式启动则不会报错, please help,佬
查看了补丁,发现是 diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c index 9cf8e03..39f3855 100644 --- a/target/i386/kvm/kvm.c +++ b/target/i386/kvm/kvm.c @@ -1694,7 +1694,7 @@ int kvm_arch_init_vcpu(CPUState *cs) }
if (cpu->expose_kvm) {
-
memcpy(signature, "KVMKVMKVM\0\0\0", 12);
-
memcpy(signature, "GenuineIntel", 12); c = &cpuid_data.entries[cpuid_i++]; c->function = KVM_CPUID_SIGNATURE | kvm_base; c->eax = KVM_CPUID_FEATURES | kvm_base;
这一段导致的,去掉后这一段patch后GPU不再代码43报错,但是无法过Safengine虚拟机检测 能够解决吗
改成
memcpy(signature, "GenuineIntel\0", 13);
这个确实是我的问题,主要是之前也没出过问题
这个signature的定义是uint32_t signature[3];,每个uint32_t 4个字节长,一共12个字节长
修改为memcpy(signature, "GenuineIntel\0", 13);会超出字节长度,导致如下报错:
FAILED: libqemu-x86_64-softmmu.fa.p/target_i386_kvm_kvm.c.o cc -m64 -mcx16 -Ilibqemu-x86_64-softmmu.fa.p -I. -I../qemu -Itarget/i386 -I../qemu/target/i386 -I../qemu/capstone/include/capstone -Iqapi -Itrace -Iui -Iui/shader -I/usr/include/pixman-1 -I/usr/include/spice-server -I/usr/include/spice-1 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -fdiagnostics-color=auto -Wall -Winvalid-pch -Werror -std=gnu11 -O2 -g -isystem /home/noname/qemu/linux-headers -isystem linux-headers -iquote . -iquote /home/noname/qemu -iquote /home/noname/qemu/include -iquote /home/noname/qemu/disas/libvixl -iquote /home/noname/qemu/tcg/i386 -pthread -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-declaration -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wimplicit-fallthrough=2 -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong -fPIE -isystem../qemu/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="x86_64-softmmu-config-target.h"' '-DCONFIG_DEVICES="x86_64-softmmu-config-devices.h"' -MD -MQ libqemu-x86_64-softmmu.fa.p/target_i386_kvm_kvm.c.o -MF libqemu-x86_64-softmmu.fa.p/target_i386_kvm_kvm.c.o.d -o libqemu-x86_64-softmmu.fa.p/target_i386_kvm_kvm.c.o -c ../qemu/target/i386/kvm/kvm.c In file included from /usr/include/string.h:535, from /home/noname/qemu/include/qemu/osdep.h:87, from ../qemu/target/i386/kvm/kvm.c:15: In function ‘memcpy’, inlined from ‘kvm_arch_init_vcpu’ at ../qemu/target/i386/kvm/kvm.c:1697:9: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:29:10: error: ‘__builtin___memcpy_chk’ forming offset 12 is out of the bounds [0, 12] of object ‘signature’ with type ‘uint32_t[3]’ {aka ‘unsigned int[3]’} [-Werror=array-bounds] 29 | return __builtin___memcpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | __glibc_objsize0 (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ ../qemu/target/i386/kvm/kvm.c: In function ‘kvm_arch_init_vcpu’: ../qemu/target/i386/kvm/kvm.c:1639:14: note: ‘signature’ declared here 1639 | uint32_t signature[3]; | ^~~~~~~~~ cc1: all warnings being treated as errors [2067/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_kvm_ioapic.c.o [2068/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_xen_xen_pvdevice.c.o [2069/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_xen_xen_apic.c.o [2070/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_pc.c.o [2071/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_xenpv_xen_machine_pv.c.o [2072/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/target_i386_xsave_helper.c.o [2073/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/target_i386_gdbstub.c.o [2074/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_xen_xen_platform.c.o [2075/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_xen_xen-mapcache.c.o [2076/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/target_i386_helper.c.o [2077/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o [2078/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_xen_xen-hvm.c.o [2079/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/hw_i386_intel_iommu.c.o [2080/2777] Compiling C object libqemu-x86_64-softmmu.fa.p/target_i386_cpu.c.o [2081/2777] Compiling C object libqemu-x86_64-linux-user.fa.p/target_i386_tcg_fpu_helper.c.o ninja: build stopped: subcommand failed. make: *** [Makefile:163:run-ninja] 错误 1
😭😭😭这个该怎么解决,作者大大
行行行,那就改成 memcpy(signature, "GenuineInte\0", 12); 我l不要了
uint32_t signature[4];
memcpy(signature, "GenuineIntel\0", 13);
或者这样,把它变长
uint32_t signature[4]; memcpy(signature, "GenuineIntel\0", 13);
或者这样,把它变长
刚试了,可以编译,启动过后一样43, 我再去试试把I去了
寄!还是不行,我看看stackflow
行行行,那就改成 memcpy(signature, "GenuineInte\0", 12); 我l不要了
signature长度恢复12,然后 memcpy(signature, "KNMKNMKNM\0\0\0", 12);
就是说,全部恢复原状,单纯直接把KVM改成KNM
我也有这个问题 但是是因为xml配置上加了<vendor_id state="on" value="GenuineIntel"/>后导致的 但是不加的话过不了Safengine虚拟机检测
就是说,全部恢复原状,单纯直接把KVM改成KNM
还是43😭,Nvidia,fuckyou
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
我去掉这个patch和你这个效果是一样的,问题在于怎么在能过Se的情况下,让显卡不报代码43
我也不知道为啥 看了一些文章说是gpu检测虚拟机 但是我尝试了许多办法都没解决
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
我去掉这个patch和你这个效果是一样的,问题在于怎么在能过Se的情况下,让显卡不报代码43
你把KVMKVMKVM改成KNMKNMKNM然后去掉<vendor_id state="on" value="GenuineIntel"/>
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
我去掉这个patch和你这个效果是一样的,问题在于怎么在能过Se的情况下,让显卡不报代码43
你把KVMKVMKVM改成KNMKNMKNM然后去掉<vendor_id state="on" value="GenuineIntel"/>
会不会是虚拟机没有模拟笔记本满电电池的原因,我看到作者你的是有的,另外看了下这篇博客https://lantian.pub/article/modify-computer/laptop-intel-nvidia-optimus-passthrough.lantian/ 如果Nvidia 显卡检测到自己在虚拟机中就会正常运行,如果没有检测到就会以正常系统的标准检查电源等是否存在问题,另外作者你的这个电池是按照这个博客模拟出来的吗,显卡直通也是参照的吗
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
我去掉这个patch和你这个效果是一样的,问题在于怎么在能过Se的情况下,让显卡不报代码43
你把KVMKVMKVM改成KNMKNMKNM然后去掉<vendor_id state="on" value="GenuineIntel"/>
会不会是虚拟机没有模拟笔记本满电电池的原因,我看到作者你的是有的,另外看了下这篇博客https://lantian.pub/article/modify-computer/laptop-intel-nvidia-optimus-passthrough.lantian/ 如果Nvidia 显卡检测到自己在虚拟机中就会正常运行,如果没有检测到就会以正常系统的标准检查电源等是否存在问题,另外作者你的这个电池是按照这个博客模拟出来的吗,显卡直通也是参照的吗 我觉得应该是 可以试着用GPU-Z把显卡的BIOS导出添加到虚拟机的 UEFI 固件上试试
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
我去掉这个patch和你这个效果是一样的,问题在于怎么在能过Se的情况下,让显卡不报代码43
你把KVMKVMKVM改成KNMKNMKNM然后去掉<vendor_id state="on" value="GenuineIntel"/>
会不会是虚拟机没有模拟笔记本满电电池的原因,我看到作者你的是有的,另外看了下这篇博客https://lantian.pub/article/modify-computer/laptop-intel-nvidia-optimus-passthrough.lantian/ 如果Nvidia 显卡检测到自己在虚拟机中就会正常运行,如果没有检测到就会以正常系统的标准检查电源等是否存在问题,另外作者你的这个电池是按照这个博客模拟出来的吗,显卡直通也是参照的吗 我觉得应该是 可以试着用GPU-Z把显卡的BIOS导出添加到虚拟机的 UEFI 固件上试试
解决了,不需要导出BIOS ,仅需按照博客中的教程让qemu加载一个满电电池的acpi,估计这个是笔记本nvidia的独有问题,
非常好博客,使我的Nvidia旋转😋
下面是截图:
补丁保持原样进行patch就行,不用更改,在xml配置的qemu最后加上加载电池需要的两行参数,然后成功解决
问题应该是出现在<vendor_id state="on" value="GenuineIntel"/>配置上 你把这个参数删了进去应该也不会报43代码错误 但是过不了Safengine虚拟机检测
我去掉这个patch和你这个效果是一样的,问题在于怎么在能过Se的情况下,让显卡不报代码43
你把KVMKVMKVM改成KNMKNMKNM然后去掉<vendor_id state="on" value="GenuineIntel"/>
会不会是虚拟机没有模拟笔记本满电电池的原因,我看到作者你的是有的,另外看了下这篇博客https://lantian.pub/article/modify-computer/laptop-intel-nvidia-optimus-passthrough.lantian/ 如果Nvidia 显卡检测到自己在虚拟机中就会正常运行,如果没有检测到就会以正常系统的标准检查电源等是否存在问题,另外作者你的这个电池是按照这个博客模拟出来的吗,显卡直通也是参照的吗 我觉得应该是 可以试着用GPU-Z把显卡的BIOS导出添加到虚拟机的 UEFI 固件上试试
解决了,不需要导出BIOS ,仅需按照博客中的教程让qemu加载一个满电电池的acpi,估计这个是笔记本nvidia的独有问题, 非常好博客,使我的Nvidia旋转😋 下面是截图:
补丁保持原样进行patch就行,不用更改,在xml配置的qemu最后加上加载电池需要的两行参数,然后成功解决
好的 我后面回去试试~ 我也是笔记本nvidia
这种虚拟机反检测可以过掉大部分游戏,正如我说的,有部分游戏比如无畏契约,robolox玩不了
可能是它的虚拟机检测不但是基于”有某些特征“,而且还基于了”没有物理机的特征“,比如风扇,温度传感器,内存插槽,这些我查阅了全网的资料都不知道怎么模拟(甚至这一切都只是猜测),是个很困难的事情。
这种虚拟机反检测可以过掉大部分游戏,正如我说的,有部分游戏比如无畏契约,robolox玩不了
可能是它的虚拟机检测不但是基于”有某些特征“,而且还基于了”没有物理机的特征“,比如风扇,温度传感器,内存插槽,这些我查阅了全网的资料都不知道怎么模拟(甚至这一切都只是猜测),是个很困难的事情。
对ea新出的内核级别反作弊游戏the finals 进行了测试,会闪退,无法进入,但是不会报在虚拟机中