equal
deleted
inserted
replaced
682 |
682 |
683 \noindent The first two are innocent as they instruct the |
683 \noindent The first two are innocent as they instruct the |
684 compiler to include debugging information and also produce |
684 compiler to include debugging information and also produce |
685 non-optimised code (the latter makes the output of the code a |
685 non-optimised code (the latter makes the output of the code a |
686 bit more predictable). The third is important as it switches |
686 bit more predictable). The third is important as it switches |
687 of defences like the stack canaries. The fourth again makes it |
687 off defences like the stack canaries. The fourth again makes it |
688 a bit easier to read the code. The final option makes the |
688 a bit easier to read the code. The final option makes the |
689 stack executable, thus the the example in Figure~\ref{C3} |
689 stack executable, thus the the example in Figure~\ref{C3} |
690 works as intended. While this might be considered |
690 works as intended. While this might be considered |
691 cheating....since I explicitly switched off all defences, I |
691 cheating....since I explicitly switched off all defences, I |
692 hope I was able convey that this is actually not too far from |
692 hope I was able convey that this is actually not too far from |