Common Binary Exploitation Protections & Bypasses
コアファイルの有効化
コアファイルは、プロセスがクラッシュしたときにオペレーティングシステムによって生成されるファイルの一種です。これらのファイルは、クラッシュしたプロセスのメモリイメージ、レジスタ、プログラムカウンタの状態など、終了時のプロセスの詳細をキャプチャします。このスナップショットは、デバッグやクラッシュの原因を理解するために非常に貴重です。
コアダンプの生成を有効にする
デフォルトでは、多くのシステムはコアファイルのサイズを0に制限しています(つまり、コアファイルを生成しません)が、ディスクスペースを節約するためです。コアファイルの生成を有効にするには、**ulimit
**コマンド(bashや類似のシェルで)を使用するか、システム全体の設定を構成できます。
ulimitを使用する:
ulimit -c unlimited
コマンドは、現在のシェルセッションが無制限のサイズのコアファイルを作成できるようにします。これはデバッグセッションに便利ですが、再起動や新しいセッションで永続的ではありません。
永続的な構成:より永続的な解決策として、
/etc/security/limits.conf
ファイルを編集して、* soft core unlimited
のような行を追加することができます。これにより、すべてのユーザーがセッションで ulimit を手動で設定する必要なく、無制限のサイズのコアファイルを生成できます。
GDBを使用したコアファイルの解析
コアファイルを解析するには、GDB(GNUデバッガー)のようなデバッグツールを使用できます。コアダンプを生成した実行可能ファイルがあり、コアファイルの名前がcore_file
であると仮定すると、次のように解析を開始できます:
このコマンドは、実行可能ファイルとコアファイルをGDBに読み込み、クラッシュ発生時のプログラムの状態を調査することができます。GDBコマンドを使用してスタックを調査し、変数を調べ、クラッシュの原因を理解することができます。
Last updated