新闻详情

新闻详情

首页 / 资讯中心 / 详情

so基础防护记录-CMakeList.txt配置和说明

发布时间:2026/9/30 7:38:01来源:尧图网络
so基础防护记录-CMakeList.txt配置和说明
# 编译器堆栈保护技术 set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fstack-protector-all) # 开启PIE地址随机化、RELRO重定位保护 set(CMAKE_POSITION_INDEPENDENT_CODE ON) # 链接器完整RELRO防护 set(CMAKE_EXE_LINKER_FLAGS -Wl,-z,relro,-z,now) # Release优化符号剥离 set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG) # OLLVM混淆参数Release开启 if(CMAKE_BUILD_TYPE STREQUAL Release) add_compile_options( -mllvm -fla -mllvm -sub -mllvm -bcf -mllvm -sobf -mllvm -split ) endif()1. 栈保护#有.cpp文件时需要添加set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fstack-protector-all)#有.c文件时需要添加set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fstack-protector-all)解决的漏洞依靠栈溢出篡改返回地址开启之后的效果编译器在所有函数栈开头插入随机校验值函数退出前校验该随机数是否被篡改如果校验失败程序立刻崩溃终止-fstack-protector 只给含有字符数组、局部缓冲区的函数开启保护-fstack-protector-strong 数组、结构体、大局部变量都会开启栈保护-fstack-protector-all 所有函数全部强制开启栈保护2. PIE动态地址set(CMAKE_POSITION_INDEPENDENT_CODE ON)解决的漏洞代码、全局变量、函数地址编译时就固定死 黑客一旦拿到这个固定地址就能精准构造栈溢出漏洞、ROP 攻击直接接管程序。开启之后的效果系统每次启动 APP、加载 SO 库时都会随机分配一段内存基地址。原本代码内部所有跳转、函数调用、全局变量引用全部用相对偏移寻址不依赖绝对地址。3. GOT 劫持防护set(CMAKE_EXE_LINKER_FLAGS -Wl,-z,relro,-z,now)GOT 表Android so 调用系统库函数的地址表解决的漏洞攻击者如果改写 GOT 表里面的函数指针就能把正常系统调用劫持成恶意代码。开启之后的效果-z relro 程序启动加载阶段将 GOT 表前半段关键区域 标记为只读-z now 程序运行前一次性解析完所有外部函数地址全部填入 GOT 表填充完毕后整张 GOT 表全部设置为只读设置后可防止GOT 被写入、篡改4. 混淆防逆向1原生#有.cpp文件时需要添加set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG)#有.c文件时需要添加set(CMAKE_C_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -DNDEBUG)2OLLVMOLLVM需要额外安装编译可以参考so基础防护记录-ollvm编译和使用-CSDN博客if(CMAKE_BUILD_TYPE STREQUAL Release)add_compile_options(-mllvm -fla-mllvm -sub-mllvm -bcf-mllvm -sobf-mllvm -split)endif()解决的漏洞反编译查看源码内容开启之后的效果代码混淆防逆向1原生参数-O2编译器二级优化代码精简、常量传播、循环优化、无用代码消除-s剔除调试符号、行号信息-DNDEBUG 关闭 C/C 标准 assert 断言2OLLVM-mllvm -fla控制流平坦化-mllvm -sub指令替换-mllvm -bcf虚假控制流-mllvm -sobf 替换式虚假控制流-mllvm -split 基本块拆分补一个Hikari分支参数与经典OLLVM有些区别-mllvm -hikari 主开关-mllvm -enable-bcfobf 虚假控制流-mllvm -enable-subobf 指令替换-mllvm -enable-cffobf 控制流平坦化-mllvm -enable-strcry 字符串加密
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

PanWatch 盘后日报 Agent 实战:每天收盘自动复盘,次日操作心里有底 2026/9/30 14:36:57

PanWatch 盘后日报 Agent 实战:每天收盘自动复盘,次日操作心里有底

PanWatch 盘后日报 Agent 实战:每天收盘自动复盘,次日操作心里有底 【免费下载链接】PanWatch PanWatch — AI stock monitoring for A-shares, HK & US markets, powered by TradingAgents. Portfolio insights, real-time alerts & automated …

阅读更多 →
规范的AI论文网站排行榜(2026 最新盘点) 2026/9/30 14:36:32

规范的AI论文网站排行榜(2026 最新盘点)

根据功能全面性、学术适配性、用户使用体验及技术稳定性等核心维度,以下是2026年主流AI论文写作工具的权威测评榜单,按综合使用价值从高到低进行排序,并详细标注各平台的核心优势与适用领域。🏆 第一梯队:全流程学术解…

阅读更多 →
同一个问题不同AI给的答案不一样,GEO要以哪个平台为准? 2026/9/30 14:36:32

同一个问题不同AI给的答案不一样,GEO要以哪个平台为准?

同一个问题不同AI给的答案不一样,GEO要以哪个平台为准?同一个客户问题,在不同 AI 里得到的答案经常对不上:有的提到你,有的只提竞品,有的干脆说"信息不足"。于是很多人问:GEO 到底该以…

阅读更多 →
)从入门到精通)具身智能不能照搬数字AI路线(第三篇:趋势判断与行动建议) 2026/9/30 14:36:18

)从入门到精通)具身智能不能照搬数字AI路线(第三篇:趋势判断与行动建议)

洞察第三篇:技术走到哪了?未来往哪去?——趋势判断与行动建议一、当前阶段判断:从"Demo秀场"到"落地攻坚"技术成熟度:VLA已进入"工程化优化期",WAM处于"快速突破期&quo…

阅读更多 →
企业微信API接口如何开发外部群机器人?双向消息通信的实现思路 2026/9/30 14:36:04

企业微信API接口如何开发外部群机器人?双向消息通信的实现思路

最近做的企微二开,要在客户群里放个机器人——客户在群里说话机器人能收到,机器人发消息客户也能看到,双向通信是基础。和之前聊的群智能助手不同,那篇重点是响应策略,这篇重点是双向消息通信本身怎么打通——群消息怎…

阅读更多 →
cnc机器人加工工艺解析,推荐一家高精密机器人零件加工厂商 2026/9/30 14:36:03

cnc机器人加工工艺解析,推荐一家高精密机器人零件加工厂商

机器人零件之所以难加工,不是因为单件形状有多玄乎,而是因为它把"材料、装夹、刀路、检测"四件事压在了同一个公差带里。这篇文章把我在关节类零件上摸出来的工艺逻辑拆一拆,顺便聊聊什么样的厂才算得上高精密。 一、为什么机器人零…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