hacktricks/src/binary-exploitation/common-binary-protections-and-bypasses

コモンバイナリエクスプロイテーションプロテクションとバイパス

{{#include ../../banners/hacktricks-training.md}}

コアファイルの有効化

コアファイルは、プロセスがクラッシュしたときにオペレーティングシステムによって生成されるファイルの一種です。これらのファイルは、プロセスの終了時のメモリイメージをキャプチャし、プロセスのメモリ、レジスタ、およびプログラムカウンタの状態など、他の詳細を含みます。このスナップショットは、デバッグやクラッシュの原因を理解するために非常に価値があります。

コアダンプ生成の有効化

デフォルトでは、多くのシステムはディスクスペースを節約するためにコアファイルのサイズを0に制限していますつまり、コアファイルを生成しません。コアファイルの生成を有効にするには、**ulimit**コマンドbashや類似のシェルでを使用するか、システム全体の設定を構成します。

  • ulimitの使用: コマンドulimit -c unlimitedは、現在のシェルセッションが無制限のサイズのコアファイルを作成できるようにします。これはデバッグセッションに便利ですが、再起動や新しいセッションでは持続しません。
ulimit -c unlimited
  • 永続的な設定: より永続的な解決策として、/etc/security/limits.conf ファイルを編集して * soft core unlimited のような行を追加することができます。これにより、すべてのユーザーがセッション内で手動で ulimit を設定することなく、無制限のサイズのコアファイルを生成できるようになります。
- soft core unlimited

GDBを使用したコアファイルの分析

コアファイルを分析するには、GDBGNUデバッガなどのデバッグツールを使用できます。コアダンプを生成した実行可能ファイルがあり、コアファイルの名前がcore_fileであると仮定すると、分析を開始するには次のようにします:

gdb /path/to/executable /path/to/core_file

このコマンドは、実行可能ファイルとコアファイルをGDBにロードし、クラッシュ時のプログラムの状態を検査できるようにします。GDBコマンドを使用してスタックを探索し、変数を調べ、クラッシュの原因を理解することができます。

{{#include ../../banners/hacktricks-training.md}}