自己書き換え
読み:じこ-かきかえ
外語:self rewrite

 プログラムが、自分自身のプログラムを書き換えてしまうこと。

特徴
 機械語で数バイトを書き換えることで別の機能を持ったサブルーチンを作れる(例えばある部分をNOPにする、INC命令をDEC命令にする、といった例が考えられる)ような時に利用される。
 8ビットマイクロプロセッサーの時代などでは貧困なメモリー容量の中で複雑な仕事をするために時々用いられたが、ソースコードが複雑怪奇になったり、メンテナンス的な問題があった。
 また近年のメモリー保護機能のあるオペレーティングシステムではユーザープログラムがコード領域のメモリーを書き換えることが出来ないため、このような技術を利用することはできない。

再検索