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