VxKex icon indicating copy to clipboard operation
VxKex copied to clipboard

A bug where the system DLL files are still loaded instead of VxKex's

Open ArtP2000 opened this issue 1 year ago • 6 comments

Sometimes, when an application calls a function, the system DLL is loaded instead of VxKex's

For example, the application calls the system kernel32.dll instead of kxbase.dll

I have implemented RtlGetDeviceFamilyInfoEnum, which is needed to launch Microsoft Edge, but instead of kxnt.dll, the function calls anyway from ntdll.dll, which is why the application does not start

2025-01-08_134937

изображение

ArtP2000 avatar Jan 08 '25 11:01 ArtP2000

Have you enabled VxKex for child processes?

CommonLoon102 avatar Jan 08 '25 11:01 CommonLoon102

Of course

ArtP2000 avatar Jan 08 '25 11:01 ArtP2000

Linked to:

  • https://github.com/i486/VxKex/issues/87
  • https://github.com/i486/VxKex/issues/63
  • https://github.com/i486/VxKex/issues/45
  • https://github.com/i486/VxKex/issues/19
  • https://github.com/i486/VxKex/issues/11

For the moment, you can use:

  • https://github.com/YuZhouRen86/VxKex-NEXT

Neustradamus avatar Feb 26 '25 08:02 Neustradamus

It's not the same issue. Mine may be caused by the application loading the DLL through LoadLibrary() instead of .lib linking.

ArtP2000 avatar Feb 26 '25 08:02 ArtP2000

VxKex rewrites the import table in PE. DLL files that are loaded via LoadLibrary are not listed in the import table, so in order to replace the name of the imported DLL via LoadLibrary(), we need to edit the program itself to replace the DLL name in code

ArtP2000 avatar Feb 26 '25 08:02 ArtP2000

@i486, @YuZhouRen86, @dotexe1337: What do you think?

Neustradamus avatar Mar 04 '25 00:03 Neustradamus