XIGNCODE3 Anti-Cheat DLL Enjeksiyon ve Kod Değiştirme ile Bypass

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Seçkin Üye
Katılım
18 Ocak 2016
Mesajlar
315
Tepki puanı
71
Ödüller
9
10 HİZMET YILI
Tekrardan merhabalar, yine karşınızdayım ve sağlam bir search yaparak ingilizce kaynaklardan sizlere mücevher çıkarmaya devam ediyorum! MH Ailesine her daim bir nebze dahi yararım oluyorsa ne hoş! :)
Olamadığım günlerin acısını çıkarayım yani bırakın biraz ;) Değinmeden geçmem asla hemen belirteyim ;


MH ailesinden @nader11ndeu ve @LeftSpace reislerin yardımı ve yönlendirmeleriyle tabi bu (1.5 sene öncesine dayanıyor siz düşünün gerisini) asearch becerim gelişti sayelerinde ve ingilizce bilmiyordum onların sayesinde ufkum açıldı, onlara çok müteşekkirim.

FORUM KURALLARI GEREĞİ 20 RESİMDEN FAZLASINI KABUL ETMEMEKTE OLDUĞU İÇİN KONU İÇERİSİNDE UĞRAŞTIM DEĞİŞİKLİKLER YAPMAK ZORUNDA KALDIM BİLGİNİZE!

XIGNCODE3 Atlamak - Dragomon Hunter

XIGNCODE3 Anti-Cheat DLL Enjeksiyon ve Kod Değiştirme ile Bypass

Yasal Uyarı: Dragomon Hunter tersine mühendislik sadece eğitim amaçlı yapılmıştır. Aşağıda verilen bilgilerin her türlü kötü amaçlı amaçla kullanılmasına izin vermiyorum. Bulunan tüm istismarlar Aeria Games'e gönderildi ya da zaten düzeltildi.

Genel Bakış

