Articles

How To Reverse Engineer An Android Application In 3 Easy Steps

Varun Dwarkani
Varun Dwarkani

Follow

Sep 12, 2020 · 3 min read

Reverse Engineer Android Application

Many beginners or even intermediate Android developers fail to realize that the Android app budują i wysyłają mogą być w większym stopniu inżynierii odwrotnej. Jeśli jesteś jednym z programistów, którzy myślą twardo-kodowanie tajnych kluczy, a nawet przechowywanie go w kompilacji.plik gradle zapobiegnie przedostaniu się w ręce hakerów lub innych programistów, mylisz się.

Bezpieczeństwo nigdy nie było łatwe i pierwszą zasadą jest, aby nigdy nie ufać bezpieczeństwu po stronie klienta. Po stronie klienta nie kontrolujemy środowiska, dlatego nie powinniśmy polegać na nim poprzez twarde kodowanie lub przechowywanie tajemnic, które mogą zakłócić nasz system. Najlepszym sposobem, aby upewnić się, że nie zostaniesz złapany przez programistów i hakerów, jest samodzielna Inżynieria wsteczna aplikacji i rozwiązanie problemów, jeśli to możliwe.

ciekawy incydent — kiedyś pracowałem nad aplikacją na Androida, która wymagała użycia formuły matematycznej w funkcji. Nielubiąc matematyki do rdzenia, okazało się, że łatwiej i ciekawiej inżynieria odwrotna jednej z aplikacji konkurentów, a następnie z powodzeniem usunąłem formułę matematyczną z kodu! :p

więc zaczynajmy. Do inżynierii odwrotnej aplikacji, będziemy potrzebować kilka rzeczy wcześniej –

  1. APK aplikacji.
  2. zestaw kodów do wykonania.
  3. Java Decompiler Tool (JD JUI w tym artykule) do przeglądania zdekompilowanego kodu.

podstawowe zrozumienie aplikacji na Androida. Źródło-Pranay Airan.

potrzebujemy APK aplikacji, którą chcemy odwrócić. Istnieje wiele sposobów, aby to zrobić, ale zasugeruję prosty sposób tutaj. Pobierz aplikację APK Extractor na urządzenie i wybierz aplikację z listy wewnątrz aplikacji. Po zakończeniu otwórz Eksplorator plików i przejdź do folderu ExtractedApks znajdującego się w katalogu pamięci wewnętrznej. Tam znajdziesz APK. Skopiuj ten plik APK do systemu, a my wykonamy poniższe kroki.

drugi krok –

gdy mamy APK, będziemy go odwrócić, aby wiedzieć i zobaczyć kod. Umożliwi nam to i da nam wgląd w strukturę kodu, a także znajdzie środki bezpieczeństwa, które podjęli, aby uniknąć ataku inżynierii odwrotnej.

tutaj zmienimy nazwę naszej {aplikacji}.plik apk do {app}.zapnij i rozpakuj. Wewnątrz wyodrębnionego folderu znajdziemy klasy.plik dex zawierający kod aplikacji.

plik DEX jest plikiem wykonywalnym, który zawiera skompilowany kod i działa na platformie Android.

teraz użyjemy klas.plik dex wzięliśmy z pliku zip APK i przekonwertowaliśmy go na JAR. W tym celu możemy użyć narzędzia open-source’ owego 'dex2jar’ dostępnego tutaj. Przejdź do sekcji wydania i pobierz najnowszy dostępny plik zip i rozpakuj go. Skopiuj wyodrębnione klasy.plik dex i wklej go do katalogu 'dex2jar-x. x’.

Otwórz Terminal na swoim komputerze i przejdź do katalogu 'dex2jar-x. x’. Teraz uruchomimy polecenie –

d2j-dex2jar.klasy nietoperzy.dex

spowoduje to konwersję klas.plik dex do pliku JAR, który możemy wyświetlić za pomocą dowolnego narzędzia Dekompilatora.

Trzeci krok —

użyjemy JD JUI, który jest prostym narzędziem do dekompilacji Javy. Możesz dostać to stąd. Pobierz i rozpakuj zip. Uruchom jd-gui.exe i otwórz plik dex i Voila! Odwrócona konstrukcja aplikacji!!

dekompilowana aplikacja na Androida kod źródłowy