manish goregaokar撰寫了一篇精彩的部落格文章,內容涉及貨物模糊及其在模糊rust程式中的使用。
從那篇文章開始,我就推送了**以更新預設的模糊目標模板,並使整個模糊體驗變得更好。 我還轉殖了很多開源專案,並對它們進行了瘋狂測試 ……取得了成功! 截至今天,我已經向獎盃案提交了10個錯誤; 其中6個是固定的,另外4個是未解決的專案。
如果您有乙個需要輸入的專案,請敦促您對**進行模糊測試!
無論如何-這是我執行以測試專案的典型工作流程:
$ cd $ cargo install cargo-fuzz # (if not already installed) $ cargo fuzz init $ vim fuzz/fuzzers/fuzzer_script_1.rs
$ cargo fuzz run fuzzer_script_1
…就是這樣!
現在,關於放入模糊目標的內容非常簡單。 通常,您將需要在此處新增**,這是該庫其餘部分的入口。 (當然,您可以測試程式的某些功能,但至少在這裡它將測試整個功能。)
此類**的示例如下:
#![no_main] #[macro_use] extern crate libfuzzer_sys; extern crate your_lib;
fuzz_target!(|data: &[u8]| );
「…但是我的**並不需要&[u8]」,您說-很容易,您可以使用以下**將其轉換為&str。
if let ok(utf8) = std::str::from_utf8(data)
現在,您可以從此處向專案提交問題,也可以自己修復錯誤。 我通常使用以下格式提交我發現的崩潰( 此處為示例 ):
found using `cargo-fuzz`.
from:
rust如何進槍戰服 rust遊戲
rust遊戲介紹 想要來挑戰末日生存遊戲的玩家,一定要來嘗試挑戰一番這款遊戲。面對殭屍的腐蝕,拿起自己的 進行戰鬥吧!rust遊戲特色 1 玩家們可以在這個非常高畫質的世界中生存下去,雖然這看起來比較困難。2 超多有趣的東西可以進行合成,你要克服飢餓和寒冷,還要與各種野獸作鬥爭。rust遊戲玩法 遊...
Rust 程式和記憶體
乙個程式執行,主流作業系統 windows linux 將執行程式作為程序載入到記憶體中,和其他程序一起共享cpu和記憶體 作業系統為每個程序分配各自虛擬位址空間,每個程序間的虛擬位址空間不同,每個程序具有各自的記憶體檢視。如下為乙個程序記憶體布局的基本展示 1.文字段 包含已編譯的二進位制檔案中執...
Rust 第乙個 Rust 程式
根據傳統,首先編寫乙個 hello world 程式。參考這裡的 新增乙個 main.rs 檔案,並且在檔案中寫入如下的內容 fn main rust 是一種編譯型語言,需要經過編譯後執行,使用rustc進行編譯。編譯完成後,在相同的目錄下,可以找到乙個 main.exe 檔案 c users ji...