Java Kaynak Kodu Dönüştücüleri

Bayt kodu seviyesinde çalışmanın kimi zaman zorlayıcı olduğuna hak veriyorum. Mevzu bahis bir Java zararlı yazılımını analiz etmek olduğunda, eldeki class dosyalarını Java kaynak koduna çevirmek, çoğu analistin izleyeceği adımların başında yer alıyor. Ancak Temmuz ayındaki yazımda (Java Bayt Kod Hata Ayıklaması) da bahsettiğim üzere, gizleme (obfuscator) aracından (Allatori gibi) faydalanan bir zararlı yazılım ile karşı karşıya kaldığınızda, kaynak koduna dönüştürücüleri (JD gibi) çoğu zaman sizi yarı yolda bırakabiliyor.

Aralık ayı gibi, sahte bir e-posta ile hacklenmiş olduğunu düşündüğüm bir web sitesi üzerinden indirilmesi sağlanan ve her indirilme isteğinde, farklı bir şifre ile paketlenen siparisler.rar (siparisler.jar) adında bir Java zararlı yazılımı dikkatimi çekti.

Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori

Allatori gizleme aracının güçlü özelliklerinden (uzun sınıf ve metod isimleri, AUX gibi rezerve isimler vs.) faydalanarak oluşturulan bu JAR paketi içinde yer alan class dosyalarına baktığımda, dosya isimlerinin ~8000 hane uzunluğunda olduğunu gördüm.

Bu uzun dosya isimleri sayesinde zararlı yazılımı Winrar, 7zip, unzip gibi araçlarla işletim sistemine açmak (extract) istediğimde, işletim sistemi sınırlarına takıldığımı ve dosyaları açamadığımı farkettim. Ayrıca uzun dosya isimleri ve metod isimleri nedeniyle çoğu kaynak kod dönüştürücüsünün (CFR hariç) bu dosyayı kaynak koduna çevirme işlemi esnasında hata aldığını gördüm.

Java Decompilers vs Allatori
Java Decompilers vs Allatori

Bu dosyanın, kum havuzu analizi yapan ticari bir ürünü analiz esnasında çökerttiğine şahit olmuş biri olarak, sadece ve sadece cihazlara yatırım yapan ve bel bağlayan kurumların pamuk ipliğinde yaşadıklarını yeri gelmişken tekrar söylemiş olayım.

Tabii Python ile Allatori Zip Shortener gibi basit bir araç yazarak bu zip dosyasını açılabilir hale getirmem çok zor olmadı.

Java Decompilers vs Allatori

Daha detaylı bilgi edinmek için Temmuz ayında yayımlamış olduğum yazıda olduğu gibi bundan sonra bayt kod seviyesinde analize devam edebilirdim. Eğer amacım sadece bunun hangi türde bir zararlı yazılım olduğunu öğrenmek olsaydı, zahmete girmeden bellek dosyası üzerinde yapacağım ufak bir araştırma ile bunun Jsocket RAT yazılımı olduğunu da öğrenebilirdim.

Java Decompilers vs Allatori

Bu zararlı yazılımı incelerken, http://www.javadecompilers.com/ sitesi sayesinde çoğu kaynak kod dönüştürücüsünün Allatori’ye karşı yetersiz olduğunu gördüm. Çoğu dönüştürücü, bu zararlı yazılımı ya kaynak koda çevirmekte başarsız oldu ya da çevirdiği kaynak kodu, tekrar derlenemeyecek durumdaydı. Bayt kodu seviyesinde statik analiz ile ilerlemek isteseydim, Allatori’nin karakter dizilerini gizlediğini görecek ve bunu çözmek için gizleme yöntemini bulmam gerekecekti ve bu bayt kod seviyesinde işlerimi biraz daha uzatacaktı. Ben de bu vesileyle, Allatori’ye karşı mevcut kod dönüştürücüleri değerlendirmeye ve karakter dizi gizlemesi için kullanılan algoritmayı hangi dönüştürücünün başarıyla ortaya çıkartabildiğini öğrenmeye karar verdim. Bunun için de başarı kriteri olarak, kaynak koduna çevrilen class dosyasının tekrar derlenebilmesini ve çalıştırılabilmesini kabul ettim.

