Kod Enjeksiyonu Windows'ta çok yaygın bir tekniktir. Uygulamalar, çalışan başka bir işleme, o sürecin davranışını değiştirmek için kendi kodlarını "enjekte edeceklerdir". Bu teknik iyi veya kötü amaçlarla kullanılabilir ancak her iki durumda da istenmeyen sorunlara neden olabilir. Antivirüs yazılımı gibi antivirüs yazılımı , davranışını değiştirmek için Chrome'a kod enjekte eder . Bu, tarayıcı sorunlarının daha sık ortaya çıkmasına neden olur.
Kod enjeksiyonuna sıklıkla DLL enjeksiyonu da denir çünkü diğer işlemlere enjekte edilen kod parçaları genellikle DLL dosyaları (Dinamik Bağlantı Kitaplığı ) biçimindedir . Ancak uygulamalar bazen DLL dosyası biçiminde olmayan diğer kod türlerini de başka bir işleme enjekte edebilir.

Kod Enjeksiyonu ne için kullanılır?
Code Injection, Windows'taki tüm hileleri ve işlevleri gerçekleştirmek için kullanılır. Code Injection hem yasal yazılımlar hem de kötü amaçlı yazılımlar tarafından kullanılır, örneğin:
- Anti-virüs programları genellikle web tarayıcılarına komut dosyaları ekler ve bunları ağ trafiğini izlemek ve tehlikeli web içeriğini engellemek için kullanır.
- Kötü amaçlı programlar, tarama geçmişinizi ve bilgilerinizi takip etmek için web tarayıcınıza kod ekleyebilir, ardından tarayıcınızda yüklü olan şifreler, kredi kartı numaraları ve değişiklikler gibi korunan bilgileri çalabilir.
- Stardock'un WindowBlinds'i , pencerelerin açılma biçimini değiştirmek için kod enjekte eder.
- Stardock's Fences, Windows'un çalışma şeklini değiştirmek için kod enjekte ediyor.
- AutoHotkey, komut dosyaları oluşturmanıza ve sistem genelinde Kısayol Tuşları atamanıza olanak tanıyan kodlar ekler.
- NVIDIA'nınki gibi grafik sürücüleri, grafikle ilgili çeşitli görevleri gerçekleştirmek için DLL dosyaları gönderir.
- Bazı programlar, uygulamaya ek seçenekler eklemek için DLL dosyalarını enjekte eder.
- PC oyunu hileleri genellikle oyunların özelliklerini değiştirmek için kod enjekte eder ve böylece hile yapanlara diğer oyunculara karşı haksız bir avantaj sağlar.
Kod Enjeksiyonu kötü mü?
Bu teknik, Windows'taki birçok farklı uygulama tarafından sürekli olarak kullanılmaktadır. Çeşitli görevleri gerçekleştirmek için gerçekten benzersizdir. Apple'ın iOS'u veya Google'ın Android'i gibi modern bir mobil işletim sistemi platformuyla karşılaştırıldığında Windows çok daha güçlüdür çünkü geliştiricilere bu esnekliği sunar.
Elbette bazı tehlikeler de mevcut. Kod enjeksiyonu uygulamada sorunlara ve hatalara neden olabilir. Google, Chrome'a kod enjekte eden yazılım içeren Windows kullanıcılarının Chrome'da hatalarla karşılaşma olasılığının normalden %15 daha fazla olduğunu ve bu nedenle Google'ın Kod Eklemeyi önlemek için çalıştığını söylüyor.
Microsoft, kullanıcıların üçüncü taraf DLL dosyalarının Microsoft Outlook'a yüklenip yüklenmediğini kontrol edebilmeleri için talimatlar bile sağlar; çünkü bu dosyalar Outlook'ta birçok soruna neden olur.
Bir Microsoft çalışanı bu sorunu 2004 yılında bir blogda paylaşmıştı:
Diğer uygulamalara enjekte edilen DLL dosyaları hiçbir zaman güvenli değildir çünkü kod, işlemin yazarı tarafından tasarlanmamış, oluşturulmamış veya test edilmemiş bir işleme yasa dışı olarak girer. Daha önce hiç karşılaşmadığınız senkronizasyon veya kaynak sorunlarıyla karşılaşma riskiyle karşı karşıya kalırsınız, aksi takdirde bu dosyalar uygulamadaki mevcut sorunları daha da kötüleştirir.
Başka bir deyişle Code Injection yasa dışı bir hack'tir. Ancak Kod Enjeksiyonu, bugün Windows uygulama platformunda bulunan yaygın bir tekniktir. Bilgisayarınızdaki Windows'ta arka planda sürekli olarak kullanılır.
Uygulamaya enjekte edilen DLL dosyaları nasıl kontrol edilir.
Sisteminizde Code Injection'ı Microsoft'un Process Explorer uygulamasını kullanarak kontrol edebilirsiniz. Temel olarak bu uygulama, Görev Yöneticisinin gerekli ek özelliklerle geliştirilmiş gelişmiş bir sürümüdür.
Öncelikle Process Explorer'ı indirip çalıştırıyorsunuz. Ardından 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.
![Windows'ta Kod Enjeksiyonu Nedir? Windows'ta Kod Enjeksiyonu Nedir?]()
Üst bölmede bir işlem seçin ve hangi DLL dosyalarının yüklendiğini görmek için aşağıdaki bölmeye bakın. Şirket Adı sütunu size bu listeyi filtrelemek için kullanışlı bir yol sağlayacaktır.
Örneğin: Microsoft Corporation tarafından oluşturulan bir grup DLL dosyasını gördüğünüzde bu tamamen normaldir çünkü bunlar Windows'un bir parçasıdır. Uygulamanın ana şirketlerinden gelen DLL dosyalarının o uygulamada bulunması tamamen normaldir (örn. aşağıdaki ekran görüntüsünde "Google Inc").
Aşağıdaki görsele göre bu listede “AVAST Software” tarafından oluşturulan birkaç DLL dosyasını da görebiliyoruz. Bu, sistemdeki Avast casus yazılım önleme uygulamasının Chrome'a "Avast Komut Dosyası Engelleme filtre kitaplığı" gibi kodlar enjekte ettiğini gösterir.
![Windows'ta Kod Enjeksiyonu Nedir? Windows'ta Kod Enjeksiyonu Nedir?]()
Sisteminizde kod enjeksiyonu bulsanız bile, daha fazla soruna neden olmasını önlemek için kodu enjekte eden programı kaldırmaktan başka yapabileceğiniz pek bir şey yoktur. Örneğin, Chrome'unuz sık sık kilitleniyorsa, herhangi bir programın Chrome'a kod enjekte edip etmediğini kontrol edebilir ve eğer öyleyse, ilerlemenize daha fazla müdahale etmelerini önlemek için bu programları kaldırabilirsiniz.
Kod Enjeksiyonu nasıl çalışır?
Kod yerleştirme, sürücünüzde depolanan temel uygulamaları etkilemez. Bunun yerine, uygulama başlatılana kadar bekler ve ardından sürecin çalışma şeklini değiştirmek için çalışan sürece kod enjekte eder.
Hepimizin bildiği gibi Windows, kod enjeksiyonu için kullanılabilecek bir dizi uygulama programlama arabirimi (API) içerir. Bir işlem kendisini bir hedef işleme ekleyebilir, bellek ayırabilir, ardından bu belleğe bir DLL veya başka bir kod yazabilir ve hedef işleme kodu yürütmesi talimatını verebilir. Windows, bilgisayarınızdaki işlemlerin bu şekilde birbirine karışmasını kesinlikle engellemez.
Bazı durumlarda, birisi sürücüdeki temel kodu değiştirebilir, örneğin bir PC oyunuyla birlikte gelen DLL dosyasını değiştirilmiş başka bir kod parçasıyla değiştirerek oyun hilesi veya telif hakkı ihlali yapabilir. Teknik olarak bu, kod enjeksiyonu değildir çünkü kod, çalışan işlemlere enjekte edilmez, bunun yerine süreç, aynı ada sahip başka bir DLL dosyasıyla kandırılır.
Daha fazla gör: