#####upozornění: řetězec funkcí je velmi důležitý. To může být změněno spolu s vývojem kalení služeb. Pokud je nesprávný, nelze proces rozbalení spustit. DexHunter využívá“ fwrite “ a další libc funkce pro manipulaci se soubory. Tyto funkce jsou však spojeny vytvrzovacími službami, které vedou k selhání procesu. V důsledku toho nemůžete využít poskytnutý obrázek k rozbalení nejnovějších služeb hardedning. Měli byste tyto funkce lépe nahradit přímými systémovými hovory, abyste se vyhnuli havárii.,
DexHunter se zaměřuje na automatické rozbalení tvrzeného souboru dex.
DexHunter je založen na zdrojovém kódu runtime systému Android. Skládá se z modifikovaného umění a běhu DVM. Upravený runtime můžete použít k nahrazení původního obsahu ve zdrojových kódech Android (Android 4.4.3). Modifikace je převážně v „art / runtime / class_linker. cc“ (ART) a „dalvik/vm/native/dalvik_system_DexFile.cpp “ (DVM).
# # použití:
Pokud chcete rozbalit aplikaci, musíte před spuštěním aplikace stisknout soubor „dexname“ na „/data/“ v mobilu., První řádek v “ dexname „je řetězec funkcí (odkazující na“ slide.pptx“). Druhým řádkem je datová cesta cílové aplikace (např. “ / data / data / com.test.test/“). Jeho konec linky by měl být ve stylu Unix/Linux. Protokol můžete sledovat pomocí „logcat“, abyste zjistili, zda je postup rozbalení dokončen. Jakmile je hotovo, generovaný “ celek.dex “ soubor je požadovaný výsledek, který je umístěn v datovém adresáři aplikace.
###Tipy:
-
DexHunter jednoduše použije obsah, než „class_def“ bod místo parsování je pro efektivitu., Pokud se vyskytnou nějaké problémy, můžete je znovu analyzovat a znovu sestavit nebo staticky změnit.
-
je třeba poznamenat, že některá pole“ anotation_off „nebo“ debug_info_off “ mohou být ve výsledku neplatná. Tyto soubory nemají nic společného s prováděním, jen aby bránily dekompilaci. Tuto situaci zatím neřešíme konkrétně. Stačí naprogramovat některé skripty pro nastavení neplatných souborů pomocí 0x0000000.,
-
jak je známo, některé kalící služby mohou chránit několik metod v souboru dex obnovením pokynů těsně před provedením a jejich otřením těsně po dokončení. Takže musíte také upravit funkci“ DOINVOKE „(ART) nebo“ dvmMterp_invokeMethod “ (DVM) pro extrahování chráněné instrukce při provádění.
4)řetězec funkcí může být změněn spolu s vývojem kalení.
5) Pokud funkce“ fwrite “ a další funkce libc selžou, možná jsou tyto funkce zahnuty vytvrzením sevices., Výsledkem je, že přes ně nemůžete vypustit paměť. Toto omezení můžete obejít přímým voláním příslušných systémových hovorů.
DexHunter má své vlastní omezení. Jak se vyvíjejí kalicí služby, DexHunter nemusí být v budoucnu účinný. Máte-li zájem, můžete změnit DexHunter držet krok s kalení služby nepřetržitě.
###popis souboru:
„demo. mp4“ je demonstrační video rozbalení tvrzené aplikace Ali.
„test.apk “ je vzorek použitý ve videu.
„dexname“ je konfigurační soubor používaný ve videu.,
„art“ adresář je upravený runtime pro ART.
adresář“dalvik“ je upravený runtime pro DVM.
„image“ 7z soubory obsahují obrazové soubory systému používané ve videu.
Máte-li jakékoli dotazy, kontaktujte mě prostřednictvím e-mailů na [email protected].
Pokud používáte tento kód, uveďte následující článek. Díky!
Yueqian Zhang, Xiapu Luo, a Haoyang Yin, DexHunter: K Extrahování Skrytých Kód z Balené Android Aplikací, Sborník z 20. Evropské Sympozium o Výzkumu v oblasti Počítačové Bezpečnosti (ESORICS), Vídeň, Rakousko, září 2015.