Приложение падает с AV, не могу понять почему (

Тема в разделе "WASM.BEGINNERS", создана пользователем holod, 9 дек 2010.

  1. holod

    holod New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2009
    Сообщения:
    25
    всем привет!

    Всегда ли можно понять из-за чего ошибка в приложении r3? Сталкнулся с ситуацией, когда
    сие не очевидно. Я модифицирую одну из библиотек IE, добавил в неё свой код, после
    чего IE, будучи запущенным без прав админа, падает. Под админом работает как нужно.
    Если попытаться отладить код в иде - весь добавляемый мною код отрабатывает как нужно,
    жмёшь F9 - приложение просто закрывается, отладчик не останавливается в момент исключения,
    в журнале винды "приложение" появляется такая запись:

    Т.е. происходит AV, причём после того, как выполнился мой код, ИДА его не перехыватывает,
    а ведёт себя так, как будто приложение просто закрылось. По смещению b4320 нули в файле,
    т.е. кто-то передаёт туда управление? Кто и какого? =\

    Как в таком случае понять где трабла? Интересует как причина ошибки (файло прилагаю), так и
    собственно метод, которым ошибку можно локализовать..
     
  2. holod

    holod New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2009
    Сообщения:
    25
  3. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    b4320 -- это смещение относительно базового адреса загруженного модуля, соответственно, чтобы высчитать виртуальный адрес, надо сложить базовый адрес и смещение.
     
  4. holod

    holod New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2009
    Сообщения:
    25
    Спасибо, помогло =) Оказывается IE8 создаёт два процесса и второй так просто не отладить..
     
  5. sysexit

    sysexit New Member

    Публикаций:
    0
    Регистрация:
    27 авг 2010
    Сообщения:
    176
    Кстати зачем он два процесса создает? Они вроде арму туда не вешали. Я сначало думал что у меня zeus какой нибудь начудил так.
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    sysexit
    Кажется, это называется Protected Mode. Второй процесс создается с урезанными правами, чтобы даже если его проэксплуатируют, то зловред не смог бы вырваться. Сильно урезанные права на реестр и файловую систему.
     
  7. Mentor

    Mentor New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2010
    Сообщения:
    67
    Great
    Дополню

    В висте и семерке IE запускается с текущим уровнем привилегий (по умолчанию Medium Integrity Level). Потом в зависимости от открываемого урла запускается еще один процесс, с Integrity Level соответствующем зоне урла.
    По умолчанию для всех зон кроме Local Intranet включен Protected Mode - порожденный процесс запускается в Low Integrity Level. На запись доступны только некоторые папки (Cookies/Low например) и некоторые ключи реестра.
    Остальные операции записи на диск и в реестр хучатся через ieshims.dll и перенаправляются в безопасные места либо запрещаются.
    Для легальных операций с диском/реестром существует шлюзовой интерфейс через LPC.

    Само собой вся эта шняга работает если UAC не отключен.
     
  8. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Mentor
    а если не секрет, можно детектить подставу и заместо эксплуатации переадресовать на ресурс с модным поревом?
     
  9. Mentor

    Mentor New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2010
    Сообщения:
    67
    wsd
    Как говорил один мой знакомый венеролог, "все в наших руках"
    IEIsProtectedModeProcess() - детектить
    IELaunchURL() - переадресовать

    Хотя интереснее по-моему из-под Protected Mode выбраться
     
  10. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Mentor
    само собой, но иногда, если полностью в этом не уверен, лучше не палить раздачу
     
  11. Mentor

    Mentor New Member

    Публикаций:
    0
    Регистрация:
    13 окт 2010
    Сообщения:
    67
    wsd

    Не дочитал, что вы хотите проверять _до_ эксплуатации.

    Удаленно это никак не проверить, но почти наверняка можно считать, что если браузер - ИЕ, а ось - виста или семерка, то там будет протектед мод