Android Uygulama Yapısı
APK iç yapısı
Android Uygulama Yapısı, CoddyKit'te ücretsiz bir Ethical Hacking Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ethical Hacking Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ethical Hacking Academy kursu toplamda 4 dersten oluşur.
APK Dosyası
Bir Android uygulaması APK (Android Paketi) olarak dağıtılır. Aslında derlenmiş kodu, kaynakları ve üst verileri içeren bir ZIP arşividir.
ZIP olduğu için içeriğini incelemek üzere dosyaları kolayca açabilirsiniz; bu, mobil sızma testinin ilk adımıdır.
unzip app.apk -d app_extracted/APK'nın İçeriği
Çıkarılmış bir APK şunları içerir:
AndroidManifest.xml: uygulama yapılandırması.classes.dex: derlenmiş bayt kodu.res/veresources.arsc: kaynaklar.lib/: yerel kitaplıklar.META-INF/: imzalama bilgileri.
Manifest
AndroidManifest.xml, uygulamanın bileşenlerini, izinlerini ve yapılandırmasını bildirir. APK içinde, araçların çözebileceği ikili XML biçimindedir.
Bir uygulamanın saldırı yüzeyini anlamak için en önemli dosyadır.
DEX ve Çalışma Zamanı
Java/Kotlin kaynak kodu, classes.dex içinde DEX (Dalvik Yürütülebilir) bayt koduna derlenir. Modern Android bunu ART (Android Runtime) aracılığıyla çalıştırır.
DEX, okunabilir koda geri dönüştürülebilir; APK'lerin statik analizinde bundan yararlanılır.
Dört Bileşen
Android uygulamaları dört bileşen türünden oluşturulur:
- Etkinlikler: ekranlar / kullanıcı arayüzü.
- Hizmetler: arka plan çalışmaları.
- Yayın Alıcıları: sistem olaylarına yanıt verir.
- İçerik Sağlayıcıları: uygulamalar arasında veri paylaşır.
Dışa Aktarılmış Bileşenler
android:exported="true" olarak işaretlenen bir bileşen, diğer uygulamalar tarafından çağrılabilir. Böyle bir bileşen denetim olmadan hassas işlemler gerçekleştirirse bir saldırı yüzeyi oluşturur.
Sızma testi uzmanları, veri sızdıran veya ayrıcalıklı işlemler gerçekleştiren dışa aktarılmış etkinlikleri, hizmetleri ve sağlayıcıları arar.
<activity android:name=".AdminActivity" android:exported="true"/>İzinler
Uygulamalar manifestte izinler ister (örneğin INTERNET, READ_SMS, ACCESS_FINE_LOCATION).
Aşırı geniş izinler, riskli davranışa veya gereğinden fazla veri erişimine işaret eder. Özel izinler de yetkisiz erişime izin verecek şekilde yanlış yapılandırılabilir.
<uses-permission android:name="android.permission.READ_SMS"/>Uygulama Korumalı Alanı
Android, her uygulamayı benzersiz bir Linux UID ile kendi korumalı alanında yalıtır. Varsayılan olarak uygulamalar birbirlerinin verilerini okuyamaz.
Uygulamalar bu sınırı zayıflattığında; örneğin dosyaları herkesin okuyabileceği şekilde bıraktığında veya sağlayıcıları dışarı açtığında güvenlik açıkları ortaya çıkar.
Uygulama Veri Depolama
Yüklü bir uygulama özel verilerini /data/data/<package>/ altında depolar: veritabanları, paylaşılan tercihler ve dosyalar.
Bir sızma testi uzmanı, root edilmiş bir cihazda veya yedekler aracılığıyla bu dizini güvenli olmayan biçimde saklanan gizli bilgiler açısından inceler; sonraki ders bunu ele alacaktır.
/data/data/com.example.app/İmzalama
Her APK dijital olarak imzalanır; imza META-INF/ içinde bulunur. Android, yükleme ve güncelleme sırasında bu imzayı doğrular.
Bir uygulamayı değiştirip yeniden paketlerseniz onu yeniden imzalamanız gerekir; geliştiricilerin kurcalamayı tespit etmek için imzalamaya güvenmesinin nedeni budur.
Yerel Kitaplıklar
Performans açısından kritik veya gizlenmiş mantık, C/C++ ile derlenmiş yerel kitaplıklarda (.so dosyaları) ve lib/ altında bulunabilir.
Bunlar DEX içinde yer almaz; bu nedenle yerel demontaj araçlarıyla ayrı bir analiz gerektirir. Geliştiriciler bazen yerel kodun incelenmesinin daha zor olduğuna yanlışlıkla inanarak gizli bilgileri burada saklar.
lib/arm64-v8a/libnative.soHızlı Kontrol
Bir bileşeni diğer uygulamalara açan manifest özniteliğini hatırlayın.
Özet
Artık Android uygulama yapısını anlıyorsunuz:
- Bir APK,
AndroidManifest.xml,classes.dex, kaynakları ve imzalama verilerini içeren bir ZIP'tir. - Uygulamalar dört bileşen kullanır; dışa aktarılmış bileşenler saldırı yüzeyidir.
- İzinler ve uygulamaya özel korumalı alan erişimi yönetir; özel veriler
/data/data/içinde bulunur. - APK'ler kurcalamayı tespit etmek için imzalanır.
Sırada bir APK'yı statik analizle dekompile edeceksiniz.
Sıkça Sorulan Sorular
“Android Uygulama Yapısı” dersi ücretsiz mi?
Evet — “Android Uygulama Yapısı” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ethical Hacking Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ethical Hacking Academy kursu toplamda 4 dersten oluşur.
“Android Uygulama Yapısı” dersinde ne öğreneceğim?
APK iç yapısı Ethical Hacking Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Ethical Hacking Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Ethical Hacking Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Android Uygulama Yapısı” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Ethical Hacking Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Ethical Hacking Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Android Uygulama Yapısı
- APK'lerin Statik Analizi
- Frida ile Dinamik Analiz
- Güvensiz Depolama ve İletişim