Canaries are a very good security measure against buffer overflows. Over the years, various canaries were broken and then made safer. The important thing is that even though the memory protection buffer overflows, it is still used in Vista, Windows 7, and Fedora 11 ...
It is very important to note that Canary only protects a functional frame (which includes powerful EIP!). Buffer overflows may occur in another memory segment, such as a heap, and the canary will not be affected. Moreover, an application can be hacked using buffer overflows without overwriting EIP. Managing EIP is a very simple and easy way to turn a buffer overflow into an exploit killer, which is why it is the most common exploitation method.
These operating methods, as well as others, are described in detail in Using software: how to break code .
rook
source share