# 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 %}