yaoteng / myhunter (Polski)

####Uwaga: ciąg funkcji jest bardzo ważny. Może ulec zmianie wraz z rozwojem usług hartowania. Jeśli jest nieprawidłowy, proces rozpakowywania nie może zostać uruchomiony. DexHunter wykorzystuje „fwrite” i inne funkcje libc do manipulowania plikami. Ale te funkcje są uzależnione od hartowania usług, co powoduje crash procesu. W rezultacie nie można wykorzystać dostarczonego obrazu do rozpakowania najnowszych usług hardedning. Lepiej zastąp te funkcje bezpośrednimi wywołaniami systemowymi, aby uniknąć awarii.,

DexHunter ma na celu automatyczne rozpakowanie pliku DEX.

DexHunter jest oparty na kodzie źródłowym Android runtime. Składa się z modified ART i DVM runtime. Możesz użyć zmodyfikowanego środowiska wykonawczego, aby zastąpić oryginalną zawartość kodów źródłowych Androida(Android 4.4.3). Modyfikacja jest głównie w „art / runtime/class_linker.cc” (ART) i „dalvik/vm/native / dalvik_system_DexFile.cpp ” (DVM).

###użycie:

Jeśli chcesz rozpakować aplikację, musisz wcisnąć plik „dexname” do „/data/” w telefonie komórkowym przed uruchomieniem aplikacji., Pierwsza linia w ” dexname „to ciąg funkcji (nawiązujący do” slide.pptx”). Druga linia to ścieżka danych docelowej aplikacji (np. ” / data/data / com.test.test/”). Jego końcówka powinna być w stylu Unix / Linux. Możesz obserwować dziennik za pomocą „logcat”, aby określić, czy procedura rozpakowywania została zakończona. Po wykonaniu, wygenerowany ” całość.dex ” plik jest pożądany wynik, który znajduje się w katalogu danych aplikacji.

###porady:

  1. DexHunter po prostu wykorzystuje zawartość przed sekcją „class_def” zamiast analizować ją pod kątem wydajności., Jeśli są jakieś problemy, możesz je przeanalizować i ponownie zmontować lub zmodyfikować statycznie.

  2. warto zauważyć, że niektóre pola „annotation_off” lub „debug_info_off” mogą być nieprawidłowe W wyniku. Te pliki nie mają nic wspólnego z wykonaniem tylko po to, aby utrudnić dekompilację. Na razie nie zajmujemy się tą sytuacją. Możesz po prostu zaprogramować kilka skryptów, aby ustawić nieprawidłowe pliki za pomocą 0x00000000.,

  3. jak wiadomo, niektóre usługi hartowania mogą chronić kilka metod w pliku dex, przywracając instrukcje tuż przed wykonaniem i usuwając je tuż po zakończeniu. Dlatego też musisz zmodyfikować funkcję „doinvoke” (ART) lub „dvmMterp_invokeMethod” (DVM), aby wyodrębnić chronioną instrukcję podczas wykonywania.

4) ciąg funkcji może ulec zmianie wraz z rozwojem usług hartowania.

5)Jeśli „fwrite” i inne funkcje libc zawiodą, być może te funkcje są uzależnione od utwardzania serwerów., W rezultacie nie można zrzucać za ich pośrednictwem pamięci. Możesz ominąć to ograniczenie, wywołując bezpośrednio odpowiednie wywołania systemowe.

DexHunter ma swoje ograniczenia. W miarę rozwoju usług hartowania DexHunter może nie być skuteczny w przyszłości. Jeśli jesteś zainteresowany, możesz zmienić DexHunter, aby stale nadążać za usługami hartowania.

###Opis pliku:

„demo.mp4” to film demonstracyjny rozpakowujący utwardzoną aplikację autorstwa Ali.

” test.apk ” to próbka użyta w filmie.

„dexname” jest plikiem konfiguracyjnym używanym w filmie.,

katalog”art” jest zmodyfikowanym środowiskiem wykonawczym dla art.

katalog”dalvik” jest zmodyfikowanym runtime dla DVM.

pliki”image” 7z zawierają pliki obrazów systemowych używane w filmie.

w razie jakichkolwiek pytań proszę o kontakt mailowy na adres [email protected].

Jeśli używasz tego kodu, Zacytuj poniższy artykuł. Dzięki!

Yueqian Zhang, Xiapu Luo i Haoyang Yin, DexHunter: Toward Extracting Hidden Code from Packed Android Applications, Proceedings of the 20th European Symposium on Research in Computer Security (ESORICS), Wiedeń, Austria, Wrzesień 2015.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Przejdź do paska narzędzi