【发布时间】:2018-01-31 16:56:05
【问题描述】:
我正在尝试强化我正在处理的项目中的一些可执行文件。为了进行测试,我使用了一个 hello world 程序,并使用 checksec 检查它,它报告说没有金丝雀。我对 Rust 很陌生,Google 上缺乏信息让我觉得我遗漏了一些明显的东西。
使用 GCC,它是一个简单的编译器标志:-fstack-protector-all。我为 LLVM 找到的最接近的东西是 safe stack。但是,当我尝试将其传递给 LLVM 时,Rust 编译器似乎无法识别它。例如:
rustc -C llvm-args="-fsanitize=safe-stack" -C link-arg="-fsanitize=safe-stack" test.rust
结果
rustc:未知的命令行 参数“-fsanitize=安全堆栈”。试试:'rustc -help' rustc:你有没有 意思是'-spp-no-call'?
我正在使用 Rust 1.23.0。我正在尝试不仅在 x86_64 上添加这些金丝雀,而且还在 armeabi-v7a 上添加这些金丝雀,以防万一。
【问题讨论】:
-
test.rust— FWIW,扩展名是.rs。