Hack1209'daki ilk blog gönderim hakkında, Dragomon Hunter oyunu için XIGNCODE3'ü nasıl geçeceğimizi soran bir yorum aldım. Gönderi ilk kez oluşturduğumda, XIGNCODE3 henüz etkinleştirilmedi. (İşte gönderiye bir link: ( Tersine Mühendislik Online Oyunlar - Dragomon Hunter ) Orada yayınladığım gibi, genellikle, hile karşıtı bilgisayarın bilgisayarınızda çalıştığından emin olmak için sunucu ile oyun istemcisi arasında gönderilen bazı "kalp atışı" veya "ping" paketi vardır. Bu paket etkinleştirilirse, hangi oyunun anti-hile kullandığını, 1-5 dakikalık bir süre içinde kesmeniz gerekecektir. Bu oyunda veya bu özelliğin etkin olmadığı herhangi bir başka oyunda, anti-hile yapmanın engellenmesini engelleyen anti-hile yapmadan analizinizi yapmak için başlatmayı durdurabilirsiniz. Bu anti-hilelerin ilk blog gönderimde nasıl çalıştığı hakkında daha fazla bilgi edinebilirsiniz.
Göstereceğim yöntem çok kolay bir şekilde gerçekleştirilebilir ve XIGNCODE3 kullanan herhangi bir oyun için kullanılabilir. Bu APIs OpenProcess ve WriteProcessMemory kullanarak elde edilebilir, ancak size temel bir DLL oluşturmak ve işlemin içinden bellek değiştirmek nasıl göstereceğim. İnternette bulabileceğiniz birçok kamuya açık DLL enjektörü vardır.
İlk blog gönderimimde attığım adımların bir kısmını açıklamak için orada tekrarlayamayacağım.
Başlayalım!

İhtiyacınız Olanlar:

  • X86 Assembly, C / C ++, Ters Mühendislik ve Win32 API'leri bilgisi​
  • Dragomon Çevrimiçi (
    Bağlantıları görmek için lütfen Giriş Yap
    )​
  • Ollydbg v1.10 (
    Bağlantıları görmek için lütfen Giriş Yap
    )​
  • IDA Pro (
    Bağlantıları görmek için lütfen Giriş Yap
    )​
  • IDE Fonksiyonu Dizgesi Associate Plugin Sirmabus (
    Bağlantıları görmek için lütfen Giriş Yap
    )​
  • DebugView (
    Bağlantıları görmek için lütfen Giriş Yap
    )​
Analiz:
UYARI: Eğer bir çeşit kötü amaçlı yazılımları analiz ediyor olsaydık, aşağıda gösterdiğim süreç farklı olurdu ve VMWare altında çalıştırılmalı, böylece bilgisayarınızı etkilemezsiniz. Ancak, bu güvenilir bir kaynaktan, Aeria Oyunları olduğundan, bu durumda gerekli değildir.

Yine, Dragomon Hunter oyununuzun güncel olduğundan emin olun.

Bağlantıları görmek için lütfen Giriş Yap


Dragomon Hunter'ı anti-hile iptal etmeden açarsan ne olacak.

Bağlantıları görmek için lütfen Giriş Yap


XIGNCODE3 başlatması başlayacak ve açılış ekranı görünecektir.

Cheat Engine veya Ollydbg gibi herhangi bir açık yazılımınız varsa, aşağıda gösterildiği gibi "şüpheli bir program açılır" mesajı alırsınız ve oyun kapanır.

Bağlantıları görmek için lütfen Giriş Yap



IDA'daki Game.bin dosyasını analiz edin. Analizden sonra IDA, IDA View'de WinMain işlevinin başlangıcını gösterecektir. Sirmabus tarafından IDA Function String Associate Plugin çalıştırın. (ALT + F6)

Bağlantıları görmek için lütfen Giriş Yap


Burada XIGNCODE3'ün oyunun başlangıcında intializasyonu için bazı başvurulan dizeleri görebiliyoruz.

Bağlantıları görmek için lütfen Giriş Yap


Birazcık aşağı inersek, sorumlu olanı görürüz. Diğer oyunlarda, bu işlev bulmak için bu kadar kolay olmayabilir. Ben XIGNCODE3 dizeleri şifreli bir oyun görmedim, bu nedenle bu işlevi bulmak için başka bir yol başvurulan dizeleri "xigncode" aramak için olurdu.

Bağlantıları görmek için lütfen Giriş Yap


Değiştirmek istediğimiz işlev, "ErrorCode% 08x!" İle dizeyi içeren işlevdir.

Bağlantıları görmek için lütfen Giriş Yap


XIGNCODE3'ün başladığı yer burasıdır. "CGHcjbNstNjf" dizesi her oyuna özgüdür ve lisans anahtarı olarak çalışır. Rastgele karakterlerden oluşan bir dizedir ve bu dizeyi bulduğunuzda, başlatmayı durdurmak için ihtiyacınız olan işlevi buldunuz.

Bağlantıları görmek için lütfen Giriş Yap


Arama, XIGNCODE3'ün ana modülü olan x3.xem'i yüklemek için bir işlev içinde biter.

Bir önceki işleve geri dönelim ve XIGNCODE3'ü doğru şekilde yüklediğini düşünmek için oyunu nasıl değiştirebileceğimizi görelim.

Bağlantıları görmek için lütfen Giriş Yap


Fonksiyonun başarılı olması için, fonksiyonun sıfır olmayan bir değerle (veya sadece 1'in kolay olduğu) EAX'te döndüğünden emin olmamız gerekir.

Bağlantıları görmek için lütfen Giriş Yap


Aşağıdaki kodu 0x006F1DE0 adresindeki işlevin en üstüne yerleştirerek başlatma işlemini durdurabiliriz (oyun güncellemeleri bu adres değişebilir):

mov eax, 1
çürümek


Şimdi XIGNCODE3'ün başlatılmasını nasıl durduracağımızı analiz ettik, hadi DLL'mizi kodlamaya başlayalım.

Bizim DLL kodlama

Kodlama yaparken Visual Studio'yu bir IDE olarak kullanmayı tercih ediyorum. Yapılandırma türünüzün DLL'ye ayarlandığından ve hedef uzantınızın .dll'ye ayarlandığından emin olmanız gerekir.

Bağlantıları görmek için lütfen Giriş Yap


Bağlantıları görmek için lütfen Giriş Yap



Ayrıca Windows.h başlığını da eklememiz gerekecek.

Bağlantıları görmek için lütfen Giriş Yap


Ardından, doğrudan belleğe bayt yazmamıza izin veren bir işlev oluşturalım.

Bağlantıları görmek için lütfen Giriş Yap


Neden VirtualProtect'i kullanmalıyız? Kodu değiştirmek için yazma erişimine sahip olduğumuzdan emin olmalıyız.

Bağlantıları görmek için lütfen Giriş Yap


Şimdi kodu yazmak için doğru op kodlarını almalıyız:
mov eax, 1
çürümek

Kişisel olarak en çok kullanılan x86 Intel komut setindeki her bir opoğu ezberlemedim. Bu yüzden, opcodes'in aşağıdaki gibi bir web sitesi üzerinden çevrimiçi olduklarını görmenizi tavsiye ederim:
Bağlantıları görmek için lütfen Giriş Yap


Bağlantıları görmek için lütfen Giriş Yap

Bağlantıları görmek için lütfen Giriş Yap



Ollydbg'yi de kullanabilir, kodu değiştirebilir ve Ollydbg'in yazdığı baytları görebilirsiniz.

Bağlantıları görmek için lütfen Giriş Yap


Tamam, bu yüzden yazmamız gereken kod 6 bayt alır gibi görünüyor. Ancak, sonunda 3 nop ekleyeceğiz, çünkü değiştirdiğimiz işlevin en üstündeki ilk 3 komut 9 byte alıyor.

Şimdi kodu değiştirmek için WriteBytes işlevimizi kullanacağız.

Bağlantıları görmek için lütfen Giriş Yap


Son olarak, bizim DLL Giriş Noktası işlevine ihtiyacımız olacak. (DLLMain)

Bağlantıları görmek için lütfen Giriş Yap


DLL'imizi derleyelim, oyun başladığında enjekte edelim ve ne olduğunu görün. (Kaynak kodu en altta yayınlanacaktır.)

Bağlantıları görmek için lütfen Giriş Yap


Hata ayıklama dizgimiz bir başarı ile ortaya çıkıyor ve XIGNCODE3 başlatılamadı! Şimdi analiz araçlarımızı tespit edilmeden kullanabiliriz.

Sonuç
Anti-hile ile bir "kalp atışı" paketi kullanan bir oyun ile çalışmadığınız sürece, bu kolay yöntem herhangi bir anti-hile yenmek için kullanılabilir, diğer yöntemler aracılığıyla atlayarak endişelenmenize gerek kalmadan analizinizi başlatmanızı sağlar. Gelecekteki bir blog yazısında, XIGNCODE3'ün "kalp atışı" paketini kullanan bir oyunda sürücülerini ve Ring 3'teki bilinen hackleri veya analiz araçlarını tespit etmek için kullandıkları yöntemleri devre dışı bırakarak nasıl geçeceğini göstereceğim.

Yukarıdaki kod aşağıdaki bağlantıda bulunabilir:
Bağlantıları görmek için lütfen Giriş Yap

NOT : Arkadaşlar sanırım pastebin türkiye'ye desteğini kestiği için engellenmişiz sanırım. Tor browser kullanıyorsanız oradan kolaylıkla ulaşabilirsiniz veya proxy vpn kullanabilirsiniz!

Kaynak : Forum kuralları gereği kaynak belirtilememektedir. Kaynakta emeği geçen ve Tecrübelerini bizimle paylaştığı için teşekkürler.
 
Son düzenleme:
3piR
Uzman Üye
Katılım
2 Ara 2017
Mesajlar
197
Tepki puanı
26
8 HİZMET YILI
kardeşim emek kokuyor like verdim tebrikler
 
Süper Üye
Katılım
12 May 2018
Mesajlar
834
Tepki puanı
167
Ödüller
6
8 HİZMET YILI
Yararlı bişey değil çok yararlı bişey sağolasın emek kokuyor
 
Seçkin Üye
Katılım
18 Ocak 2016
Mesajlar
315
Tepki puanı
71
Ödüller
9
10 HİZMET YILI
kardeşim emek kokuyor like verdim tebrikler
İlginiz ve dikkatiniz için teşekkür ederim öncelikle tabii, copy pasten genelde kaçınırım eğer bilgim yoksa yanlış bilgi vermekten korkarım araştırarak aldığım bu bilgileri kendi tarafımcada işlediğim için paylaşıyorum. Şimdi bu bilgi paylaşıma açık olduğu için bilgiyi arşivimden çıkarıp sizlerle paylaşmayı severek uygun gördüm. Bunu yaparken sadece al paylaş değil, tanıyanlar az çok beni bilirler. Basitliği sevmem uğraşırım en azından üstünde değişiklikler ve dokunuşlarım illa ki olmaktadır. Emeğe saygınızdan ötürü teşekkür ederim. :)

Yararlı bişey değil çok yararlı bişey sağolasın emek kokuyor
Ne demek istediğiniz tam anlamadım.. Cümlede yanlışlık var sanırım..
 
Süper Üye
Katılım
12 May 2018
Mesajlar
834
Tepki puanı
167
Ödüller
6
8 HİZMET YILI
İlginiz ve dikkatiniz için teşekkür ederim öncelikle tabii, copy pasten genelde kaçınırım eğer bilgim yoksa yanlış bilgi vermekten korkarım araştırarak aldığım bu bilgileri kendi tarafımcada işlediğim için paylaşıyorum. Şimdi bu bilgi paylaşıma açık olduğu için bilgiyi arşivimden çıkarıp sizlerle paylaşmayı severek uygun gördüm. Bunu yaparken sadece al paylaş değil, tanıyanlar az çok beni bilirler. Basitliği sevmem uğraşırım en azından üstünde değişiklikler ve dokunuşlarım illa ki olmaktadır. Emeğe saygınızdan ötürü teşekkür ederim. :)


