2008年11月23日日曜日

調査していたら、fuzzingねたに舞い戻った。

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
haskellにはQuickCheckとかあるようだ。pythonでも調査したけど、peckcheckとかantiparseとかだが、どっちもツリーが公開されていないし、メンテもされてない。みんなどうしているのだろう。

検索しているときに、バカはバカにならない - 書評 - ファジング:ブルートフォースによる脆弱性発見手法を見かけた。この本は買った。へんなコメントがついているが、物書きが出版社にけちつけられないのわからないかなぁ?すくなくとも気安くできることじゃない。その辺は、新聞とかTVが広告主に強い態度に出られないのと同じ。ひろゆきもいっていた。「自分でたしかめろ」ってね。べつに2chのみに当てはまることじゃない。世の中、ただのものは無い。

fuzzingするのはよいのだが、膨大な量のテスト結果とテストデータを生成した場合、切り分けが面倒。git bisecみたいなことのdata versionを実装中。問題を起こす入力は1つの文字じゃく複数の文字からなる文字列なんで、そのままbisecは使えない。文字列のbeginとendを見つけてあげればいい。begin/endはどちらも1点なので、大丈夫なはずだ。例外ケースで2回出てくる場合とかあるだろうが、それはそのときだろう。あとは文字列をfileで与えてあげて、seekするようにする。でないとfileがそこそこでかいときに気楽に文字列をcopyされたくないので。んで、切り出したデータを使ってunittestを追記してくれると幸せだね。

fuzzingネタはtonicに入れよう。binarianがらみは外に出す。lineparserはtonicのライブラリに。同じようなもの書きすぎ。その前にgitで管理したときにtagと連携をとりやすくするためにgitageをなんとかしてbootstrapしないとね。

0 件のコメント: