スリリングな冒険:自己修正Cプログラムの作成
2025-05-25
この記事では、実行時に自身のコードを変更できるCプログラムを作成する方法を詳しく説明します。著者はまず、プログラムコードがメモリにどのように格納されるか、そして`mprotect()`関数を使用してコードセグメントの権限を変更し、書き込み可能にする方法について説明します。次に、`addl`命令の即値を変更することで、プログラムの実行結果を変える方法を示します。最後に、`memcpy()`を使用してシェルコードをプログラムのコードセグメントにコピーすることで、実行時にシェルコマンドを実行することに成功します。このプロセス全体は技術的に困難であり、x86_64アセンブリ言語の深い理解が必要です。
開発
自己修正プログラム