+ Konuyu Cevapla
Toplam 4 sonuçtan 1 ile 4 arasındakiler gösteriliyor.

Konu: Anti-DLL injection by CODEST

      
  1. #1
    Forum Lvl 150
    codest - ait Kullanıcı Resmi (Avatar)
    Üyelik Tarihi
    13.02.2008
    Bulunduğu yer
    Ankara
    Mesajlar
    114

    Standart Anti-DLL injection by CODEST

    2-3 gündür aklımda böyle bir şey vardı, başta online oyunların olmak üzere bir çok uygulamanın baş belasıdır DLL injection, hafızaya dahil olan DLL uygulamanın hafızasındaki fonksiyonları istediği gibi işliyebilir, Hook Detour yaratıp, API'lere gelen parametreleri analiz edebilir ve daha bir çok şey, iyi yönde kullanabildiği gibi kötü yöndede gayet kullanılabilir...

    nerdeyse her winapi (user gdi ve winsock apilerinin hepsi değil, çoğu zaman kernel nesnelerini işliyen api'ler), bir native api'yi çağırır yani gerekli parametreleri sağlayıp servis no'yu girdikten sonra native api'leride gayet işliyebilirsiniz, bu teknik sizi user mode hook'ten atlatır ama kernel hook'te takılırsınız..

    Anti dll injection uygulamasının mantığıda, DLL injectorun hafızaya müdahalesinde hangi native API'lere takıldığını gözlemleyip onları blocklamak debugger ile takip ettiğimde

    RtlCreateUserThread ve LdrLoadDll bunlar, hafızaya dahil olduğunda bu native api'lerin adreslerini bulur ve code inject ederek bloke eder.. aslında geliştirip api'yi detour edip daha kapsamlı kullanıcaktım ama vazgeçtim

    kullanımı:

    indirdiğiniz rarı klasöre çıkartın.


    dll klasörü boştur, anti_injection.exe'yi çalıştırın.


    koruma yapılacak olan api'yi seçip (önerilen 2 apiyide seçmenizdir) patch'e basın, hafızada haritalandırdığı dll'i 4 byte (seçilen dll'leri belirtir) patchleyip diske kaydedecektir.


    dll klasöründe "anti_injection.dll" oluşacaktır..


    "anti_injection.dll"'i korumak istediğiniz uygulamanız ile aynı klasöre atınız, ve aşağıdaki kodları giriniz..
    Kod:
    void koruma_baslat(HMODULE, DWORD);
    void koruma_durdur(HMODULE);
    void koruma_devam(HMODULE);
    
    void koruma_durdur(HMODULE modul) {
    	LPVOID adres = GetProcAddress(modul, "koruma_durdur");
    	__asm call adres //çağır
    }
    
    void koruma_devam(HMODULE modul) {
    	LPVOID adres = GetProcAddress(modul, "koruma_devam");
    	__asm call adres
    }
    void koruma_baslat(HMODULE modul, DWORD mili_saniye) { //milisaniyeyi stack'e push et..
    	LPVOID adres = GetProcAddress(modul, "koruma_baslat");
    	__asm call adres //çağır
    }
    
            MAIN kısma aşağıdaki kodlar:
    	HMODULE yukle = LoadLibraryA("anti_injection.dll");
    	koruma_baslat(yukle, 5000); //döngüye girdiğinde 5 saniyede bir api'lere müdahale eder..
    korumayı durdurmak (threadi suspend etmek için aşağıdaki kod)
    Kod:
    koruma_durdur(yukle);
    korumayı devam ettirmek için aşağıdaki kod
    Kod:
    koruma_devam(yukle);
    dll fonksiyonları export table'ye aktardığı için bu şekilde çağırabilirsiniz fonksiyonları, dll_attach'te bir olay gerçekleşmez çağırmanızı bekler fonksiyonları...

    KORUMA SEVIYESI
    bu koruma ile sadece tecrübesiz crackerları atlatır bir nebzede uygulamayı korursunuz, cracker koruma sağlıyan threadı suspend edip api'nin başlangıç kodlarını geri fixup ettiğinde dll injector çalışacaktır.. ama geliştirip daha detaylı koruma sağlanabilir.

    INDIRME
    https://rapidshare.com/files/2075616...i_injector.rar

  2. #2
    wolky78
    Misafir

    Standart Cevap: Anti-DLL injection by CODEST

    merhaba güzel konu, yalnız herhangi bir oyun exesini nasıl koruruz ?

  3. #3
    Forum Lvl 150
    codest - ait Kullanıcı Resmi (Avatar)
    Üyelik Tarihi
    13.02.2008
    Bulunduğu yer
    Ankara
    Mesajlar
    114

    Standart Cevap: Anti-DLL injection by CODEST

    Alıntı wolky78 Nickli Üyeden Alıntı Mesajı göster
    merhaba güzel konu, yalnız herhangi bir oyun exesini nasıl koruruz ?
    aslında bir oyunun exe'sini botlara karşı korumak çok zordur, çünki self modifing crc check API redirect stolen bytes benzeri teknikler process OEP'e dallanana kadar koruma sağlar (en fazla multi client önlenebilir), OEP'e dallanmış bir uygulama attach edilip takip edilebilir, fakat buna karşıda koruma teknikleri vardır örneğin güvenlik için yaratılan threadler main threadin stop ettiğini görünce uygulamayı sonlandırabilir.. (ama çoğu zaman bu koruma threadleri suspend edilip devam edilebilir, eğer threadin birini suspend ettiğinde diğer koruma threadleri bunun farkına varıyorsa, o zaman kernel32.dll'den CreateThread API'sini harddisk üzerinde patchlemek gerek..) bir oyuna bot yazmak için send API'sinin(ws2_32 modülünde export haldedir) ele geçirilmesi gerekmekte, win32 sistemlerde paket göndermek için dolaysız olarak kullanılabilecek tek fonksiyon send'dir, send API'sini çağıran fonksiyona gidip analiz yapmak bir onlineoyun için bot yazmanın temel mantığıdır (çünki oyun sunucusuna gönderilen paket bu fonksiyona push edilen parametreler sayesinde üretilir parametreleri analiz edip bu fonksiyon adresine yollamak yeterli olur), ardından bu API detour edilir ve DLL injection ile dilenildiği gibi kullanılır, karakter hp mp'sini vs tutan offsetler (aslında pointer + offset olması gerek dinamik bellek mantığında, çünki pointer bulunmazsa offset her açılışta farklı olcaktır) bulunarak bot tamamlanır...

    bu örnekte verdiğim AntiDll injection ise bir online oyun'e bot yazmak için olmazsa olmaz olan DLL injectionun, DLL'in hafızaya girmeden önce hangi API'leri kullandığını analiz edip onları blok etmeyi yarıyan bi hede ama tecrübeli bi cracker için koruma sağlarmı?, hayır en fazla 10dk'sını alır çözmek.. ama tecrübesizlere sinir krizi geçirtebilir :
    yani bir oyun exe'sini korumak için kullanılacak en iyi teknikler, #1 threadler #2 send'i çağıran fonksiyona güvenlik konusunda önem verilmesi fln ama 2. yöntem kısa süre kafa karıştırır sadece eninde sonunda indirirler
    Konu codest tarafından (29-06-2011 Saat 07:25 PM ) değiştirilmiştir.

  4. #4
    wolky78
    Misafir

    Standart Cevap: Anti-DLL injection by CODEST

    bu konuyla ilgili bi proje üzerinde çalışıyorum bilgilerinizden yararlanmak isterim mümkünse ?

+ Konuyu Cevapla

Benzer Konular

  1. DLL injection ve hafızadaki fonksiyonları işlemek
    Konuyu Açan: codest, Forum: C ve C++.
    Cevap: 0
    Son Mesaj : 12-05-2011, 02:05 AM
  2. ShopPHP Sql Injection Açığı
    Konuyu Açan: Haberci, Forum: Güvenlik.
    Cevap: 0
    Son Mesaj : 28-07-2010, 12:40 AM
  3. DayWith Codest!
    Konuyu Açan: M e я T, Forum: Off-Topic Diğer.
    Cevap: 8
    Son Mesaj : 21-05-2010, 07:10 PM
  4. Codest İş Buldu!
    Konuyu Açan: M e я T, Forum: Off-Topic Diğer.
    Cevap: 12
    Son Mesaj : 20-05-2010, 08:49 AM
  5. Codest'dan Donanım Tanımı
    Konuyu Açan: codest, Forum: Donanım.
    Cevap: 3
    Son Mesaj : 05-03-2008, 06:30 PM

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Mesaj Yazma Yetkiniz Var
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok
  •  
Refleksoloji