всем привет! Всегда ли можно понять из-за чего ошибка в приложении r3? Сталкнулся с ситуацией, когда сие не очевидно. Я модифицирую одну из библиотек IE, добавил в неё свой код, после чего IE, будучи запущенным без прав админа, падает. Под админом работает как нужно. Если попытаться отладить код в иде - весь добавляемый мною код отрабатывает как нужно, жмёшь F9 - приложение просто закрывается, отладчик не останавливается в момент исключения, в журнале винды "приложение" появляется такая запись: Т.е. происходит AV, причём после того, как выполнился мой код, ИДА его не перехыватывает, а ведёт себя так, как будто приложение просто закрылось. По смещению b4320 нули в файле, т.е. кто-то передаёт туда управление? Кто и какого? =\ Как в таком случае понять где трабла? Интересует как причина ошибки (файло прилагаю), так и собственно метод, которым ошибку можно локализовать..
b4320 -- это смещение относительно базового адреса загруженного модуля, соответственно, чтобы высчитать виртуальный адрес, надо сложить базовый адрес и смещение.
Кстати зачем он два процесса создает? Они вроде арму туда не вешали. Я сначало думал что у меня zeus какой нибудь начудил так.
sysexit Кажется, это называется Protected Mode. Второй процесс создается с урезанными правами, чтобы даже если его проэксплуатируют, то зловред не смог бы вырваться. Сильно урезанные права на реестр и файловую систему.
Great Дополню В висте и семерке IE запускается с текущим уровнем привилегий (по умолчанию Medium Integrity Level). Потом в зависимости от открываемого урла запускается еще один процесс, с Integrity Level соответствующем зоне урла. По умолчанию для всех зон кроме Local Intranet включен Protected Mode - порожденный процесс запускается в Low Integrity Level. На запись доступны только некоторые папки (Cookies/Low например) и некоторые ключи реестра. Остальные операции записи на диск и в реестр хучатся через ieshims.dll и перенаправляются в безопасные места либо запрещаются. Для легальных операций с диском/реестром существует шлюзовой интерфейс через LPC. Само собой вся эта шняга работает если UAC не отключен.
Mentor а если не секрет, можно детектить подставу и заместо эксплуатации переадресовать на ресурс с модным поревом?
wsd Как говорил один мой знакомый венеролог, "все в наших руках" IEIsProtectedModeProcess() - детектить IELaunchURL() - переадресовать Хотя интереснее по-моему из-под Protected Mode выбраться
wsd Не дочитал, что вы хотите проверять _до_ эксплуатации. Удаленно это никак не проверить, но почти наверняка можно считать, что если браузер - ИЕ, а ось - виста или семерка, то там будет протектед мод