• ベストアンサー

バッファオーバーランについて

C言語のプログラミングファイルを読み込んで、バッファオーバーランの危険性を検出するプログラムを作りたいのですが、どうしたら良いか分かりません。 どなたかご教授お願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.2

gccにmudflapオプションつけてコンパイルすると、とりあえず検出できます。 あくまでも自分でそういうプログラムを作りたいのであれば、gccはオープンソースですから いろいろ参考に自分で作ればいいと思います。 動的解析でもよければValgrindのソースとかも参考になると思います。 ただし、ありふれたプログラマ程度のレベルでは作成は難しいのではないかと思いますが…。 腕に覚えがあるのであれば、ぜひ挑戦してみてください。 mudflapオプションについてはここが詳しいです。 http://d.hatena.ne.jp/hshinoda/20090330/1238398164 もし学校の宿題とかでしたら、scanfとかstrcpyなどのバッファオーバーランを 引き起こす恐れのある関数を検出するだけで先生はOKくれそうな気がします。

tnk48
質問者

お礼

回答ありがとうございます

その他の回答 (3)

  • yama1718
  • ベストアンサー率41% (670/1618)
回答No.4

参照URLのIPAのサイトにバッファオーバーランの原因や解説、そのサンプルのソースリストもありますので、ここが参考になるでしょう。 でも理解するにはCだけでなく、CPUやレジスタなど機械語(アセンブラ)の知識も必要だと思います。

参考URL:
http://www.ipa.go.jp/security/awareness/vendor/programmingv1/b06_01.html
tnk48
質問者

お礼

回答ありがとうございます

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

C言語の仕様の把握と コンパイラを作れるくらいの知識は身につけた方がよいかと。

tnk48
質問者

お礼

回答ありがとうございます

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

c言語のインタープリタをでも作って、仮想メモリ空間でエミュレートしてみれば?

tnk48
質問者

お礼

回答ありがとうございます

関連するQ&A