Manual DeObfuscation

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Techniki Deobfuskacji Manualnej

W dziedzinie bezpieczeństwa oprogramowania proces rozumienia zaciemnionego kodu, znany jako deobfuskacja, jest kluczowy. Przewodnik ten omawia różne strategie deobfuskacji, skupiając się na technikach analizy statycznej i rozpoznawaniu wzorców obfuskacji. Ponadto, przedstawia ćwiczenie do praktycznego zastosowania i sugeruje dalsze materiały dla zainteresowanych bardziej zaawansowanymi tematami.

Strategie dla Statycznej Deobfuskacji

Podczas pracy z zaciemnionym kodem można zastosować kilka strategii, w zależności od charakteru obfuskacji:

  • Kod bajtowy DEX (Java): Jednym skutecznym podejściem jest zidentyfikowanie metod deobfuskacji aplikacji, a następnie odtworzenie tych metod w pliku Java. Ten plik jest uruchamiany w celu odwrócenia obfuskacji na wybranych elementach.

  • Kod Java i natywny: Inną metodą jest przetłumaczenie algorytmu deobfuskacji na język skryptowy, tak jak Python. Ta strategia podkreśla, że głównym celem nie jest pełne zrozumienie algorytmu, ale jego skuteczne wykonanie.

Rozpoznawanie Obfuskacji

Rozpoznanie zaciemnionego kodu jest pierwszym krokiem w procesie deobfuskacji. Kluczowe wskaźniki obejmują:

  • Brak lub mieszanie ciągów znaków w języku Java i Android, co może sugerować obfuskację ciągów znaków.

  • Obecność plików binarnych w katalogu zasobów lub wywołania DexClassLoader, sugerujące rozpakowywanie kodu i dynamiczne ładowanie.

  • Użycie bibliotek natywnych wraz z niezidentyfikowalnymi funkcjami JNI, wskazujące na potencjalną obfuskację metod natywnych.

Analiza Dynamiczna w Deobfuskacji

Wykonując kod w kontrolowanym środowisku, analiza dynamiczna pozwala na obserwację zachowania zaciemnionego kodu w czasie rzeczywistym. Metoda ta jest szczególnie skuteczna w odkrywaniu wewnętrznego działania złożonych wzorców obfuskacji, które mają na celu ukrycie prawdziwego zamiaru kodu.

Zastosowania Analizy Dynamicznej

  • Deszyfrowanie w czasie wykonywania: Wiele technik obfuskacji polega na szyfrowaniu ciągów znaków lub segmentów kodu, które są deszyfrowane tylko w czasie wykonywania. Dzięki analizie dynamicznej można przechwycić te zaszyfrowane elementy w momencie deszyfrowania, ujawniając ich prawdziwą postać.

  • Rozpoznawanie Technik Obfuskacji: Monitorując zachowanie aplikacji, analiza dynamiczna może pomóc w identyfikacji konkretnych technik obfuskacji, takich jak wirtualizacja kodu, pakiery lub dynamiczna generacja kodu.

  • Odkrywanie Ukrytej Funkcjonalności: Zaciemniony kod może zawierać ukryte funkcje, które nie są widoczne tylko poprzez analizę statyczną. Analiza dynamiczna pozwala na obserwację wszystkich ścieżek kodu, w tym tych warunkowo wykonanych, aby odkryć taką ukrytą funkcjonalność.

Odwołania i Dalsza Lektura

  • BlackHat USA 2018: „Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]

  • Ta prezentacja omawia proces inżynierii wstecznej jednej z najbardziej skomplikowanych bibliotek anty-analizy używanych przez aplikację na platformie Android. Dotyczy głównie technik obfuskacji w kodzie natywnym.

  • REcon 2019: „The Path to the Payload: Android Edition” [video]

  • Ta prezentacja omawia serię technik obfuskacji, wyłącznie w kodzie Java, które wykorzystywała botnet na platformie Android do ukrywania swojego zachowania.

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated