This video https://youtube.com/watch?v=4HxUmbOcN6Y presents how modern compilers protect stack overflows with stack cookies and function
- How can one identify if a binary has stack smashing protection? If I see
__stack_chk_failin IDA can I guess that this binary uses stack cookies(I will see this function only if this binary compiled dynamically).
But if this function is compiled statically, how can I recognize it? Each function will end with
if ... then abort else return or only functions that get buffer from user?
- If binary use stack smash protection and get buffer unsafe (like
gets) how can I get over stack cookies? Or there is no way to return to another function?