Темная сторона разработки для ios
TRANSCRIPT
![Page 1: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/1.jpg)
Темная сторона разработки для iOS
![Page 2: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/2.jpg)
Зачем нужен Reverse Engineering?
![Page 3: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/3.jpg)
•Посмотреть, как делают другие
•Новые возможности • “А что будет, если…” •Потому что могу!
![Page 4: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/4.jpg)
— Есть кое-что и для дизайнеров…
Звучит довольно нудно?
![Page 5: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/5.jpg)
UI Debugging
![Page 7: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/7.jpg)
Tools• Reveal App
• Spark Inspector
• Pony Debugger
![Page 8: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/8.jpg)
It’s… demo time!
![Page 9: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/9.jpg)
Code Reverse Engineering
![Page 10: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/10.jpg)
Коварный план1. Дамп хедеров+
2. Библиотеки+
3. Структура+
4. Внедрение кода+
5. Успех
![Page 11: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/11.jpg)
Что у нас есть?
Бинарник Ресурсы
![Page 12: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/12.jpg)
FairPlay и как играть грязно
Hardware AES
![Page 13: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/13.jpg)
GDB1. Ставим брейкпоинт на начало
2. Адрес начала и размер
3. Дампим память
4. Патчим бинарник
5. class-dump - и вот хедеры!
![Page 14: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/14.jpg)
Инъекции кода• Современно, молодежно
• Меньше гемороя
• No ASLR (Address Space Layout Randomization)
• Можно мутить swizzling прямо в REPL’е
![Page 15: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/15.jpg)
Tools
Cycript+JS + Obj-C
Frida+Python + JS
![Page 16: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/16.jpg)
• Внедрились в процесс+
• Изучили структуру+
• Трейсом посмотрели методы+
• Сдампили пару хедеров+
• Сделали временный хак+
• И ЧТО ДАЛЬШЕ?
![Page 17: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/17.jpg)
Постоянный хак, конечно!
Чтобы все было также круто и после перезапуска
![Page 18: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/18.jpg)
Динамические библиотеки
• Официально нет возможности сделать .dylib+
• Только на Jailbreak+
• CydiaSubstrate - SDK как раз для нас
![Page 19: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/19.jpg)
1.Фильтр для загрузки dylib (bundleid, classname и т.д.)
2.Подмена реализации метода с помощью method-swizzling
![Page 20: Темная сторона разработки для iOS](https://reader033.vdocuments.site/reader033/viewer/2022052906/558bddd9d8b42aee058b47b7/html5/thumbnails/20.jpg)
FINAL DEMO