eXTracted INternals

eXTracted INternals
 
ФорумФорум  ЧаВоЧаВо  ПоискПоиск  РегистрацияРегистрация  ПользователиПользователи  ГруппыГруппы  Вход  

Поделиться | 
 

 Iphone

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Iphone   Чт 15 Ноя - 15:30

Возникла необходимость разобраться с ним примерно до такой же степени как с симбианом. Хочу обсудить этот аццкий девайс.

Во-первых интересуют все вот эти извратные тулзы типа:
iBrickr, iNdependence, iPhuc, Jailbreak и т.д. которые что-то в девайсе меняют и которые работают через Recovery Mode.

Интересует что шлют, какой принцип работы.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Iphone   Пт 16 Ноя - 8:51

Кое-что выяснил. Все эти тулзы работают через API в iTunesMobileDevice.dll. И юзают классы Quicktime.

Даунгрейд прошивки происходит следующим образом: iTunes льет на девайс прошивку и не запускает ее, оставляя девайс в recovery mode. Всякие тулзы типа iBrickr шлют команду запуска прошивки и выводят из recovery mode. Т.е. поидее эту команду должен был послать iTunes, тока почему-то не шлет.

Jailbreak - это операция, которая позволяет иметь доступ ко всем файлам на девайсе. В реале она меняет параметры запуска службы com.apple.afc
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Iphone   Вт 20 Ноя - 7:57

Как работает iPhuc, Jailbreak, iBrickr и прочие хацкерские тулзы.

В каждой прошивке есть образ RAM-диска, который заливается на телефон бутлоадером. Образ подписан цифровой подписью. Все эти тулзы заливают его и потом юзают разные приложения которые лежат в этом RAM-диске. Например "ditto".

Т.е. надо смотреть что реально там за приложения и что они могут дать.

Образы дисков упакованы, и идут в формате "8900":
http://iphone.fiveforty.net/wiki/index.php/8900_files

Вот анпакер:
http://iphone.fiveforty.net/wiki/index.php/Unpack_89001.0.c
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Iphone   Вт 20 Ноя - 8:12

Этот "анпакер" - говно. Не пашет.

Посмотрите на стуктуру Apple8900Header. Там есть поле sizeOfData - это размер чистого образа. Т.е. надо срезать спереди 0x800 байт и footerCertLen байт в конце.

Получится файл который начинается с сигнатуры "complzss". Ща ищу чем его разжать.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Iphone   Вт 20 Ноя - 8:51

http://pastebin.com/d59458242 - А вот и анпакер. Он сразу хавает файлы в формате 8900. Ничо отрезать на надо.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Iphone   Ср 21 Ноя - 15:12

Продолжаем разбираться. Много седня всего понял Smile

Разобрался с recovery режимом. Это режим который используется iTunes для апгрейда прошивки. Для даунгрейда используется режим DFU(direct firmware upload).

Итак recovery mode.

В нем участвует boot code, это псевдо бутлоадер, который лежив в флэш памяти, он также лежит в прошивке. А настоящий бутлоадер естественно в проце. Перейти в Recovery режим можно руками удерживая Home и Power пока не появится картинка с восклицательным знаком в желтом треугольнике. Есть также апи для того чтобы это делать программно.

iTunes общается с бут-кодом вот таким набором команд:
http://forums.dealmac.com/read.php?4,2689565
В реале юзается буквально несколько команд.

iTunes заливает образ RAM-диска (один из .dmg файлов идущих с прошивкой) и мини-ядро kernelcache.release.s5l8900xrb.
Содержимое RAM-диска можно просмотреть через HFSExplorer или TransMac. Это тулзы для работы с MAC-овскими дисками. Но перед тем как пихать в них образ, надо отрезать заголовок и цифроваую подпись.

Мини-ядро работает с файлами ram-диска. Т.е. по сути это ОС у которой RAM-диск является корнем файловой системы. Мини-ядро грузит с RAM-диска демона restored_external. И дальше все что приходит с USB обрабатывает этот restored_external демон.
Когда на ифоне запущен демон restored_external - это называется restore mode. У restored_external есть свой набор команд. Полный список команд вот здесь:
http://iphone.fiveforty.net/wiki/index.php/Talk:How_to_Escape_Jail
эти команды надо слать уже через апи iTunes.
Вернуться к началу Перейти вниз
Посмотреть профиль
ktoto



Количество сообщений : 2
Возраст : 39
Дата регистрации : 2008-03-13

СообщениеТема: Re: Iphone   Чт 13 Мар - 5:43

