Ee peki DetecItEasy tarafından VMProtect[new ile başlayan imzaları neden çözebiliyor o zaman? Özellikle C# ise.Tabii ki imkansiz degil ancak imkansiza yakin, cok cok zor. Daha guncel orneklerle deneyip ayni sonucu alamazsin. Bu sekilde konusmayi sevmem ancak bariz bir sekilde yalan soyluyorsun. Nuitka’yi bile cozmus birisi olmak ne demek? Nuitka zaten acik kaynak kodlu, bunu cozmekte ne var? Singapurlu birinin IDA scriptini alip guncellemissin tum crediti kendi uzerine aliyorsun, etik degil. Eski VMProtect kaynak kodlari ciktiginda o surumu kullanan uygulamalari cozmek de kolaydi ancak bu artik soz konusu degil. Dragon blabla repolarinda guncel vmpyi unpack edebilecek bir kod yok. Dilersen son surum vmp ile koruyup sample atayim kendin gorPE sectionlarda .vmp0 .vmp1 kontrol etmek cok bayat bir yontem. Gecerli degil. Guncel VMProtect surumunde PE sectionlar bu sekilde birakmiyor orayi
Sig patternleri neden bulamasin? Unpacked executable elde etmek ile sig eslestirmek birbirinden cok farkli seyler. Dotnet ile calismiyorum, direkt native platform executable’lari koruyorum (vmp kullananlarin %99’u gibi) veya analiz ediyorum.Ee peki DetecItEasy tarafından VMProtect[new ile başlayan imzaları neden çözebiliyor o zaman? Özellikle C# ise.
Ben unpack edince kaynak kodu gözüküyor VMProtect 3.94'deSig patternleri neden bulamasin? Unpacked executable elde etmek ile sig eslestirmek birbirinden cok farkli seyler. Dotnet ile calismiyorum, direkt native platform executable’lari koruyorum (vmp kullananlarin %99’u gibi) veya analiz ediyorum.
DiE != Unpacker
Daha onceden de belirttigim gibi, son surum vmp ile korunmus uygulamalari unpacklemek cok ama cok zor, dunya uzerinde makul bir zaman icerisinde basarabilecek kisi sayisi epey az diye tahmin ediyorum.
DiE VMProtect ile ultra seviye virtualization eklenmis bir malware’in icerigini bulamiyor, sadece VMP ile packlendigini belirtiyor. VMP ile packlendigini bilmek zaman kazandirir ancak okunabilir sekilde sonuc verecek unpack islemini kolaylastirmaz. dinamik olarak kernel space’de (usermode olmaz cunku vmp kernelmode protection var, hypervisor tercih edilebilir) memory dump alip pe sectionlari incelenebilir ancak bu sefer de virtualized instructionlar ile karsi karsiya kaliyorsun. (devirt etmeden oku okuyabiliyorsan…)
IDA Pro bile analiz ederken hata veriyor, duzeltilebiliyor ama disasm sonucu hep yanlis.
Umarim anlattiklarim aciklayici olmustur.
Ben unpack edince kaynak kodu gözüküyor VMProtect 3.94'de
Eki Görüntüle 2569692
3.9.4 ile denedim aynı sonuç ve DIE VMProtect'li demedi buna. Eki Görüntüle 2569694
Kısacası sende İngilizce tabiriyle "skill issue" var. İyi bir tersine mühendisçi değilsin.
Kardeşim bu dediğin I know everything aşaması şeyi yani Dunning-Kruger efekti. Birde bu program stringleri koruyamıyorsa antivirüslerden nasıl kaçacak ve nasıl webhook'u gizleyecek Hala saçmalıyorsun. Kendini bir şey bilmiş sanıyorsun ve bu arada discord'u seve seve vererim ama modlar silebilir yazıyı. O yüzden github Hydra Dragon Antivirus'e bak derim. Stringleri normalde koruyor ama çok zayıf şekilde koruyor ayrıca bu duruma itiraz eden tek ben değilim bir adam daha sanıldığı kadar zor değil diyor bu Technopat yazıda hatta bu konuda. Fakat karşı taraf vermediği için öyle kalmış. Bende eskiden imkansız falan diye kafamda büyütüyordum hatta yazılımcı çevrem bu yazılımı kullanmayı düşünmüştü. Fakat bir süre sonra string koruması gidince şaşırdılar. String koruması en önemlisidir obfuscator'da çünkü virüs imzası eşleşmemesi için gereklidir. Fonksiyon isimlerini değiştirmek kolay fakat stringleri obfuscate etmekte mümkün. İyi bir yazılımcı için kıramayacağı bir şey yoktur. Birde tek bunu keşfetmedim. user32.dll sembollerden seçip sonrasında programı biraz ileri alıp çalıştırıp x64dbg ile. Sonrasında MessageBoxW'yi bulup oraya breakpoint atınca kodun her yerinde olan ve anti patchleme yazısı çıkıyor. Bayraklara falan her şeye bakıyor bu.Eki Görüntüle 2569940
^ Tam olarak "I know everything" asamasindasin.
Eki Görüntüle 2569974
1. Ben denedim stringleri koruyor hem de cok iyi.
2. Cok fazla tespit etme faktoru var DiE icinde de gozuktugu uzere. Ana faktor stringler degil.
3. Olay stringlerde degil zaten, fonksiyonlarda.
4. VMP dogru kullanildiginda birak statik analizi, dinamik analizde bile stringleri rahatca bulamazsin.
C# .NET 9 projesi icin VMProtect 3.9.6 kullanildi ve sozde kolay bir sekilde unpackleyen unpackerin calismadi.
denemek istersen discord adini iletebilirsin, sample gondereyim durumu anlayacaksin.
Tabii ki VMP basilan bir yazilimi unpackleyememem bir skill issue ancak bunu sadece ben degil, sen dahil dunyadaki reverse engineerlarin neredeyse hicbiri yapamiyor. Basarabilecek kisinin epey fazla zaman harcamasi ve kafayi kirmasi gerek. Bu kadar zaman harcamasi unpacker yazacagi anlamina gelmez sadece uzerinde ugrastigi yazilimi unpack edebilmesi anlamina gelir ve belirttigim gibi bunu yapabilecek insan sayisi cok az.
Ben her gun IDA basindayim isim ve meslegim geregi. Bilgi birikimimle bunlari belirtiyorum.
Dunning kruger efekti yazarak bu gorseli buldum zatenKardeşim bu dediğin I know everything aşaması şeyi yani Dunning-Kruger efekti. Birde bu program stringleri koruyamıyorsa antivirüslerden nasıl kaçacak ve nasıl webhook'u gizleyecek Hala saçmalıyorsun. Kendini bir şey bilmiş sanıyorsun ve bu arada discord'u seve seve vererim ama modlar silebilir yazıyı. O yüzden github Hydra Dragon Antivirus'e bak derim. Stringleri normalde koruyor ama çok zayıf şekilde koruyor ayrıca bu duruma itiraz eden tek ben değilim bir adam daha sanıldığı kadar zor değil diyor bu Technopat yazıda hatta bu konuda. Fakat karşı taraf vermediği için öyle kalmış. Bende eskiden imkansız falan diye kafamda büyütüyordum hatta yazılımcı çevrem bu yazılımı kullanmayı düşünmüştü. Fakat bir süre sonra string koruması gidince şaşırdılar. String koruması en önemlisidir obfuscator'da çünkü virüs imzası eşleşmemesi için gereklidir. Fonksiyon isimlerini değiştirmek kolay fakat stringleri obfuscate etmekte mümkün. İyi bir yazılımcı için kıramayacağı bir şey yoktur. Birde tek bunu keşfetmedim. user32.dll sembollerden seçip sonrasında programı biraz ileri alıp çalıştırıp x64dbg ile. Sonrasında MessageBoxW'yi bulup oraya breakpoint atınca kodun her yerinde olan ve anti patchleme yazısı çıkıyor. Bayraklara falan her şeye bakıyor bu.Eki Görüntüle 2570018 Bunları tek tek elinle değiştirirsen aşama kat ediyorsun.
Reverseleme bilgin cok zayif. Uzgunum.Bunları tek tek elinle değiştirirsen aşama kat ediyorsun.