自己移転とは
自己移転は、ごく少数のコンピュータープログラムが所有する財産です。 これらのプログラムは、実行中にメモリ内の場所を変更できます。 ほとんどのプログラムは、独自の基本プログラミングをほとんどまたはまったく制御できません。 代わりに、それは高次プログラムによって処理されます。 これらのシステムは、プログラミングを移動するか、自身のコピーを作成することにより、場所を変更できます。 コピーが作成されると、通常、実行場所は新しいプログラムに変更され、古いコードは休止状態のままになります。
ほとんどの場合、実行中のコンピュータープログラムは同時に2つの領域に配置されます。 ハードドライブやその他のストレージユニットなどのコンピューターの物理ストレージと揮発性メモリにあります。 アクセス時間を短縮し、動作を高速化するために、プログラムは実行時に揮発性メモリに移動されます。 これらの両方の場所での位置は、通常、コンピューターのオペレーティングシステムによって決まります。
これらのプログラムの場所はアドレスと呼ばれます。 これらのアドレスは、必要なときにプログラムをすばやく見つけるために、システムおよび他のプログラムによって使用されます。 プログラムがストレージで分割されている場合、すべてが一緒になっている場合よりも動作が遅くなります。 したがって、ほとんどのシステムは、シーケンシャルアドレスを介して大きなプログラムを保存しようとします。 繰り返しますが、これを行う選択は通常、オペレーティングシステムに依存し、プログラムはそれを直接制御しません。
プログラムが自己再配置を使用すると、通常のプログラムよりもこれらのプロセスを大幅に制御できます。 実行するアドレスを制御する機能があります。 使用中のプログラムは、プログラム全体を同じ場所の場所から同じコンピューターのメモリ内の別の場所に移動できます。 2つのアドレスのうち1つしか変更できないプログラムもあれば、両方を変更できるプログラムもあります。
自己移転はそれ自体では珍しいプロセスですが、問題はありません。 真の危険は、悪意を持って自己移転が使用される場合に発生します。 プログラムがそれ自体を制御している場合、プログラムが予期しないことを多数実行する可能性があります。 コンピュータのメモリを詰まらせるために、多数の物理コピーまたは揮発性コピーを作成できます。 これにより再起動が発生し、ブート攻撃の前兆になる可能性があります。
さらに、プログラムは自身のバックアップを作成して、その削除を防ぐことができます。 自己再配置のあるプログラムを実行してからそれ自体をコピーする場合、元のプログラムは使用されていなくても存在します。 プログラムが悪意のあるものであり、システムがそれを削除しようとする場合、アクティブなプログラムは、削除される前に元のコードを再度有効にすることができます。