Ne demek istediğiniz tam anlamadım.. Cümlede yanlışlık var sanırım..
çok yararlı diyorum eyw
 
Seçkin Üye
Katılım
2 Şub 2017
Mesajlar
358
Tepki puanı
106
Yaş
30
9 HİZMET YILI
evet mantık sabittir fakat bu olay her oyunda sorunsuz çalışmaz örn. wt de maks 5 dakika içerisinde disconnect yersiniz
 
Seçkin Üye
Katılım
18 Ocak 2016
Mesajlar
315
Tepki puanı
71
Ödüller
9
10 HİZMET YILI
evet mantık sabittir fakat bu olay her oyunda sorunsuz çalışmaz örn. wt de maks 5 dakika içerisinde disconnect yersiniz
Bu sadece öğretici ve zaten 5 dakika içerisinde istediklerini alamaz mısın? Gayet kolay bir şekilde alabilirsin.
 
Seçkin Üye
Katılım
2 Şub 2017
Mesajlar
358
Tepki puanı
106
Yaş
30
9 HİZMET YILI
Bu sadece öğretici ve zaten 5 dakika içerisinde istediklerini alamaz mısın? Gayet kolay bir şekilde alabilirsin.

Herhangi bir ptr ye debug atıp loglamaya başladığın zaman demek istediğimi anlarsın ve zaten wt sana ortalama olarak 3 dakika tanıyor bu 5 dakika olması için bazı şartlar var onu geçtim eğer aradığın adres çıkmıyorsa ve disconnect yiyeceğin zamanı tahmin edemiyorsan yaptığın bütün emek boşa gider ve tekrardan denersin bu yüzden o süre yeterli değil. Çok istiyorsa birisi bypassı ya heartbeat sağlar yada başka forumlardan ücreti ile bypass satın alabilir :ensarcry:
 
