Сейчас на форуме: Adler, asfa, bartolomeo (+9 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› SEH vs C++ EH |
Посл.ответ | Сообщение |
|
Создано: 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. ![]() |
|
Создано: 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 ![]() |
|
Создано: 12 октября 2012 03:31 · Личное сообщение · #3 plutos пишет: Пытаюсь разобраться в том, как Visual C++ compiler implements Exception Handling. Всё уже разобрано до нас: ![]() |
|
Создано: 12 октября 2012 05:06 · Поправил: plutos · Личное сообщение · #4 reverser Всё уже разобрано до нас. В своем постe номер "раз", я как раз и процитировал статью, на которую вы даете ссылку (спасибо!). По вашей логике, если кто-то разобрался и написал статью, то разбираться уже нечего? Я ведь разбираюсь для себя, а не для того, чтобы удивить мир своими открытиями... ----- Give me a HANDLE and I will move the Earth. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› SEH vs C++ EH |
Эта тема закрыта. Ответы больше не принимаются. |