-


             

Microsoft Visual Studio .NET


, Microsoft Visual Studio .NET ( Visual Studio C++) Stack-Guard' "". , "" ( - , www.softpanorama.org/Bulletin/News/Archive/news078.txt, ), Microsoft, , , . , . .

/GS security cookie  , , Microsoft 32- canary word, writable- check_canary :

function _prologue:

push ebp ; //

mov ebp, esp ; //

sub esp, 9Ch ; // . canary

push edx ; \

push esi ; + -

push edi ; /

mov eax, [canary] ; // canary

eax

xor eax, [esp+10h] ; // XOR' canary

mov [ebp-10h],eax ; // ,

; //

; ( , ,

; )

function_epilogue:

mov ecx, [epb-10h] ; // XOR' canary ecx

xor ecx, [ebp+10h] ; // XOR' ecx

call check_canary ; // canary

pop edi ; \

pop esi ; + -

pop ebx ; /

mov esp, ebp ; //

pop ebp ; // (Microsoft Stack Guard')

ret ; //

check_canary: ; // canary

cmp ecx, [canary] ; // ecx canary

jnz canary_changed ; // -

ret ; // ,