首页 > 其他分享 >gcc

gcc

时间:2024-01-25 20:11:07浏览次数:17  
标签:选项 gcc 攻击 Wl 程序 防止 机制

# -Wl,-z,noexecstack 是一个选项,用于告诉链接器不在程序的栈上执行代码。这个选项可以提高程序的安全性,因为它可以防止栈溢出攻击。
栈溢出攻击是一种常见的攻击方式,攻击者通过向程序的栈中注入恶意代码来控制程序的执行流程。使用 -Wl,-z,noexecstack 选项可以防止这种攻击方式,因为它会禁止在程序的栈上执行代码。

# -Wl,-z,relro 一个选项,用于启用 RELRO(RELocation Read-Only)保护机制。这个选项可以提高程序的安全性,因为它可以防止一些针对程序的攻击,例如 GOT(Global Offset Table)覆盖攻击。
RELRO 保护机制是一种内存保护机制,它可以将程序的重定位表(Relocation Table)设置为只读模式,从而防止攻击者修改程序的重定位表。这个机制可以防止一些针对程序的攻击,例如 GOT 覆盖攻击。
 
# -Wl,-z,now 是一个选项,用于启用 NOW(No lazy symbol binding)保护机制。这个选项可以提高程序的安全性,因为它可以防止一些针对程序的攻击,例如 PLT(Procedure Linkage Table)覆盖攻击。
NOW 保护机制是一种内存保护机制,它可以在程序启动时立即解析所有的符号,从而防止攻击者修改程序的 PLT 表。这个机制可以防止一些针对程序的攻击,例如 PLT 覆盖攻击。
使用 -Wl,-z,now 选项可以启用 NOW 保护机制。

 

标签:选项,gcc,攻击,Wl,程序,防止,机制
From: https://www.cnblogs.com/shiqi17/p/17988065

相关文章

  • gcc cpp语言相关代码
    【逻辑结构】1)c++的词法语法分析部分D:\jch\2023\gcc\gcc\cp目录20w行 主要文件2)生成GMPLE和优化gcc目录下3)生成RTL和优化RTL:寄存器传输语言source/config/target子目录 ......
  • Centos离线以安装包形式安装gcc等软件
    安装软件下载以下安装包由于rpm包之间存在一定依赖关系,所以使用rpm-ivh*.rpm可能安装失败方案一:按照依赖关系按顺序一个个安装rpm-ivhmpfr-3.1.1-4.el7.x86_64.rpmrpm-ivhlibmpc-1.0.1-3.el7.x86_64.rpmrpm-ivhkernel-headers-3.10.0-1160.el7.x86_64.rpmrpm-ivhglib......
  • centos安装gcc 4.9.4 版本
    系统:centos7.6因为在安装hyperf热加载时需要用到fswatch,安装fswatch需要gcc4.9以上的版本,但是系统自带的gcc只有4.8的版本,所以我们需要安装4.9的,这里我安装的是4.9.4的版本:yuminstall-ygccgcc-c++#因为我有自带的gcc所以不用安装,如果没有的话。需要先安装yum自带的gcc......
  • Linux下的gcc/g++编译器的使用 [补档-2023-06-13]
    gcc编译器​这东西是Linux上的c/c++编译器。5-1gcc的工作流程5-2gcc的常用参数-v查看gcc版本号,--version也可以-E生成预处理文件-S生成汇编文件-c只编译,生成.o文件,通常称为目标文件-I指定头文件所在的路径-L指定库文件所在的路径-l指定库的名......
  • proteus8 单步调试stm32 外置arm gcc
    10年前proteus7的时代,51单片机就已经可以用keil和proteus联调了,单步调试,像连接了一个jtag调试口一样。proteus官方提供的keil调试器驱动有arm设备,不过我反复尝试,虽然识别到ProteusVSMSimulator设备和端口,但是还是报错,无法成功。本文只是借助proteus内置的编辑器和单步调试器,......
  • linux下gcc 4.8.5和7.5并存
    有些软件依赖于c++14甚至c++17的特性,比如libpqxx6.4.8版本就需要4.9以上版本,4.8.5不可以,会下列错误,invalidinitializationofnon-constreferenceoftype‘pqxx::connection_base&’fromanrvalueoftype‘<brace-enclosedinitializerlist>’  m_open{C......
  • linux编译器:gcc/g++的使用
    原文连接:https://blog.csdn.net/weixin_72060925/article/details/131274627原文链接:https://blog.csdn.net/qq_65207641/article/details/128629904一、编辑器与编译器的区别vim是代码编辑器,代码编辑器的功能是让我们输入代码的。所以从这个角度出发,我们常见的记事本也可以......
  • /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: 找不到 -lz
    我用的cmake命令是:target_link_libraries(${MyProjectName}-L/usr/lib64/mysql-lmysqlclient-lpthread-lz-lm-lssl-lcrypto-ldl) 将${MyProjectName}这个目标(可执行文件或库文件)链接到以下的库文件:/usr/lib64/mysql/libmysqlclient.so/usr/lib64/libpthread.so/usr/l......
  • configure: error: Building GCC requires GMP 4.2+, MPFR 3.1.0+ and MPC 0.8.0+.
    gitclone git://gcc.gnu.org/git/gcc.gitgcc-CXX17gitcheckoutorigin/release/gcc-12./configureconfigure:error:BuildingGCCrequiresGMP4.2+,MPFR3.1.0+andMPC0.8.0+.Trythe--with-gmp,--with-mpfrand/or--with-mpcoptionstospecifytheirlocation......
  • 1835_GCC中C语言typeof的使用
    Grey全部学习内容汇总:GitHub-GreyZhang/c_basic:littlebitsofc.1835_GCC中C语言typeof的使用typeof是C语言中对数据类型的一种引用方法,目前看到的信息来看,并不是标准C中提供或者要求的内容。这个功能,其实是编译器提供的一种便捷的操作模式。而我看的资料中,这个功能在gcc中是......