Kendi Kendine Taşınma Nedir?

Kendi kendine yer değiştirme, çok az sayıda bilgisayar programının sahip olduğu özelliktir. Bu programlar yürütülürken konumlarını bellekte değiştirebilir. Çoğu programın kendi temel programlaması üzerinde kontrolü yoktur veya çok azdır; bunun yerine, yüksek dereceli programlar tarafından gerçekleştirilir. Bu sistemler, programlarını taşıyarak veya kendilerinin bir kopyasını oluşturarak konumlarını değiştirebilir. Bir kopya yapıldığında, yürütme konumu tipik olarak yeni programa değişir ve eski kod uykuda kalır.

Çoğu durumda, bir yürütme bilgisayar programı aynı anda iki alana yerleştirilir. Bilgisayarın fiziksel deposunda, bir sabit sürücü veya başka bir depolama birimi gibi ve geçici bellekte bulunur. Program, erişim süresini hızlandırmak ve daha hızlı çalışmasını sağlamak için yürütme sırasında geçici belleğe taşınır. Her iki konumdaki konumu da genellikle bilgisayarın işletim sistemi tarafından belirlenir.

Bu programların yerleri adres olarak adlandırılır. Bu adresler, gerektiğinde bir programı hızlıca bulmak için sistem ve diğer programlar tarafından kullanılır. Bir program depoda bozulursa, bir araya geldiğinden daha yavaş çalışacaktır; bu nedenle, çoğu sistem ardışık adreslere göre daha büyük programları depolamaya çalışır. Bir kez daha, bunu yapma seçimi tipik olarak işletim sistemine düşer ve programın üzerinde doğrudan bir kontrolü yoktur.

Bir program kendi kendine yer değiştirmeyi kullandığında, bu işlemler üzerinde tipik programlardan çok daha fazla denetime sahiptir. Çalıştığı adresleri kontrol etme yeteneğine sahiptir. Program kullanımdayken, toplam programlamasını bulunduğu konumdan aynı bilgisayarın hafızasındaki başka bir yere taşıyabilir. Bazı programlar iki adresden yalnızca birini değiştirebilir, bazıları ise ikisini de değiştirebilir.

Kendi kendine yer değiştirme, nadir görülen, ancak sorunlu olmayan bir süreçtir. Gerçek tehlike, kendi kendine yer değiştirme, kötü niyetli niyetle birlikte kullanıldığında ortaya çıkar. Bir programın kendisi üzerinde kontrol sahibi olduğunda çok fazla beklenmedik şeyler yapması mümkündür. Bilgisayarın belleğini tıkamak için çok sayıda fiziksel veya geçici kopya oluşturabilir. Bu, yeniden başlatmaya neden olabilir ve önyükleme saldırısının öncüsü olabilir.

Ek olarak, program kaldırılmasını önlemek için kendi yedeğini alabilir. Eğer kendi yerini değiştiren bir program yürütülür ve sonra kendini kopyalarsa, orijinal program kullanılmadığında bile var olur. Program kötü amaçlıysa ve sistem onu ​​kaldırmaya çalışırsa, etkin program kaldırılmadan önce orijinal kodu yeniden etkinleştirebilir.