Windows’ta Kod Enjeksiyonu Nedir?

/ 5 Şubat 2019 / 163 / yorumsuz
Windows’ta Kod Enjeksiyonu Nedir?

Kod Enjeksiyonu Nedir?

Kod enjeksiyonu, 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 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ı 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, taramanızı 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 eder.

* Stardock’ın Çitleri , Windows masaüstünün çalışma şeklini değiştirmek için kod enjekte eder.

* Komut dosyaları oluşturmanıza ve bunlara 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ü bilgisayarları çok güçlü çünkü geliştiricilere bu tür bir esneklik sunuyorsa.

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 söylüyor, bu yüzden Google bunu engellemeye çalışıyor. Microsoft, kod enjeksiyonunun kötü niyetli uygulamalar tarafından tarayıcı ayarlarına müdahale etmek için kullanılabileceğini ve bu nedenle Edge’te zaten engellenmiş olduğunu gösteriyor.

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(süreç araştırmacısı) 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. Ayrıca, söz konusu işlemle aynı şirket tarafından yapılan DLL’leri görmek de normaldir – aşağıdaki ekran görüntüsünde Chrome durumunda “Google Inc.”.

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

Eğer sisteminizde kod enjeksiyonunu bulursanız, sorun yaratmaması için program enjekte etme kodunu kaldırmanın dışında 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 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şleme 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 edebildiklerini ve Windows’taki diğer kod enjeksiyon türlerine nasıl baktıklarını açıklayan blog gönderilerini inceleyebilirsiniz.

Bazı durumlarda, birisi diskteki temel kodu değiştirebilir – örneğin, aldatma veya korsanlığı sağlamak için PC oyunuyla birlikte gelen bir DLL dosyasını 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ı adla farklı bir DLL yüklemek için kandırılır.


Kaynak : Eniyiandroid


_________________________________________________________________________________________________

UYARI: Web sitemiz üzerinde bulunan tüm yazılar, görseller ve tüm materyaller Eniyiandroid.com 'a aittir. Kaynak belirtilmeden site içeriği kopyalanamaz, alıntı yapılamaz, başka yerde yayınlanamaz.

Konu Hakkında Androidseverlerden daha fazla bilgi almak için görüşlerinizi yorum yaparak paylaşabilirsiniz.


Benzer Konular