linux编译选项-fno-stack-protector/-m32

#默认的编译选项
cqq@kali:~/CTF$ gcc vuln.c -o vuln1
# -fno-stack-protector 禁用栈保护措施
cqq@kali:~/CTF$ gcc vuln.c -o vuln2 -fno-stack-protector
# -m32 表示在64位系统下编译32位的二进制文件,需要额外的库支持
cqq@kali:~/CTF$ gcc vuln.c -o vuln -fno-stack-protector -m32
cqq@kali:~/CTF$ shasum -a1 vuln1
ddb459cf1550383fff8a512c7038072df6ed3a79  vuln1
cqq@kali:~/CTF$ shasum -a1 vuln2
ddb459cf1550383fff8a512c7038072df6ed3a79  vuln2
cqq@kali:~/CTF$ file vuln2
vuln2: ELF 64-bit LSB pie executable x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=fe8c2e7d1b2d8b48eddb3df8b6af06a068556635, not stripped
cqq@kali:~/CTF$ file vuln
vuln: ELF 32-bit LSB pie executable Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=04acea3491a1a08e9c96b8d78847e9d31baa63fd, not stripped

发现确实加了-m32参数的二进制就是32位的,而没加这个参数的就是默认的64位的。

参考

https://dhavalkapil.com/blogs/Buffer-Overflow-Exploit/

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值