Смотрю тема чуток поугасла.
Обновим.
1. Есть ли идеи по поводу отладчика под это чудо ?
А то появилось очень много подопытных програм а отладчика нету нормального. Или я чего то не знаю.
2. Выяснилось что Ида кажись не правильно пересчитывает адреса методов при вызове _objc_msgSend
Пример я писал на ВАСМЕ приведу и тут.

__text:00002728 08 38 9F E5 LDR R3, =unk_D908
__text:0000272C 03 B0 9F E7 LDR R11, [PC,R3] ; "setBodyText:"
__text:00002730 50 00 9D E5 LDR R0, [SP,#0x9C+var_4C]
__text:00002734 CD 0D 00 EB BL _objc_msgSend

D908 + 2730 = 10038
смотрим туда там
LocalizedStringForKey:value:table:
но IDA подставляет setBodyText:

message_refs:00010038 B0 58 00 00 off_10038 DCD aLocalizedstrin ; DATA XREF: sub_1A2C+1B0o
__message_refs:00010038 ; sub_1DF0+80o ...
__message_refs:00010038 ; "localizedStringForKey:value:table:"
__message_refs:0001003C 80 5A 00 00 off_1003C DCD aSetbodytext ; DATA XREF: sub_1A2C+21Co
__message_refs:0001003C ; sub_218C+5A0o ...
__message_refs:0001003C ; "setBodyText:"

3. Попутно вопрос есть ли идеи как исправить это? А еще лучше как бы избавиться от ручного разбора двойных указателей?

IDA 5.2
Вернуться к началу Перейти вниз
Посмотреть профиль http://www.ktoto.net
Hex

avatar

Количество сообщений : 397
Возраст : 35
Дата регистрации : 2006-07-12

СообщениеТема: Re: Iphone   Чт 13 Мар - 6:03

ktoto пишет:

1. Есть ли идеи по поводу отладчика под это чудо ?
А то появилось очень много подопытных програм а отладчика нету нормального. Или я чего то не знаю.
В iPhone SDK есть, но он под MacOS.
Ильфак собирается в 5.3 сделать.

ktoto пишет:

2. Выяснилось что Ида кажись не правильно пересчитывает адреса методов при вызове _objc_msgSend
Пример я писал на ВАСМЕ приведу и тут.

__text:00002728 08 38 9F E5 LDR R3, =unk_D908
__text:0000272C 03 B0 9F E7 LDR R11, [PC,R3] ; "setBodyText:"
__text:00002730 50 00 9D E5 LDR R0, [SP,#0x9C+var_4C]
__text:00002734 CD 0D 00 EB BL _objc_msgSend

D908 + 2730 = 10038
смотрим туда там
LocalizedStringForKey:value:table:
но IDA подставляет setBodyText:

message_refs:00010038 B0 58 00 00 off_10038 DCD aLocalizedstrin ; DATA XREF: sub_1A2C+1B0o
__message_refs:00010038 ; sub_1DF0+80o ...
__message_refs:00010038 ; "localizedStringForKey:value:table:"
__message_refs:0001003C 80 5A 00 00 off_1003C DCD aSetbodytext ; DATA XREF: sub_1A2C+21Co
__message_refs:0001003C ; sub_218C+5A0o ...
__message_refs:0001003C ; "setBodyText:"
3. Попутно вопрос есть ли идеи как исправить это?
Не удивлен, IDA 5.2 = баг на баге и багом погоняет.

ktoto пишет:

А еще лучше как бы избавиться от ручного разбора двойных указателей?
Скрипт написать можно если сильно нужно. Других вариантов не знаю.
Вернуться к началу Перейти вниз
Посмотреть профиль
ktoto



Количество сообщений : 2
Возраст : 39
Дата регистрации : 2008-03-13

СообщениеТема: Re: Iphone   Чт 13 Мар - 6:09

Hex пишет:

В iPhone SDK есть, но он под MacOS.
Ильфак собирается в 5.3 сделать.


Хм интересно когда ?
И очень бы надеялся чтоб был под USB, а то Wifi, сам понимаешь,
батарей не напасешься.
А по поводу SDK честно говоря сыровато оно весьма. GDB - пакость какая. Хотя наверное я просто не умею его готовить. Smile
Вернуться к началу Перейти вниз
Посмотреть профиль http://www.ktoto.net
Спонсируемый контент




СообщениеТема: Re: Iphone   

Вернуться к началу Перейти вниз
 
Iphone
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1

Права доступа к этому форуму:Вы не можете отвечать на сообщения
eXTracted INternals :: Вопросы и ответы :: Общий форум-
Перейти: