Bilgisayar üzerinde çalıştırılan programlar, hafızada yer tutar ve bunlar sadece “Görev Yöneticisi” aracı ile görülebilir. Bilgisayar kullanımı sırasında, herhangi bir şüphe tespiti gerçekleştirilir ise “Görev Yöneticisi” aracından detaylı bilgilere sahip olunabilir. Çalışan işlemler bu kısımda incelenerek, sorunu meydana getiren yazılım tespit edilmeye çalışılır. Buna istinaden şüpheli görülen bir dosya diskten silinmeye çalışılır iken gerçekleştirilmek istenilen olay işletim sistemi tarafından engellenir.

Hafıza Enjeksiyonunda, bu gibi yöntemlerle tahmin yürütmek oldukça zordur ve olayın işleyişi diğer süreçten apayrı bir şekilde gerçekleşmektedir. Kulanıcı, bir uygulama çalıştırdığında aslında taşıyıcı bir programı da beraberinde aktif etmiş olur. Truva Atı olarak da adlandırıla bilen taşıyıcı programların bir farkı, Truva atının içinde bir Truva atının daha aktif olmasıdır. Program taşıyıcı görevini üstlenirken “Çalıştırılabilir Kod (shellcode)” denilen materyalleri de tutar. İşlemin gerçekleşmesi şu şekilde olur; taşıyıcı program aktif edildiğinde, zafiyetli bir işletim sistemi dosyası üzerinden kendisini hafızaya dahil eder. Bu dahil etme olayı sırasında gözle görülebilir her hangi bir işlem gerçekleşmez.

Bless hafıza enjeksiyon aracı ise bu tür taşıyıcı programlar oluşturmaya yarayan bir araçtır. Bless, enjekte edilmek istenen yazılımın çalıştırılabilir kodunu (shellcode) bir text dosyası şeklinde dışarıya çıktı olarak verir.

Çıktıyı almak için görselde görüldüğü gibi “sürükle bırak yönetimi” kullanılarak yapılır. Çalıştırılabilir kod(shellcode) oluşturulduktan sonra bu kod, karşı sunucuların FTP’sine yüklenir. Alternatif olarak GitHub, GitHub Gist ve GitLab gibi servisler kullanılabilir.

Bu çalışmada, çalıştırılabilir kodun (shellcode) yüklenmesi için GitHub kullanıldı. Bu işlem sonrasında, “Raw” seçeneğine tıklanarak adres çubuğundaki web adresi kopyalanır ve Bless yazılımında belirtilen alana kopyalanan adres girilir. Ardından “Generate Payload” butonuna tıklanarak taşıyıcı program oluşturulur.

Taşıyıcı program oluşturulduktan sonraki işlemler sırayla gerçekleşir; taşıyıcı program açıldığında program, işletim sistemindeki zafiyetli sistem dosyaları üzerinden kendini hafızaya dahil eder. Taşıyıcı program silindiğinde işletim sistemi kesinlikle engelleme yapmaz. Çünkü taşıyıcı tarafından artık “çalıştırabilir kod (shellcode)” hafızaya dahil edilmiştir ve taşıyıcının görevi bitmiştir. Kullanıcı programı “Görev Yöneticisi”nde görüntüleyemez. Bunun sebebi, program zafiyetli bir programın altında çalışmaya başlamıştır.