Я отлаживаю DLL-надстройку Outlook в следующей среде:
Windows 7 x64
Office 2013 «нажми и работай» x86
Visual Studio 2010
Только родной (C ++)
«Показывать моментальные снимки загрузчика» отключен на системном уровне и для outlook.exe как в реестре x86, так и в x64, и я убедился, что нигде не существует переопределенного значения реестра «GlobalFlag».
Единственное значение «GlobalFlag» в системе установлено в 0x00000400 (только FLG_POOL_ENABLE_TAGGING) и находится в CurrentControlSet.
Когда я присоединяю VS-отладчик к OUTLOOK.EXE (моя DLL уже загружена), я могу отладить его как положено (загрузка символов и т. Д.), Но в случайное время я достигаю этой точки останова, независимо от того, что я делаю.
Зачем мне получать точки останова в LdrpSnapThunk? Я не смог найти никакой опции, чтобы даже установить / включить такие точки останова (оснастка загрузчика должна печатать только строку отладки, а не вызывать точку останова, AFAIK).
Это действительно раздражает — я получаю эту точку останова, которая останавливает меня в случайное время при отладке.
Спасибо!
Приведенный выше комментарий Ганса помог мне решить эту проблему. Для дальнейшего использования — вам необходимо отключить «Экспортировать фильтрацию доступа к таблице адресов» (EAF) для OUTLOOK.EXE в окне «Конфигурация приложения» в EMET.
Других решений пока нет …