我的 gcc 版本:gcc 版本 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
以下是我的makefile
all : main.o utility.o
gcc -fno-stack-protector -Wl,-z,execstack -o binary main.o utility.o -lcrypto
main : main.c
gcc -z execstack -fno-stack-protector main.c -c
utility: utility.c
gcc -z execstack -fno-stack-protector utility.c -c
文件 utility.o 和 main.o 没有堆栈保护但链接后有一些堆栈保护
objdump -D binary | grep chk
080488d0 <__stack_chk_fail@plt>:
8048e30: e8 9b fa ff ff call 80488d0 <__stack_chk_fail@plt>
80494dd: e8 ee f3 ff ff call 80488d0 <__stack_chk_fail@plt>
80498e2: e8 e9 ef ff ff call 80488d0 <__stack_chk_fail@plt>
8049b92: e8 39 ed ff ff call 80488d0 <__stack_chk_fail@plt>
8049c9e: e8 2d ec ff ff call 80488d0 <__stack_chk_fail@plt>
8049da2: e8 29 eb ff ff call 80488d0 <__stack_chk_fail@plt>
804a137: e8 94 e7 ff ff call 80488d0 <__stack_chk_fail@plt>
如何禁用它?