Araç ne sağlar?
Manifest, sınıflar, yöntemler ve çağrı ilişkileri programatik olarak incelenebilir. API ve özellikler sürümler arasında değiştiği için betikler belirli sürümle sabitlenmelidir.
Uygulamada nasıl değerlendirilir?
Kendi uygulama sürümlerinizde yeni izin veya sınıf kümelerini karşılaştıran bir analiz raporu oluşturabilirsiniz.
Sınırlar ve yaygın hatalar
Statik çağrı grafiği bütün dinamik yükleme ve reflection davranışını eksiksiz göstermeyebilir.
Kontrol listesi
- Kütüphane sürümünü sabitleyin
- Analiz hatalarını ayırın
- Dinamik akışı ayrıca doğrulayın
Karar verirken
Androguard, Python bilen ekipler için tekrarlanabilir paket incelemesinde değerlidir; kendi başına RASP sağlamaz.
Python otomasyonunda küçük ve denetlenebilir çıktı
İlk otomasyon için bütün uygulamayı puanlamaya çalışmak yerine izin envanteri veya paket kimliği gibi dar bir görev seçin. Girdi dosyasını değiştirmeden inceleyin; ayrıştırma başarısızlığına boş ve başarılı rapor muamelesi yapmayın.
APK içindeki birden çok DEX veya beklenmeyen paket yapısı betiğin varsayımlarını etkileyebilir. Örnek uygulamalarla hata koşullarını deneyin ve kütüphane sürümünü sabitleyin. Ortaya çıkan rapor geliştirme ekibine değişen alanı ve dosya kimliğini göstermelidir.
İlgili rehberler: pytest ile mobil güvenlik yardımcılarını doğrulama, Android exported bileşenler.
Bir Python APK envanterinde hangi alanlar olmalı?
Androguard ile bir rapor yazmadan önce çıktı sözleşmesini belirleyin. Paket kimliği, sürüm, izinler ve analiz durumu gibi alanlar başka araçlar tarafından işlenecekse isim ve türleri tutarlı olmalıdır. Araç yükseltmesi bu sözleşmeyi sessizce değiştirmemelidir.
| Alan | Amacı |
|---|---|
| Dosyanın SHA-256 özeti | Raporu belirli dosya baytlarına bağlamak |
| Paket ve sürüm bilgisi | Uygulama envanterinde doğru kaydı bulmak |
| İzin listesi | Sürümler arasındaki yetenek değişimini incelemek |
| Analiz aracı sürümü | API ve ayrıştırma farkını araştırmak |
| Durum ve hata açıklaması | Başarısız analizin temiz sonuç sanılmasını önlemek |
Aşağıdaki bağımsız Python örneği yalnızca dosya kimliği üretir; APK manifestini çözümlemez ve güvenlik puanı vermez. Büyük dosyayı bütünüyle belleğe almadan SHA-256 hesaplamak için standart kütüphane kullanır.
from hashlib import sha256
from pathlib import Path
import sys
paket = Path(sys.argv[1])
ozet = sha256()
with paket.open("rb") as dosya:
for blok in iter(lambda: dosya.read(1024 * 1024), b""):
ozet.update(blok)
print(ozet.hexdigest())Bu kimliği Androguard analiz sonucuyla aynı kayda ekleyebilirsiniz. Kullandığınız Androguard sürümünün API belgesini esas alın; eski 3.x örneklerindeki modül yolları yeni sürümlerle aynı olmayabilir. Ayrıştırma hataları testlerle görünür tutulmalıdır.
Kaynaklar ve kapsam
Teknik özelliklerin başvuru noktaları aşağıdadır. Uygulama örneği ve kontrol listesi bu yayın için hazırlanmış değerlendirme önerileridir; bağımsız ürün testi sonucu değildir.