Kod yerleştirme Windows'ta yaygındır. Uygulamalar, davranışını değiştirmek için kendi kodlarının parçalarını başka bir çalışan işleme "enjekte eder". Bu teknik iyilik veya kötülük için kullanılabilir, ancak her iki durumda da sorunlara neden olabilir.
Kod enjeksiyonu genellikle DLL enjeksiyonu olarak da adlandırılır çünkü enjekte edilen kod genellikle bir DLL (dinamik bağlantı kitaplığı) dosyası . Ancak uygulamalar, bir işleme DLL olmayan başka kod türlerini de enjekte edebilir.
Hangi Kod Enjeksiyonu Kullanılır?
Kod yerleştirme, Windows'ta her türlü hile ve işlevi gerçekleştirmek için kullanılır. Meşru programlar onu kullanırken, aynı zamanda kötü amaçlı yazılımlar tarafından da kullanılır. Örneğin:
- Antivirüs programları genellikle 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, tarama işleminizi daha iyi izlemek, parolalar 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 temasını oluşturan WindowBlinds, pencerelerin nasıl çizileceğini değiştir .
- Stardock's Fences, kodu enjekte ediyor Windows masaüstünün çalışma şeklini değiştirin .
- AutoHotkey, size komut dosyaları oluşturun ve bunlara sistem genelinde kısayol tuşları atayın , bunu başarmak için kod enjekte eder.
- Grafik sürücüsü, grafiklerle ilgili çeşitli görevleri gerçekleştirmek için NVIDIA’nın DLL'leri enjekte etmesi gibidir.
- Bazı programlar, bir uygulamaya ek menü seçenekleri eklemek için DLL'leri enjekte eder.
- PC oyunu hile araçları, davranışlarını değiştirmek ve diğer oyunculara göre haksız bir avantaj elde etmek için genellikle oyunlara kod enjekte eder.
Kod Enjeksiyonu Kötü mü?
Bu teknik, Windows'ta çok çeşitli uygulamalar tarafından sürekli olarak kullanılmaktadır. Çeşitli görevleri başarmanın tek gerçek yolu budur. Apple’ın iOS veya Google'ın Android’i gibi modern bir mobil platformla karşılaştırıldığında, Windows masaüstü çok güçlüdür çünkü geliştiricilere bu tür bir esneklik sunarsa.
Elbette, tüm bu güçle birlikte bazı tehlikeler de gelir. Kod yerleştirme, uygulamalarda sorunlara ve hatalara neden olabilir. Google, Chrome tarayıcılarına kod enjekte edilen Windows kullanıcılarının Chrome çökmeleri yaşama olasılığının% 15 daha yüksek olduğunu söylüyor, bu yüzden Google bunu engellemek için çalışıyor. Microsoft, kod enjeksiyonunun kötü amaçlı uygulamalar tarafından tarayıcı ayarlarına müdahale etmek için kullanılabileceğini ve bunun Edge'de zaten engellenmiş olmasının nedenlerinden biri olduğunu belirtiyor.
Microsoft etkinliği sağlar Talimatlar birçok Outlook çökmesine neden olduklarından, üçüncü taraf DLL'lerin Microsoft Outlook'ta yüklenip yüklenmediğini kontrol etmek için.
Bir Microsoft çalışanının dediği gibi geliştirici blogu 2004'ten itibaren:
DLL enjeksiyonu asla güvenli değildir. Kodu, sürecin yazarı tarafından asla tasarlanmamış, oluşturulmamış veya test edilmemiş bir işleme sokmaktan ve bu kodu çalıştırmak için bir iş parçacığını birlikte kullanmaktan veya oluşturmaktan bahsediyorsunuz. Daha önce olmayan zamanlama, senkronizasyon veya kaynak sorunları yaratma veya var olan sorunları şiddetlendirme riskiyle karşı karşıya kalırsınız.
Başka bir deyişle, kod enjeksiyonu kirli bir hack'tir. İdeal bir dünyada, potansiyel istikrarsızlığa neden olmayan, bunu başarmanın daha güvenli bir yolu olurdu. Bununla birlikte, kod enjeksiyonu bugün Windows uygulama platformunun normal bir parçasıdır. Windows PC'nizde arka planda sürekli olarak oluyor. Buna gerekli bir kötülük diyebilirsiniz.
Enjekte Edilen DLL'ler Nasıl Kontrol Edilir
Microsoft’un güçlü yazılımıyla sisteminize kod yerleştirmeyi Süreç araştırmacısı uygulama. Temelde, Görev Yöneticisinin ek özelliklerle dolu 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'ler öğesine 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, Windows'un bir parçası oldukları için burada "Microsoft Corporation" tarafından yapılan çeşitli DLL'leri görmek normaldir. Ayrıca söz konusu süreçle aynı şirket tarafından oluşturulmuş DLL'leri görmek de normaldir: "Google Inc." Chrome durumunda aşağıdaki ekran görüntüsünde.
Burada "AVAST Software" tarafından yapılmış birkaç DLL'yi de görebiliriz. Bu, sistemimizdeki Avast kötü amaçlı yazılımdan koruma yazılımının "Avast Komut Dosyası Engelleme filtre kitaplığı" gibi kodu Chrome'a enjekte ettiğini gösterir.
Sorun yaratmasını önlemek için kod enjekte eden programı kaldırmanın dışında, sisteminize kod enjeksiyonu bulursanız yapabileceğiniz pek bir şey yoktur. Ö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 yerleştirme, diskinizdeki temel uygulamayı değiştirmez. Bunun yerine, o uygulamanın çalışmasını bekler ve nasıl çalıştığını değiştirmek için o çalışan işleme ek kod enjekte eder.
Windows, çeşitli uygulama programlama arabirimleri (API'ler) kod enjeksiyonu için kullanılabilir. Bir süreç kendisini bir hedef işleme ekleyebilir, bellek ayırabilir, bu belleğe bir DLL veya başka bir kod yazabilir ve ardından hedef işleme kodu yürütmesi talimatını verebilir. Windows, bilgisayarınızdaki işlemlerin bu şekilde birbirine karışmasını engellemez.
Daha fazla teknik bilgi için, açıklayan bu blog gönderisine göz atın geliştiriciler DLL'leri nasıl enjekte edebilir ve bu bakış Windows'ta diğer kod enjeksiyonu türleri .
Bazı durumlarda, birisi diskteki temel kodu değiştirebilir - örneğin, bir PC oyunuyla birlikte gelen bir DLL dosyasını hile veya korsanlığı etkinleştirmek için değiştirilmiş bir DLL dosyasıyla değiştirerek. Bu teknik olarak "kod yerleştirme" değildir. Kod, çalışan bir işleme enjekte edilmiyor, ancak program bunun yerine aynı ada sahip farklı bir DLL yüklemesi için kandırılıyor.
Resim Kredisi: Lukatme /Shutterstock.com.