# Smali - Decompiling/\[Modifying]/Compiling
{% hint style="success" %}
Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
рдХрднреА-рдХрднреА рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рддрд╛рдХрд┐ рдЖрдк рдЫрд┐рдкреА рд╣реБрдИ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХреЗрдВ (рд╢рд╛рдпрдж рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкреЗ рд╣реБрдП рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ рдЭрдВрдбреЗ)ред рдлрд┐рд░, рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк apk рдХреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░реЗрдВ, рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВред
**Opcodes reference:** [http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html](http://pallergabor.uw.hu/androidblog/dalvik\_opcodes.html)
## Fast Way
**Visual Studio Code** рдФрд░ [APKLab](https://github.com/APKLab/APKLab) рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХрдорд╛рдВрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ **рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбрд┐рдХрдВрдкрд╛рдЗрд▓**, рд╕рдВрд╢реЛрдзрд┐рдд, **рд╕рдВрдХрд▓рд┐рдд**, рд╕рд╛рдЗрди рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдПрдХ рдФрд░ **рд╕реНрдХреНрд░рд┐рдкреНрдЯ** рдЬреЛ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИ рд╡рд╣ рд╣реИ [**https://github.com/ax/apk.sh**](https://github.com/ax/apk.sh)
## Decompile the APK
APKTool рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк **smali рдХреЛрдб рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ** рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ:
```bash
apktool d APP.apk
```
рдпрджрд┐ **apktool** рдЖрдкрдХреЛ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ, рддреЛ [**рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг**](https://ibotpeaches.github.io/Apktool/install/) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдХреБрдЫ **рджрд┐рд▓рдЪрд╕реНрдк рдлрд╝рд╛рдЗрд▓реЗрдВ рдЬрд┐рди рдкрд░ рдЖрдкрдХреЛ рдзреНрдпрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП**:
* _res/values/strings.xml_ (рдФрд░ рд╕рднреА xmls рдЬреЛ res/values/* рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ)
* _AndroidManifest.xml_
* рдХреЛрдИ рднреА рдлрд╝рд╛рдЗрд▓ рдЬрд┐рд╕рдХрд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди _.sqlite_ рдпрд╛ _.db_ рд╣реИред
рдпрджрд┐ `apktool` рдХреЛ **рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдХреЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ**, рддреЛ [https://ibotpeaches.github.io/Apktool/documentation/#framework-files](https://ibotpeaches.github.io/Apktool/documentation/#framework-files) рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдпрд╛ **`-r`** (рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдбрд┐рдХреЛрдб рди рдХрд░реЗрдВ) рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдлрд┐рд░, рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдХрд┐рд╕реА рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рдереА рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА (рдЖрдк рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рднреА рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ)ред
## Smali рдХреЛрдб рдмрджрд▓реЗрдВ
рдЖрдк **рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ**, рдХреБрдЫ рдЪрд░ рдХреЗ **рдорд╛рди** рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ **рдирдП рдирд┐рд░реНрджреЗрд╢ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ**ред рдореИрдВ Smali рдХреЛрдб рдХреЛ [**VS Code**](https://code.visualstudio.com) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрджрд▓рддрд╛ рд╣реВрдБ, рдлрд┐рд░ рдЖрдк **smalise рдПрдХреНрд╕рдЯреЗрдВрд╢рди** рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдкрд╛рджрдХ рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдХреЛрдИ **рдирд┐рд░реНрджреЗрд╢ рдЧрд▓рдд рд╣реИ**ред\
рдХреБрдЫ **рдЙрджрд╛рд╣рд░рдг** рдпрд╣рд╛рдБ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ:
* [Smali рдкрд░рд┐рд╡рд░реНрддрди рдЙрджрд╛рд╣рд░рдг](smali-changes.md)
* [Google CTF 2018 - Shall We Play a Game?](google-ctf-2018-shall-we-play-a-game.md)
рдпрд╛ рдЖрдк [**рдиреАрдЪреЗ рдХреБрдЫ Smali рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ**](smali-changes.md#modifying-smali)ред
## APK рдХреЛ рдкреБрдирдГ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ
рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдк рдХреЛрдб рдХреЛ **рдкреБрдирдГ рд╕рдВрдХрд▓рд┐рдд** рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
```bash
apktool b . #In the folder generated when you decompiled the application
```
рдпрд╣ **dist** рдлрд╝реЛрд▓реНрдбрд░ рдХреЗ _**рднреАрддрд░**_ рдирдП APK рдХреЛ **рд╕рдВрдХрд▓рд┐рдд** рдХрд░реЗрдЧрд╛ред
рдпрджрд┐ **apktool** рдПрдХ **рддреНрд░реБрдЯрд┐** рдлреЗрдВрдХрддрд╛ рд╣реИ, рддреЛ [**рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг**](https://ibotpeaches.github.io/Apktool/install/) рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
### **рдирдП APK рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ**
рдлрд┐рд░, рдЖрдкрдХреЛ рдПрдХ **рдХреА** **рдЬрдирд░реЗрдЯ** рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдкрд╕реЗ рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб рдФрд░ рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдорд╛рдВрдЧреА рдЬрд╛рдПрдЧреА рдЬрд┐рд╕реЗ рдЖрдк рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рд░реВрдк рд╕реЗ рднрд░ рд╕рдХрддреЗ рд╣реИрдВ):
```bash
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias
```
рдЕрдВрдд рдореЗрдВ, **рд╕рд╛рдЗрди** рдХрд░реЗрдВ рдирдП APK рдХреЛ:
```bash
jarsigner -keystore key.jks path/to/dist/*
```
### рдирдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЕрдиреБрдХреВрд▓рди
**zipalign** рдПрдХ рдЖрд░реНрдХрд╛рдЗрд╡ рд╕рдВрд░реЗрдЦрдг рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди (APK) рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдиреБрдХреВрд▓рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред [рдпрд╣рд╛рдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА](https://developer.android.com/studio/command-line/zipalign)ред
```bash
zipalign [-f] [-v] infile.apk outfile.apk
zipalign -v 4 infile.apk
```
### **рдирдП APK рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░реЗрдВ (рдлрд┐рд░ рд╕реЗ?)**
рдпрджрд┐ рдЖрдк [**apksigner**](https://developer.android.com/studio/command-line/) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ **рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ** рдмрдЬрд╛рдп jarsigner рдХреЗ, **рддреЛ рдЖрдкрдХреЛ apk рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП** zipalign рдХреЗ рд╕рд╛рде **рдЕрдиреБрдХреВрд▓рди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж**ред рд▓реЗрдХрд┐рди рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ **рдПрдХ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛ рд╣реИ** jarsigner рдХреЗ рд╕рд╛рде (zipalign рд╕реЗ рдкрд╣рд▓реЗ) рдпрд╛ aspsigner рдХреЗ рд╕рд╛рде (zipalign рдХреЗ рдмрд╛рдж)ред
```bash
apksigner sign --ks key.jks ./dist/mycompiled.apk
```
## Smali рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Hello World Java рдХреЛрдб рдХреЗ рд▓рд┐рдП:
```java
public static void printHelloWorld() {
System.out.println("Hello World")
}
```
Smali рдХреЛрдб рд╣реЛрдЧрд╛:
```java
.method public static printHelloWorld()V
.registers 2
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
const-string v1, "Hello World"
invoke-virtual {v0,v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V
return-void
.end method
```
The Smali instruction set is available [here](https://source.android.com/devices/tech/dalvik/dalvik-bytecode#instructions).
### Light Changes
### рдХрд┐рд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЪрд░ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ
рдХреБрдЫ рдЪрд░ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ _const_ рдСрдкрдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕рдХреЗ рдорд╛рдиреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдирдП рдорд╛рди рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
```bash
#Number
const v9, 0xf4240
const/4 v8, 0x1
#Strings
const-string v5, "wins"
```
### рдмреБрдирд┐рдпрд╛рджреА рд╕рдВрдЪрд╛рд▓рди
```bash
#Math
add-int/lit8 v0, v2, 0x1 #v2 + 0x1 and save it in v0
mul-int v0,v2,0x2 #v2*0x2 and save in v0
#Move the value of one object into another
move v1,v2
#Condtions
if-ge #Greater or equals
if-le #Less or equals
if-eq #Equals
#Get/Save attributes of an object
iget v0, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Save this.o inside v0
iput v0, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Save v0 inside this.o
#goto
:goto_6 #Declare this where you want to start a loop
if-ne v0, v9, :goto_6 #If not equals, go to: :goto_6
goto :goto_6 #Always go to: :goto_6
```
### рдмрдбрд╝реЗ рдкрд░рд┐рд╡рд░реНрддрди
### рд▓реЙрдЧрд┐рдВрдЧ
```bash
#Log win:
iget v5, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I #Get this.o inside v5
invoke-static {v5}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; #Transform number to String
move-result-object v1 #Move to v1
const-string v5, "wins" #Save "win" inside v5
invoke-static {v5, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I #Logging "Wins: "
```
Recommendations:
* рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдШреЛрд╖рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ (declared v0,v1,v2...) рддреЛ рдЗрди рд▓рд╛рдЗрдиреЛрдВ рдХреЛ _.local \_ рдФрд░ рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдШреЛрд╖рдгрд╛рдУрдВ (_const v0, 0x1_) рдХреЗ рдмреАрдЪ рд░рдЦреЗрдВред
* рдпрджрд┐ рдЖрдк рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЛрдб рдХреЗ рдмреАрдЪ рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдХреЛрдб рдбрд╛рд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:
* рдШреЛрд╖рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 2 рдЬреЛрдбрд╝реЗрдВ: рдЙрджрд╛рд╣рд░рдг: _.locals 10_ рд╕реЗ _.locals 12_ред
* рдирдП рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рдШреЛрд╖рд┐рдд рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЗ рдЕрдЧрд▓реЗ рдирдВрдмрд░ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП (рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ _v10_ рдФрд░ _v11_ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ v0 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ)ред
* рд▓реЙрдЧрд┐рдВрдЧ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХреЛрдб рдХреЛ рдмрджрд▓реЗрдВ рдФрд░ _v10_ рдФрд░ _v11_ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ _v5_ рдФрд░ _v1_ рдХреЗ рдмрдЬрд╛рдпред
### Toasting
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ _.locals_ рдХреА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ 3 рдЬреЛрдбрд╝реЗрдВред
рдпрд╣ рдХреЛрдб **рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмреАрдЪ рдореЗрдВ** рдбрд╛рд▓реЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ (**рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░** **рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕** рдХреА **рд╕рдВрдЦреНрдпрд╛** рдмрджрд▓реЗрдВ)ред рдпрд╣ **this.o** рдХрд╛ **рдорд╛рди** рд▓реЗрдЧрд╛, **рдЗрд╕реЗ** **String** рдореЗрдВ **рдкрд░рд┐рд╡рд░реНрддрд┐рдд** рдХрд░реЗрдЧрд╛ рдФрд░ рдлрд┐рд░ рдЗрд╕рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ **toast** **рдмрдирд╛рдПрдЧрд╛**ред
```bash
const/4 v10, 0x1
const/4 v11, 0x1
const/4 v12, 0x1
iget v10, p0, Lcom/google/ctf/shallweplayagame/GameActivity;->o:I
invoke-static {v10}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v11
invoke-static {p0, v11, v12}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v12
invoke-virtual {v12}, Landroid/widget/Toast;->show()V
```
{% hint style="success" %}
рд╕реАрдЦреЗрдВ рдФрд░ AWS рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
рд╕реАрдЦреЗрдВ рдФрд░ GCP рд╣реИрдХрд┐рдВрдЧ рдХрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
* [**рд╕рджрд╕реНрдпрддрд╛ рдпреЛрдЬрдирд╛рдПрдБ**](https://github.com/sponsors/carlospolop) рджреЗрдЦреЗрдВ!
* **рд╣рдорд╛рд░реЗ рд╕рд╛рде рдЬреБрдбрд╝реЗрдВ** ЁЯТм [**Discord рд╕рдореВрд╣**](https://discord.gg/hRep4RUj7f) рдпрд╛ [**рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рд╕рдореВрд╣**](https://t.me/peass) рдпрд╛ **рд╣рдореЗрдВ** **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** рдкрд░ рдлреЙрд▓реЛ рдХрд░реЗрдВред**
* **рд╣реИрдХрд┐рдВрдЧ рдЯреНрд░рд┐рдХреНрд╕ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░** [**HackTricks**](https://github.com/carlospolop/hacktricks) рдФрд░ [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) рдЧрд┐рдЯрд╣рдм рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдореЗрдВ PR рд╕рдмрдорд┐рдЯ рдХрд░реЗрдВред
{% endhint %}