Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!
Selamlar arkadaşlar,
HardMT2 sunucusunun dosyaları arasında bulunan granny2_d.dll dosyasını tersine mühendislik yöntemleriyle analiz ettim.
Dosya içerisinde gizlenmiş, verilerinizi çalan spyware/stealer kodları tespit edilmiştir. Fonksiyonlar ve yaptıkları işler doğrudan koddaki akışıyla aşağıdadır:
1. Sisteme Kayıt Adımı (Enrollment) - Fonksiyon: sub_1001CB20
Oyunu açtığınızda arka planda şu işlemleri gerçekleştirir:
GetComputerNameA ile bilgisayar adınızı çeker.
GetAdaptersInfo API'si ile ağ kartınızın fiziksel MAC adresini alır.
Elde ettiği MAC, IP ve Bilgisayar Adı bilgilerini
2. Klavye ve Pano Takibi (Keylogger) - Fonksiyon: sub_10014D90
Sürekli bir döngü içerisinde GetAsyncKeyState ve GetKeyState API'lerini çağırarak bastığınız her tuşu anlık olarak izler ve bellekte depolar.
GetClipboardData API'sini kullanarak kopyaladığınız (Ctrl+C yaptığınız) metinleri/şifreleri panodan çeker.
Toplanan klavye kayıtlarını WinINet API'lerini (HttpSendRequestA) kullanarak
3. Arka Planda Ekran Görüntüsü Alma - Fonksiyon: sub_10020060
Haberiniz olmadan ekran görüntünüzü yakalamak için şu akışı izler:
GetSystemMetrics (76, 77, 78, 79 parametreleriyle) çağrılarak ekranınızın çözünürlük sınırları öğrenilir.
GetDC(nullptr) ile tüm masaüstünün ekran görüntüsü bağlamı yakalanır.
BitBlt API'si ile ekranın o anki görüntüsü bellekte açılan geçici bir alana kopyalanır.
GdipCreateBitmapFromHBITMAP ve GdipSaveImageToStream API'leri kullanılarak bu ekran görüntüsü JPEG formatına sıkıştırılır ve bir bellek akışına (IStream) yazılır.
4. Ekran Görüntüsü ve Discord Bilgisi Sızdırma - Fonksiyon: sub_10020570
sub_10020060 fonksiyonunun belleğe sıkıştırdığı JPEG verisini alır.
Bilgisayarınızdaki Discord istemcisinin verilerini tarayarak kullanıcı adınızı (discord_usernames) ve Discord hesap ID'nizi (discord_ids) çeker.
WinINet kütüphanesinin internet bağlantı API'leri (InternetConnectA, HttpOpenRequestA, HttpSendRequestA) aracılığıyla hem JPEG ekran görüntüsünü hem de Discord hesap bilgilerinizi tek bir HTTP POST isteğiyle
5. Şifreli Stringleri Çözme Mantığı (XOR Algoritması)
Analizi zorlaştırmak adına tüm kritik adresler XOR ile şifrelenmiştir. Her karakterin sırasına (indeksine) göre dinamik bir anahtar üretilir ve karakter bu anahtarla XOR'lanır. Formül şu şekildedir:
Orijinal Karakter = Şifreli_Karakter XOR Anahtar
Kullanılan Anahtar Formülleri:
C2 Sunucu Adresi için (
IP Sorgu Adresi için (
Bu basit formülü CyberChef veya herhangi bir programlama dilinde kullanarak DLL içerisindeki tüm şifreli stringleri saniyeler içinde çözebilirsiniz.
Kanıt Linkleri (Web Archive):
İncelemek istiyen arkadaşlar sunucuyu indirebilirler veya direkt DLL üzerindne bakmak istiyenler için :
Dllmain tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d. Dll yüklenir ve dllmain tetiklenir.
Kopya oluşturma: Dllmain arka planda hemen sub_100030b0 (startrundll32host) fonksiyonunu çağırır. Bu fonksiyon, kendisini windows'un geçici klasörüne (%temp%) kopyalar.
Rundll32 ile çalıştırma: Ardından createprocessa apı'si ile meşru windows süreci olan rundll32.exe üzerinden kopyaladığı dll'i şu komutla çalıştırır:
rundll32.exe "%temp%\granny2_d. Dll",_dllhostentry@16
Oyun kapansa bile kapanmaz, bu işlem oyunun dışında bağımsız yeni bir windows süreci olarak başlatıldığı için, oyunu kapatsanız dahi cASUS yazılım arka planda çalışmaya devam eder.
Kapanmayı engelleyen kod kanıtı (dllhostentry):
While ( 1 )
Sleep(60000); // süreci sürekli ayakta tutar, bilgisayar kapanana kadar veri sızdırır.
Öncelikle konuda bulunan webarşiv aracılığıyla sunucunun patcher ile indirdiği .lz dosyasını (bunu değişeceklerini bildiğimiz için yedeklemiştik) indirerek paylaştıgım .py aracılığıyla kolaylıkla .DLL çevirebilirisiniz ve analizlerinizi bunun üzerinden de yapabilirsiniz.Böylelikle bizden bağımsız gerçekten oyunun indirdiği DLL'yi analiz ederekte karara varabilirsiniz ya da dosya.co ile paylaştıgım dll ile de bakabilirisiniz bu tamamen sizin kararınızdır.
.lz yi dll çevirmeye üşenen arkadaşlar için :
Star are us !
HardMT2 sunucusunun dosyaları arasında bulunan granny2_d.dll dosyasını tersine mühendislik yöntemleriyle analiz ettim.
Dosya içerisinde gizlenmiş, verilerinizi çalan spyware/stealer kodları tespit edilmiştir. Fonksiyonlar ve yaptıkları işler doğrudan koddaki akışıyla aşağıdadır:
1. Sisteme Kayıt Adımı (Enrollment) - Fonksiyon: sub_1001CB20
Oyunu açtığınızda arka planda şu işlemleri gerçekleştirir:
GetComputerNameA ile bilgisayar adınızı çeker.
GetAdaptersInfo API'si ile ağ kartınızın fiziksel MAC adresini alır.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
adresine istek atarak dış IP adresinizi sorgular.Elde ettiği MAC, IP ve Bilgisayar Adı bilgilerini
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
adresine POST isteğiyle gönderir. Gelen yanıtta sunucu izni doğrulanırsa casus modülleri aktif edilir.2. Klavye ve Pano Takibi (Keylogger) - Fonksiyon: sub_10014D90
Sürekli bir döngü içerisinde GetAsyncKeyState ve GetKeyState API'lerini çağırarak bastığınız her tuşu anlık olarak izler ve bellekte depolar.
GetClipboardData API'sini kullanarak kopyaladığınız (Ctrl+C yaptığınız) metinleri/şifreleri panodan çeker.
Toplanan klavye kayıtlarını WinINet API'lerini (HttpSendRequestA) kullanarak
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
adresine sızdırır.3. Arka Planda Ekran Görüntüsü Alma - Fonksiyon: sub_10020060
Haberiniz olmadan ekran görüntünüzü yakalamak için şu akışı izler:
GetSystemMetrics (76, 77, 78, 79 parametreleriyle) çağrılarak ekranınızın çözünürlük sınırları öğrenilir.
GetDC(nullptr) ile tüm masaüstünün ekran görüntüsü bağlamı yakalanır.
BitBlt API'si ile ekranın o anki görüntüsü bellekte açılan geçici bir alana kopyalanır.
GdipCreateBitmapFromHBITMAP ve GdipSaveImageToStream API'leri kullanılarak bu ekran görüntüsü JPEG formatına sıkıştırılır ve bir bellek akışına (IStream) yazılır.
4. Ekran Görüntüsü ve Discord Bilgisi Sızdırma - Fonksiyon: sub_10020570
sub_10020060 fonksiyonunun belleğe sıkıştırdığı JPEG verisini alır.
Bilgisayarınızdaki Discord istemcisinin verilerini tarayarak kullanıcı adınızı (discord_usernames) ve Discord hesap ID'nizi (discord_ids) çeker.
WinINet kütüphanesinin internet bağlantı API'leri (InternetConnectA, HttpOpenRequestA, HttpSendRequestA) aracılığıyla hem JPEG ekran görüntüsünü hem de Discord hesap bilgilerinizi tek bir HTTP POST isteğiyle
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
adresine yükler.5. Şifreli Stringleri Çözme Mantığı (XOR Algoritması)
Analizi zorlaştırmak adına tüm kritik adresler XOR ile şifrelenmiştir. Her karakterin sırasına (indeksine) göre dinamik bir anahtar üretilir ve karakter bu anahtarla XOR'lanır. Formül şu şekildedir:
Orijinal Karakter = Şifreli_Karakter XOR Anahtar
Kullanılan Anahtar Formülleri:
C2 Sunucu Adresi için (
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
): Anahtar = (Karakter_İndeksi % 58) + 52IP Sorgu Adresi için (
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
): Anahtar = (Karakter_İndeksi % 49) + 53Bu basit formülü CyberChef veya herhangi bir programlama dilinde kullanarak DLL içerisindeki tüm şifreli stringleri saniyeler içinde çözebilirsiniz.
Kanıt Linkleri (Web Archive):
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
İncelemek istiyen arkadaşlar sunucuyu indirebilirler veya direkt DLL üzerindne bakmak istiyenler için :
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Dllmain tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d. Dll yüklenir ve dllmain tetiklenir.
Kopya oluşturma: Dllmain arka planda hemen sub_100030b0 (startrundll32host) fonksiyonunu çağırır. Bu fonksiyon, kendisini windows'un geçici klasörüne (%temp%) kopyalar.
Rundll32 ile çalıştırma: Ardından createprocessa apı'si ile meşru windows süreci olan rundll32.exe üzerinden kopyaladığı dll'i şu komutla çalıştırır:
rundll32.exe "%temp%\granny2_d. Dll",_dllhostentry@16
Oyun kapansa bile kapanmaz, bu işlem oyunun dışında bağımsız yeni bir windows süreci olarak başlatıldığı için, oyunu kapatsanız dahi cASUS yazılım arka planda çalışmaya devam eder.
Kapanmayı engelleyen kod kanıtı (dllhostentry):
While ( 1 )
Sleep(60000); // süreci sürekli ayakta tutar, bilgisayar kapanana kadar veri sızdırır.
Öncelikle konuda bulunan webarşiv aracılığıyla sunucunun patcher ile indirdiği .lz dosyasını (bunu değişeceklerini bildiğimiz için yedeklemiştik) indirerek paylaştıgım .py aracılığıyla kolaylıkla .DLL çevirebilirisiniz ve analizlerinizi bunun üzerinden de yapabilirsiniz.Böylelikle bizden bağımsız gerçekten oyunun indirdiği DLL'yi analiz ederekte karara varabilirsiniz ya da dosya.co ile paylaştıgım dll ile de bakabilirisiniz bu tamamen sizin kararınızdır.
.lz yi dll çevirmeye üşenen arkadaşlar için :
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Star are us !
Son düzenleme:
En Çok Reaksiyon Alan Mesajlar
HardMt2 bir kaç ay öncesine kadar kendi Anti-Hile yazılımını geliştirmekle uğraşıyordu. Ancak bu konuda istediği yanıtı alamadığı için Mart ayında Rascal ile çalışmaya başladı diye biliyorum.
valkac.dll olması lazım hatta. Ancak bu granny2_d.dll bambaşka bir şey.
Doğrulamak için HardMt2'yi indirerek DLL'i edindim ve inceledim.
DLL'e sahte versiyon bilgileri eklenmiş:
Kod:"Granny 3D Animation Runtime Library" "RAD Game Tools, Inc." "Copyright (C) 2000-2024 RAD Game Tools, Inc.
Yani normal biri anlamasın diye saklamaya çalışmışlar.
PDB Yolu : C:\Users\pcofi\OneDrive\Masaüstü\granny_reader\bin\Release\granny2.9.pdb
Net olarak şunları yapabilir :
Kabaca incelediğimde ise mac_address, modem_mac, ip_address, filename, discord_id bilgileriniz HTTP POST ile gönderilmekte.
Klavye ve Tuş takibi,
Clipboard hırsızlığı
Screen Capture
HTTP C2 İletişimi
Sistem Bilgisi Toplama
Anti-Debug
Payload İndirme ve İndirdiği Dosyayı Çalıştırma
Ağ Keşfi
Mac adresinizi, Modem adresinizi, IP ve Discord ID'nizi zaten RASCAL'da alıyor. Yasal olarak Discord ID almak doğru olmasa da diğerlerinde problem var mı bilmiyorum. Discord ID'nizi de discord sdk dll'i üzerinden kendi discord developer portal applicationu üzerinden çekiyorlar zaten. Bunu engellemek istiyorsanız internette her yerde nasıl engelleyeceğinizin bilgisi var.
Ancak burada sinirleneceğimiz şey filename yani ekran görüntünüz.
Ayrıca ekran görüntüzünün alınması hem TCK tarafında hem KVKK açısından büyük suç teşkil ediyor.
Para kazandıkları bir ortam, kimse PvP sunucu olup olmadığını umursamaz.
İlgili kişiler kendini istedikleri gibi savunabilirler. Ancak HttpSendRequestA'da açıkça filename olarak .jpg görsel upload ettiğiniz gözüküyor.
APTAL yerine koymak için DLL'i Granny kütüphanesi gibi gösterip, utanmadan bir de sahte versiyon bilgileri eklemişler. Ben bile buna sinirlendim. Diğer türlü banane yani isterlerse giydiğim donun ayıcıklarını saysınlar sallamazdım. Ama APTAL yerine koyulmak...
Özet:
Evinize gelip modeminizi de söküp götürseler, topluluk için problem olmaz. 1-2 gün konuşulup unutulacak bir olay.
Açıkça yaptıklarının her detayını birisi doğrulamak isterse açıkça incelesin diye dizmişim ama sen burda bu yorumu yapıyosun.Madem bir bilgin yok yorum yapma.yaptıgım bir uygulamda ne alaka ise trojen ve bir kac virüs daha buluyor antivirus proglamlar bu içerigin tam kapsamlı trojen oldugunu anlamına gelmez trojen dedigin gibi yönetim aracıdır yani programın içinde senden habersiz işlem yapacak kodlarıda virus uyarısı verir ama senin anlatıklarına göre zaten belli olan granny içinde yönetim yapacak bir kod ne olabilir ekran kartını yönetebilir ayarlar senden gizli oda belki
Konuyu detaylandırdığınmız teşekkürler
Ek bilgi olarak :
DllMain Tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d.dll yüklenir ve DllMain tetiklenir.
Kopya Oluşturma: DllMain arka planda hemen sub_100030B0 (StartRundll32Host) fonksiyonunu çağırır. Bu fonksiyon, kendisini Windows'un geçici klasörüne (%TEMP%) kopyalar.
Rundll32 ile Çalıştırma: Ardından CreateProcessA API'si ile meşru Windows süreci olan rundll32.exe üzerinden kopyaladığı DLL'i şu komutla çalıştırır:
rundll32.exe "%TEMP%\granny2_d.dll",_DllHostEntry@16
DllMain Tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d.dll yüklenir ve DllMain tetiklenir.
Kopya Oluşturma: DllMain arka planda hemen sub_100030B0 (StartRundll32Host) fonksiyonunu çağırır. Bu fonksiyon, kendisini Windows'un geçici klasörüne (%TEMP%) kopyalar.
Rundll32 ile Çalıştırma: Ardından CreateProcessA API'si ile meşru Windows süreci olan rundll32.exe üzerinden kopyaladığı DLL'i şu komutla çalıştırır:
rundll32.exe "%TEMP%\granny2_d.dll",_DllHostEntry@16
Ek bilgi olarak :
DllMain Tetiklenmesi: Oyun istemcisi (metin2client.bin) çalıştırıldığında granny2_d.dll yüklenir ve DllMain tetiklenir.
Kopya Oluşturma: DllMain arka planda hemen sub_100030B0 (StartRundll32Host) fonksiyonunu çağırır. Bu fonksiyon, kendisini Windows'un geçici klasörüne (%TEMP%) kopyalar.
Rundll32 ile Çalıştırma: Ardından CreateProcessA API'si ile meşru Windows süreci olan rundll32.exe üzerinden kopyaladığı DLL'i şu komutla çalıştırır:
rundll32.exe "%TEMP%\granny2_d.dll",_DllHostEntry@16
Oyun Kapansa Bile Kapanmaz , bu işlem oyunun dışında bağımsız yeni bir Windows süreci olarak başlatıldığı için, oyunu kapatsanız dahi casus yazılım arka planda çalışmaya devam eder.
Kapanmayı Engelleyen Kod Kanıtı (DllHostEntry):
while ( 1 )
Sleep(60000); // Süreci sürekli ayakta tutar, bilgisayar kapanana kadar veri sızdırır.
Bu işlem tamamen oyunun koruması olan rascal'ın dışında gerçekleşen bir işlem konuyu detaylıca okursanız bunu anlarsınız.Çeşitli korumaları her açıdan analiz etmiş biri olarak bunun sizin düşündüğünüz gibi bir eylem olmadığını belirtmek isterim.Hiçbir koruma klavyede kopyalanan panodan tut harici ekranın bile ekran görüntüsünü alıp sunucusuna göndericek kadar ileri gitmez gidemez , bunu normal görmeniz beni biraz şaşırttı.Bildiğim kadarıyla katı anticheatlerin hepsi zaten bu dediklerini yapıyor
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 3
- Görüntüleme
- 2K
- Cevaplar
- 15
- Görüntüleme
- 18K