您的位置:首页 > 房产 > 家装 > 北京进入紧急状态_怎么自创软件_电商平台引流推广_品牌网络营销推广方案策划

北京进入紧急状态_怎么自创软件_电商平台引流推广_品牌网络营销推广方案策划

2025/4/19 16:31:01 来源:https://blog.csdn.net/weixin_44689630/article/details/145095753  浏览:    关键词:北京进入紧急状态_怎么自创软件_电商平台引流推广_品牌网络营销推广方案策划
北京进入紧急状态_怎么自创软件_电商平台引流推广_品牌网络营销推广方案策划

文章目录

  • GCC安全编译选项
    • 1.BIND_NOW
    • 2.NX
    • 3.PIC
    • 4.PIE
    • 5.SP
    • 6.NO Rpath/Runpath
    • 7.FS
    • 8.Ftrapv
    • 9.Strip
    • 10.安全编译Python

GCC安全编译选项

1.BIND_NOW

定义:立即绑定,打开GOT表重定位只读选项

使用方式:LDFlAGS="-Wl,-z,relro,-z,now" ./configure

2.NX

堆栈不可执行:打开堆栈不可执行/数据执行保护选项实现堆栈不可执行保护

使用方式:LDFLAGS="-WL,-z,noexecstack" ./configure

3.PIC

定义:地址无关:打开地址随机化,地址无关化代码,地址无关可执行

使用方式:"CFLAGS="-fPIC" ./configure

4.PIE

定义:随机化:打开地址随机化,地址无关代码,地址无关执行

使用方式:"CFLAGS="-fPIE" LDFLAGS="-pie" ./configure

5.SP

定义:栈保护

使用方式:CFLAGS="-fstack-protector-strong" ./configure

6.NO Rpath/Runpath

定义:动态库搜索路径(禁选),禁止使用,-rpath

7.FS

定义:Forrtify Source:用FORTIFY_SOURCE编译宏来打开FS选项

使用方式:CFLAGS="-D_FORTIFY_SOURCE=2 -02" ./configure

8.Ftrapv

定义: 整数溢出检查:打开ftrapv选项来检查整数溢出

使用方式:CFLAGS="-ftrapv" ./congfiure

9.Strip

定义:删除符号表:使用-s选项或者strip工具去除符号表

使用方式:LDFLAGS="-s" ./configure

10.安全编译Python

# 安全连接选项:必须通过LDFLAGSS_NODIST带入
# Makefile中的LDFLAGS 或LDFLAGSS_NODIST,都有使用,重复使用不影响
# 如果仅是通过LDFLAGS带入,则Makefile调用setup.py 编译四个模块时,只读取LDFLAGS_NODIST选项LDFLAGS_NODIST="-Wl,-z,relro,-z,now,-WL,-z,noexecstack -s -fvusibility=hideen -WL ,--build-id=none export LDFLAGS_NODIST"# LINKFORSHARED是链接python的bin文件,专用的选项,不同的OS取值不同,它需要通过执行 ./configure,读取Makefile中的LINKFORSHARED获得,以某个OS为例,它的值是"-Xlinker -export-dynamic"# pie安全编译选项,如果通过LDFLAGS或者LDFLAGS_NODIST 带进去都会编译so库时,导致编译so错误,所以,pie只能加到bin/python的专用选项上export LINKFORSHARED="-XLinker -export-dynamic -pie"
export CFLAGS="-D_FORTIFY_SOURCE=2 -02 -fstack-protector -fPIC,-ftrapv -fstack-check -Wfloat-equal -Wformat=2 -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wstrict-overflow=1 Wstrict-prototypes -Wl, --build-id=none -l libffi/ include -lopenssl/include -lopenssl/include -lopenssl/include/openssl -lzlib/include"
export CFLAGS
export CPPFLAGS="${CFLAGS}"
export CXXFLAGS="${CFLAGS}"
export LD_LIBRARY_PATH="libffi/lib64:openssl/lib64:zlib/lib:${LD_LIBRARY_PATH}"
./configure --prefix=${PYTHON_HOME} --with-openssl=/openssl && make -j8 && make install

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com