Anasayfa » nasıl » Windows'ta Kod Enjeksiyonu Nedir?

    Windows'ta Kod Enjeksiyonu Nedir?

    Kod enjeksiyonu, Windows'ta yaygındır. Uygulamalar davranışlarını değiştirmek için kendi kodlarındaki parçaları başka bir çalışan sürece “enjekte eder”. Bu teknik, iyilik veya kötülük için kullanılabilir, ancak her iki şekilde de sorunlara neden olabilir..

    Kod enjeksiyonu ayrıca genel olarak DLL enjeksiyonu olarak da adlandırılır, çünkü enjekte edilen kod genellikle bir DLL (dinamik bağlantı kitaplığı) dosyası biçimindedir. Ancak, uygulamalar bir işleme DLL olmayan diğer kod türlerini de enjekte edebilir.

    Kod Enjeksiyonu Ne İçin Kullanılır?

    Kod ekleme, Windows'ta her türlü hile ve işlevselliği gerçekleştirmek için kullanılır. Meşru programlar onu kullanırken, kötü amaçlı yazılımlar tarafından da kullanılır. Örneğin:

    • Antivirüs programları sıklıkla web tarayıcılarına kod enjekte eder. Örneğin ağ trafiğini izlemek ve tehlikeli web içeriğini engellemek için kullanabilirler.
    • Kötü amaçlı programlar, göz atma işleminizi daha iyi izlemek, şifreler ve kredi kartı numaraları gibi korunan bilgileri çalmak ve tarayıcı ayarlarınızı değiştirmek için web tarayıcınıza kod ekleyebilir.
    • Stardock'un masaüstünüze tema oluşturan WindowBlinds, pencerelerin çizilme şeklini değiştirmek için kod enjekte ediyor.
    • Stardock'ın Çitleri, Windows masaüstünün çalışma şeklini değiştirmek için kod enjekte ediyor.
    • Komut dosyaları oluşturmanıza ve onlara sistem genelinde kısayol tuşları atamanıza izin veren AutoHotkey, bunu gerçekleştirmek için kod enjekte eder.
    • Grafik sürücüsü, NVIDIA'nınki gibi, çeşitli grafiklerle ilgili görevleri gerçekleştirmek için DLL'leri enjekte ediyor.
    • Bazı programlar bir uygulamaya ek menü seçenekleri eklemek için DLL'leri enjekte eder.
    • PC oyun hile araçları genellikle davranışlarını değiştirmek ve diğer oyunculara göre haksız bir avantaj kazanmak için oyunlara kod enjekte eder.

    Kod Enjeksiyonu Kötü mü?

    Bu teknik, Windows'ta çok çeşitli uygulamalar tarafından sürekli olarak kullanılır. Çeşitli görevleri başarmanın tek gerçek yolu bu. Apple'ın iOS'u veya Google'ın Android'i gibi modern bir mobil platformla karşılaştırıldığında, Windows masaüstü bilgisayarı çok güçlü çünkü geliştiricilere bu tür bir esneklik sunarsa.

    Tabii ki, tüm bu güç ile bazı tehlikeler geliyor. Kod enjeksiyonu uygulamalarda sorunlara ve hatalara neden olabilir. Google, Chrome tarayıcılarına kod enjekte edilmiş Windows kullanıcılarının Chrome çökmeleri yaşama ihtimalinin% 15 daha fazla olduğunu ve bu nedenle Google'ın bunu engellemeye çalıştığını söylüyor. Microsoft, kod enjeksiyonunun kötü amaçlı uygulamalar tarafından tarayıcı ayarlarına müdahale etmek için kullanılabileceğini ve bu nedenle Edge’te zaten engellenmiş olmasının bir nedeni olduğunu belirtti..

    Microsoft, çok sayıda Outlook çökmesine neden olduğundan üçüncü taraf DLL dosyalarının Microsoft Outlook'ta yüklü olup olmadığını kontrol etme talimatları da sağlar..

    Bir Microsoft çalışanının 2004’teki bir geliştirici bloguna koyduğu gibi:

    DLL enjeksiyonu asla güvenli değildir. Kodun, işlemin yazarı tarafından hiç tasarlanmamış, oluşturulmuş veya test edilmemiş bir işleme dönüştürülmesinden ve bu kodu çalıştırmak için bir iş parçacığının seçilmesinden veya oluşturulmasından bahsediyorsunuz. Önceden bulunmayan zamanlama, senkronizasyon veya kaynak sorunları oluşturma veya orada olan sorunları şiddetlendirme riskiyle karşı karşıya kalırsınız..

    Başka bir deyişle, kod enjeksiyonu kirli bir kesmek gibidir. İdeal bir dünyada, bunu gerçekleştirmek için potansiyel dengesizliğe neden olmayan daha güvenli bir yol olacaktır. Ancak, kod ekleme, bugün Windows uygulama platformunun normal bir parçasıdır. Windows PC'nizde arka planda sürekli oluyor. Buna gerekli bir kötülük diyebilirsin.

    Enjekte Edilen DLL'ler Nasıl Denetlenir

    Microsoft'un güçlü Process Explorer uygulamasıyla sisteminizde kod enjeksiyonunu kontrol edebilirsiniz. Temel olarak, ek özelliklerle dolu Görev Yöneticisinin gelişmiş bir sürümüdür.

    Bunu yapmak istiyorsanız, İşlem Gezgini'ni indirin ve çalıştırın. Görünüm> Alt Bölme Görünümü> DLL öğelerini tıklayın veya Ctrl + D tuşlarına basın.

    Üst bölmede bir işlem seçin ve yüklenen DLL'leri görmek için alt bölmeye bakın. “Şirket Adı” sütunu bu listeyi filtrelemek için kullanışlı bir yol sağlar.

    Örneğin, burada “Microsoft Corporation” tarafından üretilen ve çeşitli Windows sürümleri olan DLL'leri görmek normaldir. Aynı şirket tarafından yapılan ve aşağıdaki ekran görüntüsündeki Chrome durumunda “Google Inc.” sorusundaki işlemle ilgili DLL'leri görmek de normaldir..

    Burada “AVAST Software” tarafından yapılan birkaç DLL dosyasını da bulabiliriz. Bu, sistemimizdeki Avast kötü amaçlı yazılım yazılımının “Avast Komut Dosyası Engelleme filtre kütüphanesi” gibi bir kodu Chrome'a ​​enjekte ettiğini gösteriyor.

    Sisteminizde kod enjeksiyonunu bulursanız, sorun çıkarmasını önlemek için program enjekte etme kodunu kaldırmaktan başka bir şey yapamazsınız. Örneğin, Chrome düzenli olarak kilitleniyorsa, Chrome'a ​​kod enjekte eden herhangi bir program olup olmadığını görmek ve Chrome'un işlemlerine müdahale etmelerini önlemek için bunları kaldırmak isteyebilirsiniz.

    Kod Enjeksiyonu Nasıl Çalışır??

    Kod ekleme, diskinizdeki temel uygulamayı değiştirmez. Bunun yerine, o uygulamanın çalışmasını bekler ve çalışma şeklini değiştirmek için bu işlemin içine ek kod ekler..

    Windows, kod enjeksiyonu için kullanılabilecek çeşitli uygulama programlama arabirimlerini (API) içerir. Bir işlem kendisini bir hedef işleme ekleyebilir, bellek ayırabilir, bir DLL veya başka bir kodu bu belleğe yazabilir ve ardından hedef işlemi kodu yürütmesini isteyebilir. Windows, bilgisayarınızdaki işlemlerin bu şekilde birbirine karışmasını engellemez.

    Daha fazla teknik bilgi için, geliştiricilerin DLL'leri nasıl enjekte edebileceğini ve Windows'taki diğer kod enjeksiyon türlerine nasıl baktıklarını açıklayan bu blog gönderisine bakın..

    Bazı durumlarda, birisi diskteki temel kodu değiştirebilir - örneğin, bir PC oyunu ile birlikte gelen bir DLL dosyasını hile veya korsanlığı etkinleştirmek için değiştirilmiş bir kodla değiştirerek. Bu teknik olarak “kod enjeksiyonu” değildir. Kod çalışan bir işleme enjekte edilmez, ancak program aynı adda farklı bir DLL yüklemek için kandırılır.

    Resim Kredisi: Lukatme / Shutterstock.com.