В ръцете си държите книга, посветена на безопасността на Android приложенията. В нея ще намерите начини както за разбиване, така и за защита на приложения.
Първите четири глави са изцяло теоретични и, ако не ги разберете добре, няма да можете да защитите собствените си приложения, нито пък да разбиете чужди.
Веднага след като изучите теоретичните основи, ще научите как да разбиете странично (чуждо) приложение и ще се запознаете с основните инструменти, които използват хакерите – инспектора за разбиване на приложения, Drozer и други допълнителни инструменти. Отделено е внимание и на DIT – пакет с инструменти, с помощта на които можете да внедрите собствен код в други приложения.
Въпреки че ще се научите как да напишете собствен вирус и какви вируси са на мода днес, не трябва да гледате на тази книга като на самоучител по създаване на вируси. Книгата е посветена преди всичко на защитата, затова две глави в нея са отделени на обфускацията и различните методи за защита на кода. Така ще можете да защитите вашия код от хакери и да затрудните декомпилирането и внедряването на зловреден страничен код.
Взломът и защитата са два тясно свързани процеса, затова от един автор на вируси може да излезе добър инженер по безопасност на приложенията, както и обратното – от един добър специалист по информационна безопасност може да стане нелош хакер.
Съдържание
Въведение…6
Глава 1. Технологичният стек на Android…8
1.1. Java…8
1.2. Многозадачност…11
1.3. Пясъчник…14
1.4. Сървиси на Google…15
1.5. Linux…17
1.6. Android Go…18
Глава 2. Инструменти за безопасност на Android…20
2.1. Обзор на компонентите за безопасност…20
2.2. Система на пълномощия…22
2.3. Система от ограничения…24
2.4. Шифроване на данни…27
2.5. Надеждни отношения …28
2.6. SELinux…29
2.7. Технологията Secoomp-bpf…30
2.8. Google Play Protect…30
2.9. Умна блокировка с помощта на SmartLock…30
2.10. Защита WebView…32
2.11. Цифрови подписи на APK…32
2.12. Отдалечено нулиране и защита от нулиране…33
Глава 3. Процесът на зареждане на системата…35
3.1. Стартиране на зареждача на операционната система…35
3.2. Зареждащ раздел…38
3.3. Инициализация на системата…40
3.4. Службата Zygote…41
Глава 4. Незабележими актуализации…43
4.1. Болката на Android…43
4.2. Интерфейсът Treble…44
4.3. A/B маркировка…45
4.4. Динамична актуализация…50
Глава 5. Как може да разбиете Android…52
5.1. Прибори и материали…52
5.2. Отваряме APK…55
5.3. Правим промени в програмата…60
5.4. Инсталиране на Android Studio в Linux…62
Глава 6. Внедряване на код в приложението…67
6.1. Подготвителни процедури…68
6.2. Пишем вредителски код. Опит 1…70
6.3. Пишем вредителски код. Опит 2…72
Глава 7. Правилна работа с дебъгера…77
7.1. За какво ни е нужен дебъгер?…77
7.2. Декомпилиране на приложение с Jadx…79
7.3. Импортиране на проекта в Android Studio и стартиране на дебъгера…81
Глава 8. Замъгляваме кода…84
8.1. Какво е обфускация на кода?…84
8.2. Деобфускатори…89
8.3. Опаковчици…90
Глава 9. Drozer и други полезни инструменти…92
9.1. Какво представлява Drozer и как да го инсталираме?…92
9.2. Използване на Drozer…95
9.3. Допълнителни възможности…103
Глава 10. Пакет Dynamic Instrumentation Toolkit…104
10.1. Подготовка за работа…104
10.2. Основи на Frida…106
10.2.1. Извиквания на Frida от команден ред…107
10.2.2. Python сценарий за изпълнение на произволен JavaScript код…107
10.3. Внедряваме код…108
10.4. Заобикаляне на PIN код…115
10.5. Груба сила към PIN кода…116
10.6. Какво да правим по-нататък?…117
Глава 11. Вирусология. Пишем вирус за Android…118
11.1. От първия вирус до наши дни…118
11.2. Вирусът Geinimi…123
11.3. DroidDream…124
11.4. Зевс…125
11.5. Вирусът Op.fake…126
11.6. Backdoor.AndroidOS.Obad.a…126
11.7. Simple Locker…127
11.8. Пишем собствен вирус…128
11.8.1. Преди да започнем…128
11.8.2. Манифест…129
11.8.3. Реализация на функционалността…131
Глава 12. Примери на съвременни вируси за Android…146
12.1. Android/Banker.GT!tr.spy – кражба на банкова информация …146
12.2. Chrysaor – самоликвидиращ се вирус…149
12.3. MailLocker – изнудвач…150
12.4. Jocker – дълголетник…151
12.5. Mandrake – трикомпонентен…152
12.6. Rootnik – усъвършенстван вирус…153
12.7. Vultur – кражба на конфиденциална информация …153
12.8. GriftHorse – абонамент за платени услуги…154
12.9. Rogue…155
12.10. Adware.NewDich – заплахата на месеца…156
Глава 13. Допълнителни възможности на Android…157
13.1. Междупроцесорно взаимодействие Binder…157
13.2. Използване на скрити API…161
13.3. Ниво на разрешения…163
13.3.1. Привилегировани приложения…164
13.3.2. Системни приложения…164
13.3.3. Администраторски права…165
13.4. Приложение с root права…167
13.5. Проектът Android Keylogger…168
Глава 14. Скриване на кода…172
14.1. Обфускация. ProGuard, R8 и други…172
14.1.1. Въведение в обфускацията…172
14.1.2. Мястото на ProGuard в процеса на сглобяване на приложението…174
14.1.3. Алгоритъм на работа на ProGuard…175
14.1.4. R8…182
14.2. Скриване на редове…183
14.3. XOR кодиране…184
14.4. Данни в роден код…185
14.5. Цифрови подписи…187
14.6. Определяме емулатор…188
14.7. Защита от анализиране…190