二进制保护绕过
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/binary-protection-bypass-lr-1raw 技能到当前 AI 助手。
技能介绍
要解决的问题
现代编译后的二进制不会只依赖一种防护。ASLR、PIE、NX、RELRO、canary、FORTIFY_SOURCE 等机制会同时生效,结果是同一个漏洞可能被某一项防护拦住,却又因为另一项配置或可用泄漏而绕过。更麻烦的是组合效应:例如 NX 会逼你转向 ROP 或 ret2libc,ASLR 又要求你先泄漏地址,RELRO 是否完整还会改变 GOT 覆写路线是否可行。
核心能力与工作方式
- 系统梳理防护项:覆盖
ASLR、PIE、NX、RELRO、canary、FORTIFY_SOURCE、stack clash、CET shadow stack、ARM MTE。 - 将每类防护与其绕过方法和所需原语对应起来,而不是泛泛罗列编译选项。
- 强调组合判断:先看某项防护挡住了什么,再看需要什么泄漏或写原语,最后判断多项防护叠加后是否仍存在可走通的路径。
- 提供路由:需要 ROP / ret2libc 时关联
stack-overflow-and-rop;需要泄漏 canary、PIE 或 libc 地址时关联format-string-exploitation;RELRO 影响 GOT 时关联heap-exploitation与arbitrary-write-to-rce。 - 需要完整矩阵时加载
PROTECTION_BYPASS_MATRIX.md,按 protection × bypass × primitive 查看。
适用边界与注意点
它适合 CTF、漏洞研究和二进制利用路径分析,但不能替代对具体目标的动态确认。成功与否取决于编译器、libc、内核、硬件特性、泄漏点、RWX 段、RELRO 是 partial 还是 full、GOT 是否只读、canary 是否可泄漏等因素。使用时应先确认实际启用的 mitigations 和已有原语,再选择绕过路线;不要把矩阵当成万能利用脚本。
使用场景
- 逆向一个开了 PIE 和 NX 的 ELF 时,需要先确认启用了哪些防护,再选 ROP 或 ret2libc 绕过路线。
- 挖到格式化字符串漏洞但目标有 canary 时,需要判断能否先泄漏 canary 再走覆写流程。
- CTF Pwn 题里二进制是 partial RELRO,需要对照 GOT 是否可写来决定覆写目标与后续原语。
- 面对启用 CET shadow stack 或 ARM MTE 的二进制,需要确认哪些经典栈攻击已失效、该改用什么原语。
适合人员
- CTF Pwn 参赛者,拿到题目后需要快速确认缓解机制并确定绕过路线
- 漏洞研究员,分析真实二进制时需要判断多项防护叠加下哪些利用路径仍然可行
- 逆向工程师,阅读加固后的 ELF 时需要对照防护项与绕过方法解释反汇编结果
- 二进制安全讲师,备课时需要按 protection × bypass × primitive 组织讲解结构