Сейчас на форуме: Adler, asfa, bartolomeo (+9 невидимых)

 eXeL@B —› Вопросы новичков —› SEH vs C++ EH
Посл.ответ Сообщение


Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 09 октября 2012 06:10
· Личное сообщение · #1

Пытаюсь разобраться в том, как Visual C++ compiler implements Exception Handling.
Проще всего это сделать, сравнивая SEH3 и SEH4.
В SEH4 появляется вот такая структура:

struct _EH4_SCOPETABLE {
DWORD GSCookieOffset;
DWORD GSCookieXOROffset;
DWORD EHCookieOffset;
DWORD EHCookieXOROffset;
_EH4_SCOPETABLE_RECORD ScopeRecord[];
};

Как-то по ней особенно ничего не нашел, кроме вот такого:
"in SEH4, the scope table pointer is XORed with the security cookie, to mitigate scope table pointer overwrite"

Там же говорится, что "Тhe GS cookie is present only if the function was compiled with /GS switch"
Ну этот switch означает "Buffer security check", что проясняет частично ситуацию, но не особенно.
Не мог бы кто-нибудь разьяснить, какова роль этих GSCookie и EHCookie?
Если можно, с примером.
Заранее спасибо!

-----
Give me a HANDLE and I will move the Earth.




Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 09 октября 2012 09:48 · Поправил: sendersu
· Личное сообщение · #2

Роль куки
http://blogs.msdn.com/b/vcblog/archive/2009/03/19/gs.aspx
http://blogs.technet.com/b/srd/archive/2009/03/16/gs-cookie-protection-effectiveness-and-limitations.aspx

| Сообщение посчитали полезным: plutos

Ранг: 58.0 (постоянный), 13thx
Активность: 0.020.01
Статус: Участник

Создано: 12 октября 2012 03:31
· Личное сообщение · #3

plutos пишет:
Пытаюсь разобраться в том, как Visual C++ compiler implements Exception Handling.


Всё уже разобрано до нас: --> Link <--




Ранг: 622.6 (!), 521thx
Активность: 0.330.89
Статус: Участник
_Вечный_Студент_

Создано: 12 октября 2012 05:06 · Поправил: plutos
· Личное сообщение · #4

reverser
Всё уже разобрано до нас.

В своем постe номер "раз", я как раз и процитировал статью, на которую вы даете ссылку (спасибо!).
По вашей логике, если кто-то разобрался и написал статью, то разбираться уже нечего?
Я ведь разбираюсь для себя, а не для того, чтобы удивить мир своими открытиями...

-----
Give me a HANDLE and I will move the Earth.



 eXeL@B —› Вопросы новичков —› SEH vs C++ EH
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати