Назад | Перейти на главную страницу

VMWare VpxClient AxQuickMksAxCTL / Object Not Set NX / DEP - без отключения DEP

VMWare VpxClient.exe имеет проблему с предотвращением выполнения данных (DEP), из-за которой многие функции клиента недоступны.

Симптомы:

Отключение DEP для этого приложения с помощью приложения системной панели управления не работает, происходит сбой с ошибкой «Эта программа должна работать с включенной защитой выполнения данных (DEP). Вы не можете отключить DEP для этой программы».

VMWare рекомендует отключить DEP глобально, используя BCDEdit.exe. Ясно, что это нежелательно.

Я нашел решение и публикую его здесь, чтобы помочь другим.

Причина проблемы в том, что DEP несовместим с некоторыми компонентами. (Предположение: вероятно, это элемент управления ActiveX ATL 7.1, поскольку с этой версией ATL существует известная проблема).

Причина, по которой вы не можете отключить DEP для VpxClient.exe потому что флаг NXCOMPAT устанавливается в исполняемом файле, что приводит к включению DEP и предотвращает отключение exe.

Это стало стандартом по умолчанию в последних версиях Visual Studio, поэтому, вероятно, это не было осознанным решением со стороны VMWare.

Решение - использовать EDITBIN.exe изменить VpxClient.exe двоичный файл, удаляющий этот флаг.

По сути, это в административном сеансе CMD:

cd /d "C:\Program Files\VMware\Infrastructure\Virtual Infrastructure Client\Launcher"
copy VpxClient.exe VpxClient.Original.exe
"C:\Program Files\Microsoft Visual Studio 10.0\vc\bin\vcvars32.bat"
EDITBIN.EXE /NXCOMPAT:NO VpxClient.exe

(Очевидно, вам придется изменить это, например, для 64-разрядной системы или если ваши инструменты находятся в другом месте).

Теперь он будет работать, но выдаст предупреждение, поскольку цифровая подпись больше не действительна.

Теперь все, что нам нужно, это сделать это VMWare до того, как они подпишут двоичный файл.