#####NOTĂ: șir caracteristică este foarte importantă. Acesta poate fi schimbat odată cu evoluția serviciilor de întărire. Dacă este incorect, procesul de despachetare nu poate fi declanșat. DexHunter folosește „fwrite” și alte funcții libc pentru a manipula fișierele. Dar aceste funcții sunt agățate de serviciile de întărire care duc la prăbușirea procesului. Drept urmare, nu puteți utiliza imaginea furnizată pentru a despacheta cele mai recente servicii hardedning. Ar fi bine să înlocuiți aceste funcții cu apelurile directe ale sistemului pentru a evita prăbușirea.,DexHunter are ca scop despachetarea fișierului DEX întărit automat.DexHunter se bazează pe codul sursă al Android runtime. Acesta este compus din artă modificată și DVM runtime. Puteți utiliza runtime modificat pentru a înlocui conținutul original în codurile sursă Android (Android 4.4.3). Modificarea este în principal în „art/runtime/class_linker.cc” (artă) și „dalvik/vm/native / dalvik_system_DexFile.cpp „(DVM).dacă doriți să despachetați o aplicație, trebuie să împingeți fișierul” dexname „în” /data/ ” din mobil înainte de a porni aplicația., Prima linie din ” dexname „este șirul de caracteristici (referindu-se la” slide.pptx”). A doua linie este calea de date a aplicației țintă (de exemplu, „/data/data/com.test.test/”). Terminarea liniei sale ar trebui să fie în stilul Unix/Linux. Puteți observa Jurnalul folosind „logcat” pentru a determina dacă procedura de despachetare este terminată. Odată terminat, generat ” întreg.fișierul ” dex ” este rezultatul dorit care se află în directorul de date al aplicației.
###Sfaturi:
-
DexHunter pur și simplu reutilizează conținutul înainte „class_def” secțiune în loc de parsare le eficiența., Dacă există unele probleme, le puteți analiza și reasambla din nou sau le puteți modifica static.este demn de remarcat faptul că unele câmpuri „adnotation_off” sau „debug_info_off” pot fi invalide în rezultat. Aceste fișiere nu au nimic de-a face cu execuția doar pentru a împiedica decompilarea. Nu ne ocupăm de această situație în mod special pentru moment. Puteți programa doar câteva scripturi pentru a seta fișierele nevalide cu 0x00000000.,după cum se știe, unele servicii de întărire pot proteja mai multe metode în fișierul dex restabilind instrucțiunile chiar înainte de a fi executate și ștergându-le imediat după terminare. Deci, de asemenea, trebuie să modificați funcția „DoInvoke” (ART) sau „dvmMterp_invokeMethod” (DVM) pentru a extrage instrucțiunea protejată în timp ce este executată.
4)șirul de caracteristici poate fi modificat odată cu evoluția serviciilor de întărire.5) în cazul în care „fwrite” și alte funcții libc nu reușesc, poate că aceste funcții sunt cuplate de sevices întărire., Drept urmare, nu puteți arunca memoria prin ele. Puteți ocoli această limitare apelând direct apelurile de sistem relevante.DexHunter are propria limitare. Pe măsură ce serviciile de întărire se dezvoltă, DexHunter poate să nu fie eficient în viitor. Dacă sunteți interesat, puteți modifica DexHunter pentru a ține pasul cu serviciile de întărire continuu.”demo. mp4″ este videoclipul demonstrativ al despachetării unei aplicații întărite de Ali.
„test.apk ” este eșantionul utilizat în videoclip.
„dexname” este fișierul de configurare utilizat în videoclip.,
„art” Director este runtime modificat pentru ART.
directorul”dalvik” este timpul de rulare modificat pentru DVM.
fișierele”image” 7z conțin fișierele de imagine de sistem utilizate în videoclip.
dacă aveți orice întrebare, vă rugăm să contactați-mă prin e-mailuri la [email protected].
dacă utilizați acest cod, vă rugăm să citați următoarea lucrare. Multumesc!
Yueqian Zhang, Xiapu Luo, și Haoyang Yin, DexHunter: Spre Extragerea Cod Ascuns din Plin Aplicații Android, Procedurile de 20 European Simpozionul de Cercetare în Securitate informatică (ESORICS), Viena, Austria, septembrie 2015.