diff --git a/src/mobile-pentesting/android-app-pentesting/android-task-hijacking.md b/src/mobile-pentesting/android-app-pentesting/android-task-hijacking.md
index d818bc664..b3d3f2a1a 100644
--- a/src/mobile-pentesting/android-app-pentesting/android-task-hijacking.md
+++ b/src/mobile-pentesting/android-app-pentesting/android-task-hijacking.md
@@ -11,7 +11,7 @@ Evo brzog pregleda prelaza između aktivnosti:
- **Activity 1** počinje kao jedina aktivnost u foreground-u.
- Pokretanje **Activity 2** pomera **Activity 1** u back stack, dovodeći **Activity 2** u foreground.
- Pokretanje **Activity 3** pomera **Activity 1** i **Activity 2** dalje nazad u stogu, pri čemu je **Activity 3** sada ispred.
-- Zatvaranje **Activity 3** vraća **Activity 2** nazad u foreground, prikazujući Androidov pojednostavljeni mehanizam navigacije kroz task.
+- Zatvaranje **Activity 3** vraća **Activity 2** nazad u foreground, prikazujući Androidov pojednostavljeni mehanizam navigacije kroz zadatke.
.png>)
@@ -23,21 +23,27 @@ U Android aplikacijama, **task affinity** specificira preferirani task aktivnost
### Launch Modes
-Atribut `launchMode` usmerava rukovanje instancama aktivnosti unutar taskova. **singleTask** režim je ključan za ovaj napad, određujući tri scenarija na osnovu postojećih instanci aktivnosti i podudaranja task affinity. Eksploatacija se oslanja na sposobnost napadačeve aplikacije da imitira task affinity ciljne aplikacije, obmanjujući Android sistem da pokrene napadačevu aplikaciju umesto nameravane mete.
+Atribut `launchMode` usmerava rukovanje instancama aktivnosti unutar zadataka. **singleTask** režim je ključan za ovaj napad, određujući tri scenarija na osnovu postojećih instanci aktivnosti i podudaranja task affinity. Eksploatacija se oslanja na sposobnost napadačeve aplikacije da imitira task affinity ciljne aplikacije, obmanjujući Android sistem da pokrene napadačevu aplikaciju umesto nameravane mete.
### Detailed Attack Steps
1. **Instalacija zlonamerne aplikacije**: Žrtva instalira napadačevu aplikaciju na svom uređaju.
2. **Prva aktivacija**: Žrtva prvo otvara zlonamernu aplikaciju, pripremajući uređaj za napad.
3. **Pokušaj pokretanja ciljne aplikacije**: Žrtva pokušava da otvori ciljnu aplikaciju.
-4. **Izvršenje otmice**: Zbog podudaranja task affinity, zlonamerna aplikacija se pokreće umesto ciljne aplikacije.
+4. **Izvršenje otmice**: U nekom trenutku aplikacija pokušava da otvori **singleTask** prikaz. Zbog podudaranja task affinity, zlonamerna aplikacija se pokreće umesto ciljne aplikacije.
5. **Obmana**: Zlonamerna aplikacija prikazuje lažni ekran za prijavu koji podseća na ciljnu aplikaciju, obmanjujući korisnika da unese osetljive informacije.
+> [!TIP]
+> Imajte na umu da za ovaj napad da bi funkcionisao, ranjivi prikaz **ne mora imati exported na true** niti mora biti glavna aktivnost.
+
Za praktičnu implementaciju ovog napada, pogledajte Task Hijacking Strandhogg repozitorijum na GitHub-u: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg).
### Prevention Measures
-Da bi se sprečili ovakvi napadi, programeri mogu postaviti `taskAffinity` na prazan string i odabrati `singleInstance` režim pokretanja, osiguravajući izolaciju svoje aplikacije od drugih. Prilagođavanje funkcije `onBackPressed()` pruža dodatnu zaštitu protiv otmice taska.
+Da bi sprečili takve napade, programeri mogu:
+- Postaviti **`**taskAffinity`** za **singleTask** prikaz na prazan string (`android:taskAffinity=""`)
+- Odabrati **`singleInstance`** režim pokretanja, osiguravajući izolaciju svoje aplikacije od drugih.
+- Prilagoditi funkciju **`onBackPressed()`** koja nudi dodatnu zaštitu protiv otmice zadataka.
## **References**
diff --git a/src/mobile-pentesting/android-app-pentesting/react-native-application.md b/src/mobile-pentesting/android-app-pentesting/react-native-application.md
index 21c83fe16..f684b4e6a 100644
--- a/src/mobile-pentesting/android-app-pentesting/react-native-application.md
+++ b/src/mobile-pentesting/android-app-pentesting/react-native-application.md
@@ -10,30 +10,72 @@ Da biste potvrdili da li je aplikacija izgrađena na React Native okviru, pratit
3. Koristite komandu `find . -print | grep -i ".bundle$"` da biste pretražili JavaScript datoteku.
-Da biste dalje analizirali JavaScript kod, kreirajte datoteku pod imenom `index.html` u istoj direktoriji sa sledećim kodom:
+## Javascript Kod
+
+Ako prilikom provere sadržaja `index.android.bundle` pronađete JavaScript kod aplikacije (čak i ako je minifikovan), možete **analizirati ga da pronađete osetljive informacije i ranjivosti**.
+
+Pošto paket zapravo sadrži sav JS kod aplikacije, moguće je **podeliti ga u različite datoteke** (potencijalno olakšavajući njegovo obrnuto inženjerstvo) koristeći **alat [react-native-decompiler](https://github.com/numandev1/react-native-decompiler)**.
+
+### Webpack
+
+Da biste dalje analizirali JavaScript kod, možete otpremiti datoteku na [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ili pratiti ove korake:
+
+1. Kreirajte datoteku pod imenom `index.html` u istoj fascikli sa sledećim kodom:
```html
```
-Možete da otpremite datoteku na [https://spaceraccoon.github.io/webpack-exploder/](https://spaceraccoon.github.io/webpack-exploder/) ili pratite ove korake:
+2. Otvorite `index.html` datoteku u Google Chrome-u.
-1. Otvorite `index.html` datoteku u Google Chrome-u.
+3. Otvorite Developer Toolbar pritiskom na **Command+Option+J za OS X** ili **Control+Shift+J za Windows**.
-2. Otvorite Developer Toolbar pritiskom na **Command+Option+J za OS X** ili **Control+Shift+J za Windows**.
-
-3. Kliknite na "Sources" u Developer Toolbar-u. Trebalo bi da vidite JavaScript datoteku koja je podeljena na foldere i datoteke, čineći glavni paket.
+4. Kliknite na "Sources" u Developer Toolbar-u. Trebalo bi da vidite JavaScript datoteku koja je podeljena na foldere i datoteke, čineći glavni paket.
Ako pronađete datoteku pod nazivom `index.android.bundle.map`, moći ćete da analizirate izvorni kod u nekompresovanom formatu. Map datoteke sadrže izvorno mapiranje, što vam omogućava da mapirate kompresovane identifikatore.
Da biste pretražili osetljive akreditive i krajnje tačke, pratite ove korake:
-1. Identifikujte osetljive ključne reči za analizu JavaScript koda. React Native aplikacije često koriste usluge trećih strana kao što su Firebase, AWS S3 krajnje tačke, privatni ključevi itd.
+1. Identifikujte osetljive ključne reči za analizu JavaScript koda. React Native aplikacije često koriste usluge trećih strana kao što su Firebase, AWS S3 usluge, privatni ključevi itd.
-2. U ovom konkretnom slučaju, primećeno je da aplikacija koristi Dialogflow uslugu. Potražite obrazac povezan sa njenom konfiguracijom.
+2. U ovom specifičnom slučaju, primećeno je da aplikacija koristi Dialogflow uslugu. Potražite obrazac povezan sa njenom konfiguracijom.
3. Bilo je sreće što su osetljivi hard-kodirani akreditive pronađeni u JavaScript kodu tokom recon procesa.
+### Promenite JS kod i ponovo izgradite
+
+U ovom slučaju, promena koda je jednostavna. Samo treba da preimenujete aplikaciju da koristi ekstenziju `.zip` i da je raspakujete. Zatim možete **modifikovati JS kod unutar ovog paketa i ponovo izgraditi aplikaciju**. Ovo bi trebalo da bude dovoljno da vam omogući da **ubacite kod** u aplikaciju u svrhe testiranja.
+
+## Hermes bytecode
+
+Ako paket sadrži **Hermes bytecode**, **nećete moći da pristupite JavaScript kodu** aplikacije (čak ni kompresovanoj verziji).
+
+Možete proveriti da li paket sadrži Hermes bytecode pokretanjem sledeće komande:
+```bash
+file index.android.bundle
+index.android.bundle: Hermes JavaScript bytecode, version 96
+```
+Međutim, možete koristiti alate **[hbctool](https://github.com/bongtrop/hbctool)**, **[hermes-dec](https://github.com/P1sec/hermes-dec)** ili **[hermes_rs](https://github.com/Pilfer/hermes_rs)** da **dezintegrirate bajtkod** i takođe da **dekompajlirate u neki pseudo JS kod**. Da biste to uradili, na primer, ove komande:
+```bash
+hbc-disassembler ./index.android.bundle /tmp/my_output_file.hasm
+hbc-decompiler ./index.android.bundle /tmp/my_output_file.js
+```
+### Promena koda i ponovna izgradnja
+
+Idealno bi bilo da možete da modifikujete disasemblirani kod (menjajući poređenje, ili vrednost ili šta god da treba da modifikujete) i zatim **ponovno izgradite bajtkod** i ponovo izgradite aplikaciju.
+
+Alat **[hbctool](https://github.com/bongtrop/hbctool)** podržava disasembliranje paketa i ponovnu izgradnju nakon što su promene izvršene, međutim **podržava samo stare verzije** Hermes bajtkoda.
+
+Alat **[hermes-dec](https://github.com/P1sec/hermes-dec)** ne podržava ponovnu izgradnju bajtkoda.
+
+Alat **[hermes_rs](https://github.com/Pilfer/hermes_rs)** podržava ponovnu izgradnju bajtkoda, ali je zapravo biblioteka, a ne CLI alat.
+
+## Dinamička analiza
+
+Možete pokušati da dinamički analizirate aplikaciju koristeći Frida da omogućite developerski režim React aplikacije i koristite **`react-native-debugger`** da se povežete na nju. Međutim, za ovo vam očigledno treba izvorni kod aplikacije. Više informacija o tome možete pronaći na [https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/](https://newsroom.bedefended.com/hooking-react-native-applications-with-frida/).
+
## Reference
- [https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7](https://medium.com/bugbountywriteup/lets-know-how-i-have-explored-the-buried-secrets-in-react-native-application-6236728198f7)
+- [https://www.assetnote.io/resources/research/expanding-the-attack-surface-react-native-android-applications](https://www.assetnote.io/resources/research/expanding-the-attack-surface-react-native-android-applications)
+- [https://payatu.com/wp-content/uploads/2023/02/Mastering-React-Native-Application-Pentesting-A-Practical-Guide-2.pdf](https://payatu.com/wp-content/uploads/2023/02/Mastering-React-Native-Application-Pentesting-A-Practical-Guide-2.pdf)
{{#include ../../banners/hacktricks-training.md}}
diff --git a/src/mobile-pentesting/android-app-pentesting/tapjacking.md b/src/mobile-pentesting/android-app-pentesting/tapjacking.md
index 9c37dacab..825a3369a 100644
--- a/src/mobile-pentesting/android-app-pentesting/tapjacking.md
+++ b/src/mobile-pentesting/android-app-pentesting/tapjacking.md
@@ -2,16 +2,17 @@
{{#include ../../banners/hacktricks-training.md}}
-
## **Osnovne informacije**
-**Tapjacking** je napad gde se **maliciozna** **aplikacija** pokreće i **pozicionira iznad aplikacije žrtve**. Kada vidljivo zakloni aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje s njom, dok zapravo prosleđuje interakciju aplikaciji žrtve.\
+**Tapjacking** je napad gde se **maliciozna** **aplikacija** pokreće i **pozicionira iznad aplikacije žrtve**. Kada vidljivo zakloni aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje sa njom, dok zapravo prosleđuje interakciju aplikaciji žrtve.\
U suštini, to **oslepljuje korisnika da ne zna da zapravo izvršava radnje na aplikaciji žrtve**.
### Detekcija
Da biste detektovali aplikacije ranjive na ovaj napad, trebali biste tražiti **izvezene aktivnosti** u android manifestu (napomena: aktivnost sa intent-filterom se automatski izveze po defaultu). Kada pronađete izvezene aktivnosti, **proverite da li zahtevaju neku dozvolu**. To je zato što će **maliciozna aplikacija takođe trebati tu dozvolu**.
+Takođe možete proveriti minimalnu SDK verziju aplikacije, proveravajući vrednost **`android:minSdkVersion`** u **`AndroidManifest.xml`** datoteci. Ako je vrednost **manja od 30**, aplikacija je ranjiva na Tapjacking.
+
### Zaštita
#### Android 12 (API 31,32) i noviji
@@ -24,7 +25,7 @@ Ako je **`android:filterTouchesWhenObscured`** postavljeno na **`true`**, `View`
#### **`setFilterTouchesWhenObscured`**
-Atribut **`setFilterTouchesWhenObscured`** postavljen na true takođe može sprečiti eksploataciju ove ranjivosti ako je verzija Android-a niža.\
+Atribut **`setFilterTouchesWhenObscured`** postavljen na true takođe može sprečiti iskorišćavanje ove ranjivosti ako je verzija Android-a niža.\
Ako je postavljeno na **`true`**, na primer, dugme može automatski biti **onemogućeno ako je zaklonjeno**:
```xml