Темная сторона разработки для iOS

20
Темная сторона разработки для iOS

Transcript of Темная сторона разработки для iOS

Page 1: Темная сторона разработки для iOS

Темная сторона разработки для iOS

Page 2: Темная сторона разработки для iOS

Зачем нужен Reverse Engineering?

Page 3: Темная сторона разработки для iOS

•Посмотреть, как делают другие

•Новые возможности • “А что будет, если…” •Потому что могу!

Page 4: Темная сторона разработки для iOS

— Есть кое-что и для дизайнеров…

Звучит довольно нудно?

Page 5: Темная сторона разработки для iOS

UI Debugging

Page 6: Темная сторона разработки для iOS

Reveal App (revealapp.com)

Page 7: Темная сторона разработки для iOS

Tools• Reveal App

• Spark Inspector

• Pony Debugger

Page 8: Темная сторона разработки для iOS

It’s… demo time!

Page 9: Темная сторона разработки для iOS

Code Reverse Engineering

Page 10: Темная сторона разработки для iOS

Коварный план1. Дамп хедеров+

2. Библиотеки+

3. Структура+

4. Внедрение кода+

5. Успех

Page 11: Темная сторона разработки для iOS

Что у нас есть?

Бинарник Ресурсы

Page 12: Темная сторона разработки для iOS

FairPlay и как играть грязно

Hardware AES

Page 13: Темная сторона разработки для iOS

GDB1. Ставим брейкпоинт на начало

2. Адрес начала и размер

3. Дампим память

4. Патчим бинарник

5. class-dump - и вот хедеры!

Page 14: Темная сторона разработки для iOS

Инъекции кода• Современно, молодежно

• Меньше гемороя

• No ASLR (Address Space Layout Randomization)

• Можно мутить swizzling прямо в REPL’е

Page 15: Темная сторона разработки для iOS

Tools

Cycript+JS + Obj-C

Frida+Python + JS

Page 16: Темная сторона разработки для iOS

• Внедрились в процесс+

• Изучили структуру+

• Трейсом посмотрели методы+

• Сдампили пару хедеров+

• Сделали временный хак+

• И ЧТО ДАЛЬШЕ?

Page 17: Темная сторона разработки для iOS

Постоянный хак, конечно!

Чтобы все было также круто и после перезапуска

Page 18: Темная сторона разработки для iOS

Динамические библиотеки

• Официально нет возможности сделать .dylib+

• Только на Jailbreak+

• CydiaSubstrate - SDK как раз для нас

Page 19: Темная сторона разработки для iOS

1.Фильтр для загрузки dylib (bundleid, classname и т.д.)

2.Подмена реализации метода с помощью method-swizzling

Page 20: Темная сторона разработки для iOS

FINAL DEMO