ANDROID MOBİL
UYGULAMA
DENETİMİ EĞİTİMİ
blog.btrisk.com @btrisk /btrisktv /btrisk
BTRİSK HAKKINDA
TANIŞMA
Pentest & BT Denetimi
ISO27001 Danışmanlık
Hizmetleri
BG Operasyon
Hizmetleri
Göreviniz, Deneyiminiz ve Eğitimden Beklentileriniz
Nelerdir?
TANIŞMA
Web Sunucusu
Tarayıcı (Browser)
Web Sunucusu
Uygulama Sunucusu
Veritabanı
Sunucusu
XML Veri Deposu / Konfigürasyon Dosyaları
Web Servisi
Soket Servisi
Diğer Sunucular
WEB UYGULAMA MİMARİSİ
Web Sunucusu
Tarayıcı (Browser)
Web Sunucusu
Uygulama Sunucusu
Veritabanı
Sunucusu
XML Veri Deposu / Konfigürasyon Dosyaları
Web Servisi
Soket Servisi
Diğer Sunucular
WEB UYGULAMA AÇIKLIKLARI
XSS
SQL Injection
Insecure Direct Object
Reference (IDOR)
CSRF
Sunucu Açıklıkları
İstemci Bilgisayarında
Güvensiz Veri Saklama
LDAP, SMTP, Command
v.d. Injection
Kontrolsüz Yönlendirme
Oturum Yönetim
Açıklıkları
Erişim Kontrol
Açıklıkları
Güvenlik Fonksiyonalite
Yetersizliği
Mantık
Hataları
Güvensiz İletişim
Üçüncü Taraflara
Bilgi Sızdırma
Local File
Inclusion (LFI)
Web Sunucusu
Web Sunucusu
Uygulama Sunucusu
Veritabanı
Sunucusu
XML Veri Deposu / Konfigürasyon Dosyaları
Web Servisi
Soket Servisi
Diğer Sunucular
MOBİL UYGULAMA MİMARİSİ
Mobil Cihaz (OS)
Native Uygulama
Lokal dosyalar, veritabanları, saklama alanları
Web Sunucusu
Web Sunucusu
Uygulama Sunucusu
Veritabanı
Sunucusu
XML Veri Deposu / Konfigürasyon Dosyaları
Web Servisi
Soket Servisi
Diğer Sunucular
MOBİL UYGULAMA MİMARİSİ
Mobil Cihaz (OS)
Native Uygulama
Lokal dosyalar, veritabanları, saklama alanları
AndroidiOS
JavaObjective
C
HTTP/S
EĞİTİM
KAPSAMI
EĞİTİM
KAPSAMI
ANDROID İŞLETİM SİSTEMİ
Neye benzer, nasıl hissettirir?
ANDROID İŞLETİM SİSTEMİ
Linux (Android) Kernel
Boot Loader
Dalvik VM
Uygulamalar Android API
Native Kütüphaneler
GömülüSistem
Mimarisi
ARM
Assembly
DEX
Smali
ANDROID İŞLETİM SİSTEMİ STARTUP İŞLEMİ
Boot
Loader
Kernel
Init Demons
Zygote
Runtime
Dalvik
VM
System
Servers
Managers
Service
Manager
İlk Java kodları
ANDROID ROOTING
Boot
Loader
Kernel
Init Demons
Zygote
Runtime
Dalvik
VM
System
Servers
Managers
Service
Manager
İlk Java kodları
SYSTEM.IMG
"su" uygulaması
UNLOCK
ANDROID GÜVENLİK MİMARİSİ
• Root'lanmamış bir cihaz için root erişimi mümkün
değildir, çünkü "su" uygulaması sistem üzerinde
bulunmaz.
• Her Android uygulaması kurulduğunda kendine ait
bir Android ID'ye sahip olur ve bu kullanıcı hakları ile
çalışır. Her uygulama kendine ait dizindeki verilere
erişebilir. Ancak SDCard'a veri yazılması halinde
diğer uygulamalar da erişebilir.
• Bizim sistem imajı üzerinde değişiklik yapabilmek ve
uygulama dizinlerine erişebilmek için "root"
erişimine ihtiyacımız var.
UYGULAMA DİLİ DÖNÜŞÜMLERİ
JAVA SMALI
ARM
Assembly
Android Studio
Eclipse Dalvik VM
JAVA
Bytecode
ARM
(Makine)
CİHAZ
GELİŞTİRME ORTAMI
DALVIK VIRTUAL MACHINE
SINIF TARTIŞMASI
• Android Linux türevi bir işletim sistemi ise ve
Android uygulamaları Java dilinde geliştiriliyorsa
neden JVM değilde Dalvik VM gibi bir teknoloji
kullanılıyor?
DALVIK VIRTUAL MACHINE
Neden DVM?
• JVM hakkında Google ve Oracle arasındaki lisans
problemi
• Hafıza kullanımı ve performans verimlilik ihtiyacının
mobil cihazlarda daha yüksek olması
ARM (Advanced Risk Machines)
SINIF TARTIŞMASI
• Mobil cihazlarda ARM işlemcilerin tercih edilmesinin
özel bir nedeni olabilir mi?
ARM (Advanced Risk Machines)
Neden ARM?
• ARM mimarisi Reduced Instruction Set Computing
(RISC) mimarisine uygun olduğu için instruction sayıları
daha az ve instruction uzunlukları standarttır.
• Bu ve diğer dizayn özellikleri nedeniyle ARM işlemciler
x86 işlemcilere göre daha az güç tüketirler.
• ARM işlemcilerin kısıtlı güç imkanlarına sahip gömülü
sistemlerde tercih edilmesinin nedeni düşük enerji
tüketimidir.
MOBİL UYGULAMA FONKSİYONALİTESİ
SINIF TARTIŞMASI
• Mobil uygulamalardan temel fonksiyonel
beklentilerimiz nelerdir?
ANDROID UYGULAMA BİLEŞENLERİ
İhtiyaç ANDROID Bileşeni
Menü görüntüleme ve girdi işleme ACTIVITY
Cihaz üzerinde olan diğer olaylardan
haberdar olma ve otomatik olarak
aktif hale gelme
BROADCAST RECEIVER
Activity arka plana atılmış olsa bile
aktif kalabilme
SERVICE
Diğer uygulamalara bir sorgulama
veya URL formatında bir istek
arayüzü sağlama
CONTENT PROVIDER
UYGULAMA ERİŞİM İZİNLERİ
• AndroidManifest.XML
• http://developer.android.com/reference/android/Man
ifest.permission.html
ANDROID UYGULAMAMIZ (BTR MOBILE)
• BTR Mobile Web, Android
ve iOS Mobil
Uygulamalarımız güvenlik
eğitimlerimizde test ortamı
amacıyla BTRisk tarafından
geliştirilmiştir.
• Bu uygulamalar bir mobil
operatörün Online İşlem
Merkezi (OIM) hizmetini
simüle etmektedir.
UYGULAMA KURULUMU VE AYARLAR
• API Level 19 AVD (Uygulamanın ARM bağımlılığı yok)
• adb install BTRMobile.apk
• Cihaz üzerindeki /system partition'ının RW olarak
remount edilmesi (# mount –o rw,remount /system)
• Cihaz üzerindeki /etc/hosts dosyasına btrmobile (web
servisleri) sunucu IP adresinin girilmesi
• Web servis sunucusu üzerindeki Apache SSL
ayarlarının yapılması ve sunucu özel anahtarı ile
sertifikasının ilgili dizinlere eklenmesi (ref. btriskblog
Android SSL Pinning Hakkında Herşey makalesi)
UYGULAMA KURULUMU VE AYARLAR
UYGULAMA KURULUMU VE AYARLAR
UYGULAMA KURULUMU VE AYARLAR
BTR MOBILE
BTR MOBILE
ROOT KONTROLÜNÜ AŞMA
SINIF TARTIŞMASI
• Test edeceğimiz uygulamayı neden Root'lu bir
ortamda çalıştırmaya ihtiyacımız olabilir?
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜNÜ AŞMA
İLK ÇALIŞACAK
AKTİVİTE
ROOT KONTROLÜNÜ AŞMA
DEX2JAR
ROOT KONTROLÜNÜ AŞMA
JDGUI DEX2JAR
ROOT KONTROLÜNÜ AŞMA
ROOT KONTROLÜ
YAPILAN BÖLÜM
ROOT KONTROLÜNÜ AŞMA
SEÇENEKLERİMİZ
1 2
Kontrol mantığını incele
Cihaz üzerinde gerekli düzenlemeleri yap
Uygulamayı SMALI seviyesinde yamala
ROOT KONTROLÜNÜ AŞMA 1
/system/build.props
dosyası içindeki
ro.build.tags=test-keys
satırı değiştirilir
Dosya adı
değiştirilir
"su" dosya adı
değiştirilir
ROOT KONTROLÜNÜ AŞMA 2
ROOT KONTROLÜNÜ AŞMA
YAMALANAN
BÖLÜM
2
ROOT KONTROLÜNÜ AŞMA 2
YENİDEN
DERLE
KODU
İMZALA
ROOT KONTROLÜNÜ AŞMA 2
MEVCUT
UYGULAMAYI
KALDIR
ROOT KONTROLÜNÜ AŞMA 2
İMZALI
UYGULAMAYI
KUR
ROOT KONTROLÜNÜ AŞMA 2
ROOT
KONTROLÜ
AŞILDI
ATTACK PROXY İLE ARAYA GİRME
ATTACK PROXY İLE ARAYA GİRME
BURP'ÜN
SUNUCUYU
BULABİLMESİ
İÇİN
ATTACK PROXY İLE ARAYA GİRME
ATTACK PROXY İLE ARAYA GİRME
CİHAZA
BURP CA
SERTİFİKASININ
YÜKLENMESİ
ATTACK PROXY İLE ARAYA GİRME
ATTACK PROXY İLE ARAYA GİRME
HATA
STACK TRACE
BİLGİSİ
POTANSİYEL
SUÇLU
SSL PINNING
BİZİM KODLARIMIZ
İÇİNDE HATANIN KAYNAĞI
PostClass.httpPostLogin metodu
ATTACK PROXY İLE ARAYA GİRME
STOREPASS
RESOURCE
DOSYA İSMİNİN
R SINIFI REFERANSI
JDB İLE DEBUG EDEREK
BULUNABİLECEK HATA SATIRI
httpPostLogin
METODU
ATTACK PROXY İLE ARAYA GİRME
RES/RAW DİZİNİ
ALTINDAKİ KEYSTORE
DOSYA ADI
ATTACK PROXY İLE ARAYA GİRME
X.509
SERTİFİKA EMARESİ
SSL PINNING'İ ATLATMA
SEÇENEKLERİMİZ
1 3
Keystore dosyasının içine Burp'ün
sertifikasını imzalayan CA sertifikasını
yerleştir
Uygulamayı SMALI seviyesinde yamala
2
SSL Pinning'i aşan bir hacker
aracı kullan
SSL PINNING'İ ATLATMA 1
Keystore dosyasını değiştirme (Bu örneğe özel
olmak kaydıyla aşağıdaki yöntem izlenir)
Adım-1:
Aşağıdaki adresten ilgili JAR paketi indirilir:
"http://repo2.maven.org/maven2/org/bouncycastle/bcprov-ext-
jdk15on/1.46/bcprov-ext-jdk15on-1.46.jar"
SSL PINNING'İ ATLATMA 1
Keystore dosyasını değiştirme (Bu örneğe özel
olmak kaydıyla aşağıdaki yöntem izlenir)
Adım-2:
Aşağıdaki işlem gerçekleştirilerek yeni keystore dosyası üretilir:
C:> keytool -importcert -v -trustcacerts -file "burpcert.pem"
-alias ca -keystore "btrkeystore.bks" -provider
org.bouncycastle.jce.provider.BouncyCastleProvider -
providerpath "bcprov-ext-jdk15on-1.46.jar" -storetype BKS -
storepass btrisk Uygulamanın kullandığı
keystore dosya adı
JAVA SDK ile
gelen keytool aracı Uygulamanın kullandığı
storepass değeri
Yeni keystore dosyasına
yerleştirmek istediğimiz
Burp sertifika dosyası
SSL PINNING'İ ATLATMA 1
Keystore dosyasını değiştirme (Bu örneğe özel
olmak kaydıyla aşağıdaki yöntem izlenir)
Adım-3:
APKTOOL ile açtığımız paket dizinlerinden keystore dosyasının saklandığı
aşağıdaki dizine yeni oluşturduğumuz dosya kopyalanır:
SSL PINNING'İ ATLATMA 1
Keystore dosyasını değiştirme (Bu örneğe özel
olmak kaydıyla aşağıdaki yöntem izlenir)
Adım-4:
Son olarak APKTOOL ile açılan paket tekrar derlenir ve yeni oluşturulan APK
paketi imzalanarak cihaza / emülatöre tekrar yüklenir.
SSL PINNING'İ ATLATMA 2
Android SSL Killer aracını kullanma
SSL PINNING'İ ATLATMA 2
Android SSL Killer aracını kullanma
• Android SSL Killer, Cydia Substrate for Android aracının
servislerinden faydalanır.
• Cydia Substrate kapalı kaynak kodlu bir yazılım olup içinde
native kütüphaneler barındırır ve (root'lu olması kaydıyla)
işletim seviyesi katmanında uyguladığı Rootkit yöntemleri
ile diğer Android uygulamaları tarafından kullanılabilecek bir
API sağlar.
SSL PINNING'İ ATLATMA 2
Android SSL Killer aracını kullanma
• Bu şekilde sistem kütüphanelerinde bulunan metodlar kendi
geliştireceğimiz kodlarla çalışma anında değiştirilebilir.
• Android SSL Killer, Cydia Substrate for Android aracının bu
özelliğinden faydalanarak sertifika ve sunucu kontrolü yapan
metodları bu kontrolü geçersiz kılacak metodlarla değiştirir.
SSL PINNING'İ ATLATMA 2
Android SSL Killer aracını kullanma
• ANCAK;
• Cydia Substrate for Android aracının desteği Android
versiyonu 4.3'e kadardır ve Emülatör'ü desteklemez.
SSL PINNING'İ ATLATMA 2
Android SSL Killer aracını kullanma
• EK OLARAK;
• SSL Pinning için farklı bir yöntem kullanılması halinde
yine tersine mühendislik yaparak bir çözüm bulmak
zorunda kalabilirsiniz.
SSL PINNING'İ ATLATMA 3
Uygulamayı yamalama getSocketFactory'nin
kullanıldığı 1. metod
"httpPostLogin"
SSL PINNING'İ ATLATMA 3
Uygulamayı yamalama getSocketFactory'nin
kullanıldığı 2. metod
"httpPost"
SSL PINNING'İ ATLATMA 3
httpPostLogin
metodu
SSL PINNING'İ ATLATMA 3
httpPostLogin
METODU
YAMASI
SSL PINNING'İ ATLATMA 3
YAMALANAN
BÖLÜM
Yaptığımız değişiklikten
etkilenen v19 ve v1 register'ları
tekrar sıfırlanıyor.
Bu nedenle kod mantığı
Etkilenmeyecek.
SSL PINNING'İ ATLATMA 3
httpPost
METODU
YAMASI
SSL PINNING'İ ATLATMA
YAMALANAN
BÖLÜM
Yaptığımız değişiklikten
etkilenen v17 ve v0 regıster'ları
tekrar sıfırlanıyor.
Bu nedenle kod mantığı
Etkilenmeyecek.
3
SSL PINNING'İ ATLATMA 3
UYGULAMAMIZI
KALDIRDIĞIMIZDAN
EMİN OLALIM
SSL PINNING'İ ATLATMA 3
SSL PINNING'İ ATLATMA
PROXY AYARLARIMIZIN
DOĞRULUĞUNDAN
EMİN OLALIM
3
SSL PINNING'İ ATLATMA 3
SSL PINNING'İ ATLATMA 3
SSL PINNING
KONTROLÜ
AŞILDI
SSL PINNING'İ ATLATMA 3
SSL PINNING
KONTROLÜ
AŞILDI
KRİPTOLU VERİLER
LOGIN İSTEK VERİSİ
AÇIK OLARAK İLETİLMİYOR
KRİPTOLU VERİLER
MAALESEF ENCODE
EDİLMİŞ GİBİ GÖRÜNMÜYOR
KRİPTOLU VERİLER STATİK
ANALİZ
KRİPTOLU VERİLER STATİK
ANALİZ
KRİPTOLU VERİLER STATİK
ANALİZ
Statik analiz sonrasında yapılacaklar
• Örnek veri alınır
• Statik analiz sırasında tespit edilen algoritma tersine
işletilecek şekilde bir uygulama olarak kodlanır
• Açık hale getirilen veri üzerinde gerekli değişiklikler
yapılarak tekrar kriptolama işlemi gerçekleştirilir ve veri
hedefe yollanır
• Eğer attack proxy üzerinde bu iş yapılmak isteniyorsa Burp
Extension'ı olarak bu kod geliştirilebilir, ancak yukarıdaki iş
yükünden daha az bir iş yükü olmayacaktır (Burp Extension'ı
geliştirme için btriskblog'daki makalemize bakınız)
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
ANDROID DEBUG ALTYAPISI
JVM
(Java Virtual Machine)
JDWP
(Java Debug Wire Protocol)
JVM
Tool Interface
JDI
Debug
Interface
DDMS
JDB
Debug Eden Debug Edilen
KRİPTOLU VERİLER DİNAMİK
ANALİZ
JDB ile debug işlemi (bağlantı hazırlığı)
• 1. Yöntem (manuel yöntem)
• Uygulamayı başlatmadan önce "adb jdwp" komutu ile
process id'lerini listeleriz.
• Aynı işlemi bir de uygulamayı başlattıktan sonra
gerçekleştirerek aradaki farkı görürüz. Yeni gelen
process id'si bizim bağlanmak istediğimiz id'dir.
• Daha sonra "adb forward tcp:9999 jdwp:8765"
gibi bir komutla uzaktaki debug agent üzerinden
proses'e bağlantı kanalını açarız.
KRİPTOLU VERİLER DİNAMİK
ANALİZ
JDB ile debug işlemi (bağlantı hazırlığı)
• 2. Yöntem (DDMS aracılığı ile)
• Uygulamayı başlatırız ve DDMS üzerinde yanında kırmızı
böcek işareti ile görürüz.
• Bu satır seçildiğinde DDMS bizim için otomatik olarak
"8700" TCP portunu proses'e bağlanmak üzere ayarlar.
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
JDB ile debug işlemi (bağlantı kurma)
• JAVA SDK ile gelen JDB aracı ile bağlantı kurma
jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8700
KRİPTOLU VERİLER DİNAMİK
ANALİZ
JDB ile debug işlemi (breakpoint koyma)
• Statik analizimizden gördük ki kriptolu verinin oluşturulduğu
metod adı "MCrypt" sınıfının "encrypt" metoduydu. Bu
metoda aşağıdaki gibi breakpoint koyabiliriz.
stop in com.btrisk.btrmobile.drawableslidermenu.MCrypt.encrypt
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
SMALI ile Log yazma
• SMALI kodunun kurallarına uygun olmak kaydıyla statik
analizden elde edindiğimiz bilgiyi kullanarak veri
kriptolanmadan hemen önce veriyi log'a yazabiliriz.
• Bu en temel debug yöntemi verinin kriptolanmadan önceki
halini görmemize imkan tanıyabilir.
KRİPTOLU VERİLER DİNAMİK
ANALİZ
KRİPTOLU VERİLER DİNAMİK
ANALİZ
IPC (InterProcess Communication) Saldırıları
Bu alandaki ilk örneğimiz Login View'ını kullanıcı tanımlama
adımını atlayarak bir sonraki View'ı görüntülemek (daha doğrusu
aktiviteyi çalıştırmak) olacak.
Mobil uygulamalarda kullanım ihtiyaçları dolayısıyla (notification
mekanizması, SMS geldiğinde haberdar olma, bir resmi bir
mesajlaşma uygulamasıyla gönderme gibi) Mobil platformların
IPC iletişim fonksiyonalitesi bulunuyor.
Eğer bu erişimler belli izinlerle kontrol edilmezse cihaz
üzerindeki herhangi bir uygulama diğer bir uygulamanın
bileşenlerini hayata geçirebilir.
IPC (InterProcess Communication) Saldırıları
İLK ÇALIŞTIRILACAK
OLAN AKTİVİTE
(.login)
IPC (InterProcess Communication) Saldırıları
login AKTİVİTESİ
İÇİNDEN ÇAĞRILAN
BİR SONRAKİ AKTİVİTE
(.MAINACTIVITY)
IPC (InterProcess Communication) Saldırıları
LOGIN AŞAMASINDAN
SONRA ÇAĞRILAN
AKTİVİTE (.MAINACTIVITY)
IPC (InterProcess Communication) Saldırıları
AKTİVİTE
ÇAĞIRMA
IPC (InterProcess Communication) Saldırıları
IPC (InterProcess Communication) Saldırıları
DOĞRUDAN
BTRMOBILE
UYGULAMASININ
ANA AKTİVİTESİNİ
AÇTIK
IPC (InterProcess Communication) Saldırıları
BTRMOBILE
UYGULAMAMIZ
BİR CONTENT
PROVIDER
İÇERİYOR
IPC (InterProcess Communication) Saldırıları
CONTENT PROVIDER'A
ERİŞMEK İÇİN KULLANILMASI
GEREKEN URI
IPC (InterProcess Communication) Saldırıları
FARKLI BİR UYGULAMADAN
BTRMOBILE'IN CONTENT
PROVIDER'INI SORGULUYORUZ
IPC (InterProcess Communication) Saldırıları
IPC (InterProcess Communication) Saldırıları
FARKLI BİR
UYGULAMADAN
BTRMOBILE
UYGULAMASININ
CONTENT PROVIDER
'INI SORGULAYARAK
BİLGİ ALABİLDİK
IPC (InterProcess Communication) Saldırıları
IPC testleri için bu alanda
özelleşmiş olan DROZER aracını
kullanabilirsiniz.
Sorgulanabilir bileşenleri analiz
ettikten sonra Content Provider
bileşenlerine yönelik SQL
Injection testlerini de bu araçla
yapabilirsiniz.
CİHAZ ÜZERİNDE SAKLANAN BİLGİLER
UYGULAMALARA ÖZEL
DİZİNLER
"/data/data/"
DİZİNİ ALTINDA
KENDİ ADLARINA
AÇILIR
CİHAZ ÜZERİNDE SAKLANAN BİLGİLER
SD CARD'a yazma ve okuma
• Uygulamalar SD Card'a gerekli permission'ları içermek kaydıyla
yazabilir ve SD Card'dan veri okuyabilir.
• Bu yüzden hassas uygulamaların SD Card'a yazmaları önerilmez.
CİHAZ ÜZERİNDE SAKLANAN BİLGİLER
SQLITE VERİTABANLARINDA
SAKLANABİLECEK HASSAS
BİLGİLER
CİHAZ ÜZERİNDE SAKLANAN BİLGİLER
SHARED PREFERENCES
DOSYALARINDA
SAKLANABİLECEK HASSAS
BİLGİLER
CİHAZ LOGLARINDA SIZAN BİLGİLER
READ_LOGS Permission'ı
• READ_LOGS permission'ının kullanımı Android 4.1 itibarıyla
kaldırılmıştır.
• Android cihazlar belli bir miktardaki log verisini barındırırlar ve
bu veriler yenileri geldikçe ezilir.
• Cihaza fiziksel erişimi bulunan kişiler USB Debugging Enabled
olmak koşuluyla loglara erişebilirler.
CİHAZ LOGLARINDA SIZAN BİLGİLER
CİHAZ LOGLARINDA SIZAN BİLGİLER
CİHAZ LOGLARINDA SIZAN BİLGİLER
"adb logcat"
CİHAZ ÜZERİNDE SAKLANAN BİLGİLER
DDMS
OBFUSCATION (KARMAŞIKLAŞTIRMA)
build.gradle
DOSYASI
OBFUSCATION (KARMAŞIKLAŞTIRMA)
OBFUSCATION (KARMAŞIKLAŞTIRMA)
OBFUSCATION (KARMAŞIKLAŞTIRMA)
DİĞER KONULAR
• Ekran resmi çekme ve Recent Apps
ekran görüntüleri
• Kontrolsüz gönderilen Broadcast
mesajları
blog.btrisk.com @btrisk /btrisktv /btrisk

BTRisk Android Mobil Uygulama Denetimi Eğitimi