İlk olarak Java ile komut satırına “Hello World” yazan basit bir kod yazdım ve bunu JAR paketine çevirdim. Ardından bu paketi Allatori’ye vererek gizlenmiş (obfuscated) paket oluşturmasını sağladım. Son olarak da http://www.javadecompilers.com/ sitesi üzerinden her bir JAR dosyasını kaynak koduna çevirip derlemeye ve çalıştırmaya başladım.

Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori

Değerlendirme sonucunda JadX, Procyon kaynak kodu dönüştücülerinin başarıyla Allatori v5.6 Demo sürümü ile gizlenmiş kodları orjinal haline çevirebildiğini gördüm.

Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori
Java Decompilers vs Allatori

Procyon ve JadX sayesinde Allatori v5.6 tarafından kullanılan karakter dizisi gizleme algoritması da ortaya çıkmış oldu :)

Java Decompilers vs Allatori

Bir sonraki yazıda görüşmek dileğiyle herkese güvenli günler dilerim.

image_pdfShow this post in PDF formatimage_printPrint this page
7 comments
  1. merhaba mert bey bir soru soracağım, biyografinizde yazılanlara bakarak cevap gelebileceğini düşündüm. şimdi web sitenizde kaynağı görüntüle dediğimiz de analitik kullanıyorsanız orada analitiğin UA ile başlayan bir kodu var. UA-1111111-1 gibi mesela bu kodu gizlemek istiyorum. bu konu hakkında yardımcı olabilir misiniz? kaynağı görüntüle dediklerinde görememeleri için ne yapmamız lazım

  2. java ile masaüstü uygulama yazıyorum, ama jar dosyalarının içindeki kodlarının görülebildiğini yakın zamanda öğrendim, Kodların çalınmasını engellemenin bir yolu varmıdır, yoksa vb.net temi uygulama yapayım, teşekkürler

Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like
Read More

e-Devlet Hacklendi mi?

If you are looking for an English version of this article, please visit here. Öncelikle yazının sonunda söyleyeceğimi başta söyleyeyim, “Hayır, hack-len-me-di!” Peki bu durumda vatandaş olarak rahat bir nefes alabilir misiniz ? Maalesef hayır. Bunun sebebini de yazının devamında okuyabilirsiniz. Zaman zaman hortlayan “e-Devlet Hacklendi!”, “e-Devlet verileri çalındı!”, “85…
Read More
Read More

WhatsApp Dolandırıcıları

If you are looking for an English version of this article, please visit here. Başlangıç Son günlerde hemen hemen WhatsApp uygulaması kullanan herkesi rahatsız eden yabancı cep telefonu numaralarından gelen çağrılardan, mesajlardan ben de yakın zamanda nasibimi aldım ve tabii ki diğer dolandırıcılıklarla ilgili yazılarımda (Kripto Para Dolandırıcıları, LinkedIn Dolandırıcıları,…
Read More
Read More

LinkedIn Dolandırıcıları

If you are looking for an English version of this article, please visit here. Uzun yıllardan beri sosyal ağları ve medyayı etkin kullanan bir siber güvenlik araştırmacısı olarak bağlantılarım arasında yer alanlarınız özellikle hafta içi LinkedIn ve Twitter üzerinden okuduğum ve beğendiğim siber güvenlik makalelerini, haberleri paylaştıklarımı farkediyorlardır. Twitter hesabımın…
Read More
Read More

Profilime Kim Baktı?

If you are looking for an English version of this article, please visit here. 23 Eylül 2020 tarihinde Twitter’da siber güvenlik ile ilgili haberlere göz gezdirirken gündem olan başlıklarda #profilimekimbaktı etiketi dikkatimi çekti. Beni oldukça şüphelendiren bu etiketin gündem olmasının arkasında yatan sebebi bulmak için bu etiketi paylaşan hesaplara göz…
Read More