169 похожих чатов

Здравствуйте, поясните пожалуйста момент по поводу SEH в win64, читаю

мануалы и вижу, что в новой интерации они стали статическими и все описаны в секции .pdata структурами
struct IMAGE_RUNTIME_FUNCTION_ENTRY
BeginAddress dd 0 ;// RVA-адрес начала блока
EndAddress dd 0 ;// RVA-адрес конца блока
UnwindInfoAddress dd 0 ;// RVA-линк на дочернюю структуру "UNWIND_INFO"
ends
вопрос, как тогда работает SetUnhandledExceptionFilter ?
на мсдн к ней написано следующее -
Issuing SetUnhandledExceptionFilter replaces the existing top-level exception filter for all existing and all future threads in the calling process.
The exception handler specified by lpTopLevelExceptionFilter is executed in the context of the thread that caused the fault. This can affect the exception handler's ability to recover from certain exceptions, such as an invalid stack.

Тоесть получается, обработчик который мы указываем в ней, будет выполнять до всех остальных обработчиков указанных в .pdata ?
и что самое главное, каков примерный хотя бы механизм действия этой апи, ведь вроде как фильтры статически должны быть прописаны в .pdata, как она устанавливает переданную функу в качетсве главной для обработки исключений, можно ли добраться ручками до этого механизма из режима юзера через TEB как-нибудь в контексте ассемблера естественно?

3 ответов

13 просмотров

UnhandledExceptionFilter — это последний, а не первый.

philip-kirkorov Автор вопроса
s54820
UnhandledExceptionFilter — это последний, а не пер...

ну то есть сначало обработчик исключений опросит все функции из .pdata и в конце, если никто не возьмет на себя обработку, передаст тому, что мы устанавливаем ?

philip kirkorov
ну то есть сначало обработчик исключений опросит в...

По идее да. Там ещё есть AddVectoredExceptionHandler. Если хочется ловить что-то, то лучше смотреть туда.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта