####meddelande: funktionssträngen är mycket viktig. Det kan ändras tillsammans med utvecklingen av härdningstjänster. Om det är felaktigt kan uppackningsprocessen inte utlösas. DexHunter utnyttjar ”fwrite” och andra libc-funktioner för att manipulera filer. Men dessa funktioner är anslutna genom härdningstjänster vilket resulterar i kraschen av processen. Som ett resultat kan du inte använda den medföljande bilden för att packa upp de senaste hardedning-tjänsterna. Du hade bättre ersätta dessa funktioner med direkta systemanrop för att undvika krasch.,
dexhunter syftar till att packa upp härdad Dex-fil automatiskt.
dexhunter är baserad på källkoden för Android runtime. Den består av modifierad konst och DVM runtime. Du kan använda den modifierade runtime för att ersätta det ursprungliga innehållet i Android källkoder (Android 4.4.3). Modifieringen är främst i ” art / runtime / class_linker. cc ”(ART) och ” dalvik/vm/native/dalvik_system_DexFile.CPP ” (DVM).
##användning:
om du vill packa upp en app måste du trycka filen ”dexname” till ”/ data / ” i mobilen innan du startar appen., Den första raden i ” dexname ”är funktionssträngen (hänvisar till” slide.pptx”). Den andra raden är Sökvägen för mål-appen (t. ex. ” / data/data / com.test.test/”). Dess linjeändning ska vara i stil med Unix / Linux. Du kan observera loggen med ”logcat” för att avgöra om uppackningsproceduren är klar. En gång gjort, den genererade ” hela.Dex ” – filen är det önskade resultatet som finns i appens datakatalog.
##Tips:
-
DexHunter återanvänder helt enkelt innehållet före avsnittet ”class_def” istället för att analysera dem för effektiviteten., Om det finns några problem kan du analysera och montera dem igen eller ändra dem statiskt.
-
det är värt att notera att vissa ”annotation_off” eller ”debug_info_off” – fält kan vara ogiltiga i resultatet. Dessa filed har inget att göra med avrättning bara för att hindra dekompilering. Vi hanterar inte denna situation specifikt för tillfället. Du kan bara programmera några skript för att ställa in de ogiltiga filerna med 0x00000000.,
-
som det är känt kan vissa härdningstjänster skydda flera metoder i Dex-filen genom att återställa instruktionerna strax innan de exekveras och torka dem strax efter avslutad. Så du måste också ändra funktionen” DoInvoke ”(ART) eller” dvmMterp_invokeMethod ” (DVM) för att extrahera den skyddade instruktionen medan den utförs.
4)funktionssträngen kan ändras tillsammans med utvecklingen av härdningstjänster.
5)om ”fwrite” och andra libc-funktioner misslyckas, kanske dessa funktioner är anslutna genom härdningstjänster., Som ett resultat kan du inte dumpa minnet via dem. Du kan kringgå denna begränsning genom att ringa relevanta systemanrop direkt.
DexHunter har sin egen begränsning. När härdningstjänsterna utvecklas kan DexHunter inte vara effektiva i framtiden. Om du är intresserad kan du ändra DexHunter för att hålla jämna steg med härdningstjänster kontinuerligt.
##Filbeskrivning:
”demo.mp4” är demonstrationsvideon för att packa upp en härdad app av Ali.
”test.apk ” är provet som används i videon.
”dexname” är konfigurationsfilen som används i videon.,
”art” – katalogen är den modifierade runtime för ART.
”dalvik” katalogen är den modifierade runtime för DVM.
”image” 7z filer innehåller systembildfiler som används i videon.
om du har några frågor, kontakta mig via e-post till [email protected].
om du använder den här koden, ange följande papper. Tackar!
Yueqian Zhang, Xiapu Luo, och Haoyang Yin, DexHunter: Mot Utvinna Dold Kod från Fullmatad Android-Applikationer, Proceedings of the 20th European Symposium om Forskning i datasäkerhet (ESORICS), Wien, Österrike, September 2015.