Seçkin Üye
Katılım
18 Ocak 2016
Mesajlar
315
Tepki puanı
71
Ödüller
9
10 HİZMET YILI
Herhangi bir ptr ye debug atıp loglamaya başladığın zaman demek istediğimi anlarsın ve zaten wt sana ortalama olarak 3 dakika tanıyor bu 5 dakika olması için bazı şartlar var onu geçtim eğer aradığın adres çıkmıyorsa ve disconnect yiyeceğin zamanı tahmin edemiyorsan yaptığın bütün emek boşa gider ve tekrardan denersin bu yüzden o süre yeterli değil. Çok istiyorsa birisi bypassı ya heartbeat sağlar yada başka forumlardan ücreti ile bypass satın alabilir :ensarcry:
Bypass kodlayamamak ne kötü!
 
Rumpolis
Seçkin Üye
Katılım
21 Ocak 2016
Mesajlar
583
Tepki puanı
123
Ödüller
9
10 HİZMET YILI
Dostum Efsane Araştırma Yapmışsın Hemen Bir Like Veriyorum.
 
Seçkin Üye
Katılım
18 Ocak 2016
Mesajlar
315
Tepki puanı
71
Ödüller
9
10 HİZMET YILI
@Rumexus

Yorumunu görünce şöyle bir konuma dönüp baktım gerçekten öyle.. :) işinize yaradıysa ne mutlu.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst