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 777032d53..b01943e3a 100644
--- a/src/mobile-pentesting/android-app-pentesting/android-task-hijacking.md
+++ b/src/mobile-pentesting/android-app-pentesting/android-task-hijacking.md
@@ -4,50 +4,100 @@
## Завдання, стек назад та активності на передньому плані
-В Android, **завдання** - це, по суті, набір активностей, з якими користувачі взаємодіють для виконання конкретної роботи, організованих у **стек назад**. Цей стек упорядковує активності на основі того, коли вони були відкриті, причому найновіша активність відображається вгорі як **активність на передньому плані**. У будь-який момент часу лише ця активність видима на екрані, що робить її частиною **завдання на передньому плані**.
+У Android, **завдання** - це, по суті, набір активностей, з якими користувачі взаємодіють для виконання конкретної роботи, організованих у **стек назад**. Цей стек упорядковує активності на основі того, коли вони були відкриті, причому найновіша активність відображається вгорі як **активність на передньому плані**. У будь-який момент часу лише ця активність видима на екрані, що робить її частиною **завдання на передньому плані**.
Ось швидкий огляд переходів між активностями:
- **Активність 1** починається як єдина активність на передньому плані.
- Запуск **Активності 2** переміщує **Активність 1** у стек назад, виводячи **Активність 2** на передній план.
-- Запуск **Активності 3** переміщує **Активність 1** та **Активність 2** далі назад у стеці, з **Активністю 3** тепер попереду.
-- Закриття **Активності 3** повертає **Активність 2** на передній план, демонструючи спрощений механізм навігації завданнями в Android.
+- Запуск **Активності 3** переміщує **Активність 1** та **Активність 2** далі назад у стеку, з **Активністю 3** тепер попереду.
+- Закриття **Активності 3** повертає **Активність 2** на передній план, демонструючи спрощений механізм навігації завдань Android.
.png>)
-## Атака на афінність завдання
+---
-### Огляд афінності завдання та режимів запуску
+## Атаки на афінність завдань
-В Android-додатках, **афінність завдання** вказує на переважне завдання активності, зазвичай відповідне назві пакета програми. Ця настройка є важливою для створення демонстраційного додатка (PoC) для демонстрації атаки.
+`taskAffinity` вказує Android, до якого завдання `Activity` *бажає* належати. Коли дві активності мають однакову афінність, **Android дозволяє об'єднувати їх у одному стеку назад, навіть якщо вони походять з різних APK**.
-### Режими запуску
+Якщо зловмисник може розмістити шкідливу активність на **корені** цього стеку, щоразу, коли жертва відкриває легітимний додаток, шкідливий інтерфейс буде першим, що бачить користувач – ідеально для фішингу або зловживання дозволами.
-Атрибут `launchMode` визначає обробку екземплярів активностей у завданнях. Режим **singleTask** є ключовим для цієї атаки, визначаючи три сценарії на основі існуючих екземплярів активностей та відповідності афінності завдання. Експлуатація базується на здатності додатка зловмисника імітувати афінність завдання цільового додатка, вводячи в оману систему Android, щоб запустити додаток зловмисника замість цільового.
+Поверхня атаки ширша, ніж багато розробників вважають, оскільки **кожна активність автоматично успадковує афінність, рівну назві пакета програми** (якщо розробник не встановить `android:taskAffinity=""`). Тому *нічого не роблячи* вже залишає додаток відкритим для захоплення завдань на версіях Android до 11.
-### Детальні кроки атаки
+### Класичний сценарій "singleTask / StrandHogg"
-1. **Встановлення шкідливого додатка**: Жертва встановлює додаток зловмисника на своєму пристрої.
-2. **Початкова активація**: Жертва спочатку відкриває шкідливий додаток, готуючи пристрій до атаки.
-3. **Спроба запуску цільового додатка**: Жертва намагається відкрити цільовий додаток.
-4. **Виконання захоплення**: У якийсь момент додаток намагається відкрити вигляд **singleTask**. Завдяки відповідності афінності завдання, шкідливий додаток запускається замість цільового додатка.
-5. **Оману**: Шкідливий додаток показує фальшивий екран входу, що нагадує цільовий додаток, обманюючи користувача на введення чутливої інформації.
+1. Зловмисник оголошує активність з:
+```xml
+
+
+
+
+
+
+```
+2. Шкідливий додаток запускається один раз, щоб завдання (з підробленою афінністю) існувало в останніх завданнях.
+3. Коли користувач пізніше відкриває реальний додаток, Android виявляє, що вже існує завдання, афінність якого **відповідає пакету**, і просто виводить це завдання на передній план.
+4. Інтерфейс зловмисника показується першим.
-> [!TIP]
-> Зверніть увагу, що для успішної атаки вразливий вигляд **не повинен мати експортований в true** і не повинен бути основною активністю.
+### Варіант за замовчуванням – Caller ID кейс
-Для практичної реалізації цієї атаки зверніться до репозиторію Task Hijacking Strandhogg на GitHub: [Task Hijacking Strandhogg](https://github.com/az0mb13/Task_Hijacking_Strandhogg).
+Вразливість, виявлена в додатку **Caller ID (caller.id.phone.number.block)**, показує, що атака *також* працює проти стандартного режиму запуску `standard`:
-### Заходи запобігання
+1. Зловмисний додаток створює підроблену кореневу активність і відразу ж ховається:
+```kotlin
+class HackActivity : AppCompatActivity() {
+override fun onCreate(savedInstanceState: Bundle?) {
+super.onCreate(savedInstanceState)
+moveTaskToBack(true) // зберегти завдання в останніх, але поза полем зору
+}
+}
+```
+2. У маніфесті потрібно лише скопіювати пакет жертви в `taskAffinity`:
+```xml
+
+
+
+
+
+
+```
+3. Як тільки користувач встановлює і відкриває шкідливий додаток **один раз**, завдання, афінність якого дорівнює пакету жертви, існує (але знаходиться на фоні).
+4. Коли запускається реальний додаток Caller ID, Android повторно використовує це завдання і виводить `HackActivity` на передній план → вікно фішингу/зловживання дозволами.
-Щоб запобігти таким атакам, розробники можуть:
-- Встановити **`**taskAffinity`** вигляду **singleTask** на порожній рядок (`android:taskAffinity=""`)
-- Вибрати режим запуску **`singleInstance`**, забезпечуючи ізоляцію свого додатка від інших.
-- Налаштувати функцію **`onBackPressed()`**, що пропонує додатковий захист від захоплення завдань.
+> ПРИМІТКА: Починаючи з **Android 11 (API 30)**, система *не* поміщає два пакети, які не є частиною одного UID, в одне завдання за замовчуванням, що пом'якшує цю конкретну варіацію. Старі версії залишаються вразливими.
-## **Посилання**
+---
-- [**https://blog.dixitaditya.com/android-task-hijacking/**](https://blog.dixitaditya.com/android-task-hijacking/)
-- [**https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html**](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
+## Перевірка та експлуатація
+
+1. Витягніть `AndroidManifest.xml` з цільового APK і перевірте, що кожна `` (або глобальний елемент ``) містить `android:taskAffinity=""` (порожній) **або** налаштоване значення.
+2. Якщо ні, створіть шкідливий додаток:
+- `android:taskAffinity` = назва пакета жертви.
+- Надати намір `MAIN/LAUNCHER`, щоб користувач міг відкрити його один раз.
+- За бажанням викликати `moveTaskToBack(true)`, щоб відразу сховати.
+3. Дайте жертві відкрити їх легітимний додаток → захоплення.
+
+## Пом'якшення
+
+Розробники повинні:
+
+* Явно встановити `android:taskAffinity=""` на рівні `` (рекомендується) **або** надати кожній активності унікальну, приватну афінність.
+* Для дуже чутливих екранів поєднувати вищезазначене з `android:launchMode="singleInstance"` або сучасними [`setLaunchMode`](https://developer.android.com/reference/android/content/pm/ActivityInfo#launchMode) захистами.
+* Оновити `targetSdkVersion` додатка та впровадити зміни поведінки **Android 11**, де завдання за замовчуванням не діляться між пакетами.
+
+---
+
+## Посилання
+
+- [https://blog.dixitaditya.com/android-task-hijacking/](https://blog.dixitaditya.com/android-task-hijacking/)
+- [https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html](https://blog.takemyhand.xyz/2021/02/android-task-hijacking-with.html)
+- [Android Manifest Misconfiguration Leading to Task Hijacking in Caller ID app](https://github.com/KMov-g/androidapps/blob/main/caller.id.phone.number.block.md)
+- [https://medium.com/mobile-app-development-publication/the-risk-of-android-strandhogg-security-issue-and-how-it-can-be-mitigated-80d2ddb4af06](https://medium.com/mobile-app-development-publication/the-risk-of-android-strandhogg-security-issue-and-how-it-can-be-mitigated-80d2ddb4af06)
{{#include ../../banners/hacktricks-training.md}}