煙突カナリア汚染を記録する方法は?

煙突カナリア汚染を記録する方法は?

フラグGCC -fstack-protectorフラグはスタックカナリアを使用してスタックオーバーフロー保護を可能にします。近年、このフラグをデフォルトで使用することがより顕著になりました。

パッケージが-fstack-protectorにコンパイルされ、プログラムでバッファがオーバーフローすると、次のエラーが発生する可能性があります。

*** buffer overflow detected ***: /xxx/xxx terminated

しかし、これらのエラーメッセージの責任は「誰」にありますか?このメッセージはどこに記録されますか? syslogデーモンはこれらのメッセージを収集しますか?

ベストアンサー1

スタックスマッシングはインストルメンテーションによって行われ、libsspこれの一部ですgcc。それとても頑張ってメッセージは端末に出力され、障害が発生した場合はシステムログにのみ記録されます。したがって、実際には、デーモンログとGUIアプリケーションのログからバッファオーバーフローメッセージを見ることができます。

メッセージを出力したら、libsspアプリケーションの競合を含むさまざまな終了方法を試してください。これは例外出口ロガーの1つでキャプチャできますが、これは保証されません。

おすすめ記事