Pwdec
merhabayın

MobileAppSec / Android Statik Analiz #2


[
Konular :
Statik Analiz Nedir
Ortamın Kurulumu
Bytecode, Compile, Decompile, Compile ve Decompiler
Decompile Nasıl Yapılır
Giriş Seviyesinde Mobil Uygulamalarda Zararlı Yazılım Analizi




Statik Analiz Nedir ?
Android uygulamaları veya oyunları Java , C , C++ , Kotlin ,XML gibi dillerle yazılabilir fakat en yaygın kullanılanı Java dır. Örneğin java ile APK olarak çıktı alınmış (compile) bir uygulamayı java koduna döndürme işlemini (decompile) yapabilmekteyiz. Bu kodları analiz etmeye ,hata ayıklamaya statik analiz denir. Kaynak kod analizi gibi de düşünebilirsiniz.


Ortamın Kurulumu
Insecure Bank Kurulumu :


Android için ben scrcpy kullanacağım yani direkt olarak kendi telefonumu yansıtıp testleri gerçekleştireceğim. Ayrıca Linux işletim sistemli bir sisteminiz olursa daha iyi olur. Virtualbox kullanıyorsanız genymotion, vmware kullanıyorsanız android x86 kurup android i de sanal olarak kullanabilirsiniz.



Bytecode, Compile, Decompile, Compile ve Decompiler


• Java bytecode, Java Programlama Dili’nde Java derleyicinin Java kodlarını makine dili yerine kendi alternatif biçime derlediği bytecode adı verilen binary dosyadır. Bu program Java Sanal Makinesi adı verilen bir hayali bilgisayarın makine kodunu yaratır.
• Compile kelimesinin türkçe anlamı derlemedir, Compiler da derleyici oluyor. Peki derlemek ne demek ? Derlemek kelimesini bir örnekle anlatmak istiyorum örneğin bir windows makineniz var exe destekler, android OS apk ya da Linux makineler .deb destekler Bunlar arttırılabilir android üzerinden devam edecek olursam misal siz bir java ile android uygulaması yazdınız ve derlediniz bunu apk yaptınız yani buna compile deniyor.
• Decompile ise tahmin edeceğiniz üzere compile kelimesinin tam zıttı olmakta. Yine aynı örnekten devam ediyorum, bu sefer bir apk yani android paket kurulum dosyanız var siz bunu java kodlarına çevirirseniz bu da decompile oluyor. Decompiler ise bu aşamaya diyebiliriz.



Decompile Nasıl Yapılır?

En basit şekilde apk sıkılaştırılmış bir zip gibi düşünün zip i unzip (rardan çıkarma) işlemini yapabiliyoruz değil mi ? Yani uygulamanın uzantısını .apk den .zip e çevirip unzip (rardan çıkarma) yapabilir ve kodlara ulaşabilirsiniz veya linux üzerinde unzip dosyadi.apk şeklinde de yapabilirsiniz. Örneğimize bakalım ;



**** – INF: Kaynak isimleri, sertifia dosyaları gibi dosyaları tutar.
Res : Web sitelerinde gördüğünüz assets gibi düşünebiliriz kaynaklar.
AndroidManifest.xml : Sizden istenilen izinlerini tutan bir xml dosyası.
Classes.dex : Java uygulumasının bytecode hali
Resources.arsc : Kaynakların derlenmiş hallerini barındırır.

Decompile için online olarak siteler de kullanılabilir ;




Giriş Seviyesinde Mobil Uygulamalarda Zararlı Yazılım Analizi



Aslında virustotal candır İzinleri, sertifikaları,sdk sürümünü hangi antivirüslerin virüs olarak yakaladığını bize sunuyor


Share

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir