hacktricks/mobile-pentesting/android-app-pentesting/manual-deobfuscation.md

65 lines
6 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów GitHub.
2022-04-28 16:01:33 +00:00
</details>
2024-02-11 01:46:25 +00:00
## Techniki **Deobfuskacji Manualnej**
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
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.
2024-02-11 01:46:25 +00:00
### **Strategie dla Statycznej Deobfuskacji**
2024-02-11 01:46:25 +00:00
Podczas pracy z **zaciemnionym kodem** można zastosować kilka strategii, w zależności od charakteru obfuskacji:
2024-02-11 01:46:25 +00:00
- **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.
2024-02-11 01:46:25 +00:00
### **Rozpoznawanie Obfuskacji**
2024-02-11 01:46:25 +00:00
Rozpoznanie zaciemnionego kodu jest pierwszym krokiem w procesie deobfuskacji. Kluczowe wskaźniki obejmują:
2024-02-11 01:46:25 +00:00
- **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.
2024-02-11 01:46:25 +00:00
## **Analiza Dynamiczna w Deobfuskacji**
2024-02-11 01:46:25 +00:00
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.
2024-02-11 01:46:25 +00:00
### **Zastosowania Analizy Dynamicznej**
2024-02-11 01:46:25 +00:00
- **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ść.
2024-02-11 01:46:25 +00:00
## Odwołania i Dalsza Lektura
2024-02-03 14:45:32 +00:00
* [https://maddiestone.github.io/AndroidAppRE/obfuscation.html](https://maddiestone.github.io/AndroidAppRE/obfuscation.html)
2024-02-11 01:46:25 +00:00
* BlackHat USA 2018: „Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” \[[video](https://www.youtube.com/watch?v=s0Tqi7fuOSU)]
* 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](https://recon.cx/media-archive/2019/Session.005.Maddie_Stone.The_path_to_the_payload_Android_Edition-J3ZnNl2GYjEfa.mp4)]
* Ta prezentacja omawia serię technik obfuskacji, wyłącznie w kodzie Java, które wykorzystywała botnet na platformie Android do ukrywania swojego zachowania.
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów GitHub.
2022-04-28 16:01:33 +00:00
</details>