<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
Manchmal ist es interessant, den Anwendungscode zu modifizieren, um auf versteckte Informationen zuzugreifen (vielleicht gut verschleierte Passwörter oder Flags). In diesem Fall kann es interessant sein, die APK zu dekompilieren, den Code zu modifizieren und ihn anschließend neu zu kompilieren.
Mit **Visual Studio Code** und der Erweiterung [APKLab](https://github.com/APKLab/APKLab) können Sie die Anwendung automatisch dekompilieren, den Code modifizieren, neu kompilieren, signieren und installieren, ohne einen Befehl auszuführen.
Wenn `apktool`**Probleme beim Dekodieren der Anwendung** hat, werfen Sie einen Blick auf [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) oder versuchen Sie, das Argument **`-r`** zu verwenden (Ressourcen nicht dekodieren). Wenn das Problem in einer Ressource und nicht im Quellcode lag, haben Sie das Problem nicht (Sie dekodieren auch nicht die Ressourcen).
Sie können **Anweisungen ändern**, den **Wert** einiger Variablen ändern oder neue Anweisungen **hinzufügen**. Ich ändere den Smali-Code mit [**VS Code**](https://code.visualstudio.com). Sie installieren dann die **smalise-Erweiterung** und der Editor zeigt Ihnen an, ob eine **Anweisung falsch ist**.\
**zipalign** ist ein Archivausrichtungswerkzeug, das wichtige Optimierungen für Android-Anwendungsdateien (APK) bietet. [Weitere Informationen hier](https://developer.android.com/studio/command-line/zipalign).
Wenn du **lieber** [**apksigner**](https://developer.android.com/studio/command-line/) anstelle von jarsigner verwenden möchtest, **solltest du die APK** nach der Anwendung der **Optimierung mit** zipalign signieren. ABER BEACHTE, DASS DU DIE ANWENDUNG NUR EINMAL MIT jarsigner (vor zipalign) ODER MIT apksigner (nach zipalign) **SIGNIEREN MUSST**.
Um eine Android-App zu hacken, müssen wir den Smali-Code ändern. Smali ist eine Assemblersprache für die Dalvik Virtual Machine (DVM), die von Android verwendet wird. Hier sind einige grundlegende Operationen, die wir durchführen können:
- **Ändern von Konstanten**: Wir können die Werte von Konstanten ändern, um das Verhalten der App zu beeinflussen.
- **Ändern von Methodenaufrufen**: Wir können Methodenaufrufe ändern, um die App dazu zu bringen, andere Funktionen auszuführen oder bestimmte Bedingungen zu umgehen.
- **Ändern von Variablen**: Wir können Variablenwerte ändern, um das Verhalten der App zu beeinflussen.
- **Hinzufügen von Code**: Wir können zusätzlichen Code einfügen, um neue Funktionen zur App hinzuzufügen oder vorhandenen Code zu erweitern.
- **Entfernen von Code**: Wir können Code entfernen, um bestimmte Funktionen der App zu deaktivieren oder zu umgehen.
Diese grundlegenden Operationen ermöglichen es uns, den Smali-Code einer Android-App zu manipulieren und sie für unsere Zwecke anzupassen. Es ist wichtig, vorsichtig vorzugehen und die Auswirkungen unserer Änderungen zu verstehen, um unerwünschte Nebenwirkungen zu vermeiden.
* Wenn Sie deklarierte Variablen innerhalb der Funktion verwenden möchten (deklariert v0, v1, v2...), platzieren Sie diese Zeilen zwischen _.local \<Zahl>_ und den Deklarationen der Variablen (_const v0, 0x1_)
* Wenn Sie den Protokollierungscode in der Mitte des Codes einer Funktion platzieren möchten:
* Fügen Sie 2 zur Anzahl der deklarierten Variablen hinzu: z.B. von _.locals 10_ zu _.locals 12_
* Die neuen Variablen sollten die nächsten Zahlen der bereits deklarierten Variablen sein (in diesem Beispiel sollten es _v10_ und _v11_ sein, denken Sie daran, dass es mit v0 beginnt).
* Ändern Sie den Code der Protokollierungsfunktion und verwenden Sie _v10_ und _v11_ anstelle von _v5_ und _v1_.
Dieser Code ist darauf vorbereitet, in der **Mitte einer Funktion** eingefügt zu werden (**ändern** Sie die Anzahl der **Variablen** bei Bedarf). Er nimmt den **Wert von this.o**, **wandelt** ihn in einen **String** um und **zeigt** dann einen **Toast** mit seinem Wert an.
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.