Артём Кудзев - Темная сторона продуктовой разработки | HappyDev'12
Темная сторона разработки для iOS
-
Upload
oleg-poyaganov -
Category
Technology
-
view
212 -
download
1
Transcript of Темная сторона разработки для iOS
Темная сторона разработки для iOS
Зачем нужен Reverse Engineering?
•Посмотреть, как делают другие
•Новые возможности • “А что будет, если…” •Потому что могу!
— Есть кое-что и для дизайнеров…
Звучит довольно нудно?
UI Debugging
Reveal App (revealapp.com)
Tools• Reveal App
• Spark Inspector
• Pony Debugger
It’s… demo time!
Code Reverse Engineering
Коварный план1. Дамп хедеров+
2. Библиотеки+
3. Структура+
4. Внедрение кода+
5. Успех
Что у нас есть?
Бинарник Ресурсы
FairPlay и как играть грязно
Hardware AES
GDB1. Ставим брейкпоинт на начало
2. Адрес начала и размер
3. Дампим память
4. Патчим бинарник
5. class-dump - и вот хедеры!
Инъекции кода• Современно, молодежно
• Меньше гемороя
• No ASLR (Address Space Layout Randomization)
• Можно мутить swizzling прямо в REPL’е
Tools
Cycript+JS + Obj-C
Frida+Python + JS
• Внедрились в процесс+
• Изучили структуру+
• Трейсом посмотрели методы+
• Сдампили пару хедеров+
• Сделали временный хак+
• И ЧТО ДАЛЬШЕ?
Постоянный хак, конечно!
Чтобы все было также круто и после перезапуска
Динамические библиотеки
• Официально нет возможности сделать .dylib+
• Только на Jailbreak+
• CydiaSubstrate - SDK как раз для нас
1.Фильтр для загрузки dylib (bundleid, classname и т.д.)
2.Подмена реализации метода с помощью method-swizzling
FINAL DEMO