snowie2000 / mactype

Better font rendering for Windows.
https://mactype.net
GNU General Public License v3.0
10.09k stars 443 forks source link

和VxKex冲突 #989

Open YuZhouRen86 opened 6 months ago

YuZhouRen86 commented 6 months ago

Win7下开启服务模式后无法用VxKex打开任何程序

snowie2000 commented 6 months ago

应该说VxKex和很多复杂应用冲突。 VxKex对内核dll进行了很多魔改,所以应该是和mactype用到的某些api冲突了,这个问题无法被解决

YuZhouRen86 commented 6 months ago

应该说VxKex和很多复杂应用冲突。 VxKex对内核dll进行了很多魔改,所以应该是和mactype用到的某些api冲突了,这个问题无法被解决

您好! VxKex并没有对系统修改,大小只有10M,文件全部在ProgramFiles文件夹内,只是添加了一些Win8、Win10的api,是扩展api集,不是扩展内核。其需要对特定不兼容Win7的程序手动开启,并没有默认打开,不存在“VxKex和很多复杂应用冲突”,因为正常兼容Win7的应用没必要开启,只存在“使用VxKex运行的程序和系统级的MacType冲突”。这个问题同样也汇报给了VxKex官方: https://github.com/vxiiduu/VxKex/issues/218 。 这里提供一下解决问题的一种思路:识别Win7下程序是否调用VxKex,如开启了VxKex,则针对该程序禁用MacType渲染。

jonm58 commented 6 months ago

应该说VxKex和很多复杂应用冲突。 VxKex对内核dll进行了很多魔改,所以应该是和mactype用到的某些api冲突了,这个问题无法被解决

VxKex没有对系统修改…

snowie2000 commented 6 months ago

不修改任何文件是怎么给系统添加原本应该由kernel32等dll提供的api的呢? imagehijacking?

jonm58 commented 6 months ago

不修改任何文件是怎么给系统添加原本应该由kernel32等dll提供的api的呢? imagehijacking?

是的,IFEO VerifierDlls

YuZhouRen86 commented 6 months ago

不修改任何文件是怎么给系统添加原本应该由kernel32等dll提供的api的呢? imagehijacking?

来自VxKex官网的解答: “ Q: How does VxKex work?

A: VxKex works by loading a DLL into each program where VxKex is enabled. This is accomplished through using the IFEO (Image File Execution Options) registry key.

Specifically, the "VerifierDlls" value is set to point to a VxKex DLL. This DLL then loads into the process.

API extension is accomplished by editing the program's DLL import table so that instead of importing from Windows 8/8.1/10 DLLs, it imports to VxKex DLLs instead. These VxKex DLLs contain implementations of Windows API functions which were introduced in newer versions of Windows. ”

ssssssbbb commented 6 months ago

自己维护一个黑名单就可以了,毕竟那边需要一个名单,信手拈来

不知道用vxkex运行macloader64.exe再运行目标程序会不会成功呢?