SetUnhandledExceptionFilter

Тема в разделе "WASM.WIN32", создана пользователем Mibori, 8 сен 2008.

  1. Mibori

    Mibori New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2008
    Сообщения:
    4
    Доброго времени суток.

    Как получить адрес функции глобального обработчика исключений, который устанавливается через SetUnhandledExceptionFilter(адрес_на_функцию_обработчика) без вызова самой SetUnhandledExceptionFilter.
     
  2. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Если твоя прога не вызывает SetUnhandledExceptionFilter то никто другой её для твоей проги не вызовет ;) и соответсвенно этого обработчика просто не будет ;)
    Винда по своей инициативе добавляет только обработчики в fs:[0]
     
  3. Mibori

    Mibori New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2008
    Сообщения:
    4
    .

    Я не писал, что это моя прога :)
     
  4. defaultplayer

    defaultplayer New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    214
    тогда может здесь почитать http://wasm.ru/print.php?article=ollydbg22
     
  5. blast

    blast New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2008
    Сообщения:
    170
    ntdll.dll!KiUserExceptionDispatcher?
     
  6. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Слёту можно придумать несколько способов:
    - дизассемблированием SetUnhandledExceptionFilter в поисках указателя BasepCurrentTopLevelFilter,
    если не ошибаюсь, ему нужно сделать RtlDecodePointer();
    - через символы отладки, поиск того же kernel32!BasepCurrentTopLevelFilter (так же нужна RtlDecodePointer())
    - если не своя программа, то внедрить dll с кодом вроде этого:
    Код (Text):
    1. TopFilter = SetUnhandledExceptionFilter(SomeYourFunction);
    2. SetUnhandledExceptionFilter(TopFilter);
    3. ShowValue(TopFilter);