使用 gcc
,是否可以使用 -fstack-protector
进行编译,但忽略特定功能。
例如,假设我有两个函数。
void a() {
...
}
void b() {
...
}
我可以告诉编译器编译一个程序,该程序将在 a
的已保存返回地址之前使用金丝雀,但 b
没有金丝雀吗?
最佳答案
您必须测试它是否有效(在 Godbolt 检查生成的代码)但看起来您可以这样做,例如:
__attribute__ ((no_stack_protector)) void foo () { ... }
no_sanitize
看起来是个有趣的选项,我想知道是谁在使用它。
关于c - 如何为特定功能禁用堆栈金丝雀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71904896/