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