eXTracted INternals

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

Поделиться | 
 

 Реверсинг в Симбиан

Предыдущая тема Следующая тема Перейти вниз 
На страницу : Предыдущий  1, 2, 3
АвторСообщение
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Ср 9 Май - 15:02

а как дебаггером смотреть? я так и не понял, как его на uiq3 настроить, хотя в описании беты карбида 1.2 говорилось, что типа можно
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Чт 10 Май - 0:47

wl пишет:
а как дебаггером смотреть? я так и не понял, как его на uiq3 настроить, хотя в описании беты карбида 1.2 говорилось, что типа можно
http://xtin.activebb.net/Coaoue-c1/Mobile-and-Embedded-f1/Oaaeaiiay-ioeaaea-ia-Symbian-9x-t16.htm

Должно быть вот как-то так. Но как на карбиде я не знаю.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Чт 10 Май - 4:02

wl пишет:
скинул то, что считается ромом на уик3. Возможно что в заголовке есть указатель на следующий блок или типа того, не знаю, в сдк уже нету файла с описанием заголовка

Блин, а образ ведь правильный. Там ровно 2 метра. Даже в хедере там указано:
Код:

ROM:F8000080                DCD Firmware_Entrypoint ; iRomBase
ROM:F8000080                DCD 0x200000            ; iRomSize

Получается что остальное лежит в Nand памяти.

http://ifolder.ru/1962834 - вот база от ida 4.8 можешь посмотреть.
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Чт 17 Май - 8:24

Что-то ничего не понимаю, что с этим биосом можно сделать... Любая более менее инстересная операция в итоге обрывается на SWI. Где находится таблица прерываний? Можно ли как-то задать нужные параметры, и вызвать код, ну например, который открывает файл в тои месте, где уже пройдена проверка капабилитей? Или вот к примеру, что это, в документации написано, что SWI 0 - это Reset, однако, его без проблем вызывают в обычных функциях, к примеру, вот такой:
Код:

Find_Next            ; CODE XREF: TFindSemaphore::Next(TBuf<256> &)+4p
               ; TFindMutex::Next(TBuf<256> &)+4p ...
      PUSH   {R4-R6,LR}
      LSL   R4, R0,   #0
      LSL   R5, R1,   #0
      MOV   R1, #0xFF
      LSL   R6, R2,   #0
      SUB   SP, SP,   #0x108
      ADD   R1, R1,   #1
      MOV   R0, SP
      BL   _ZN9TBufBase8C2Ei ; TBufBase8::TBufBase8(int)
      LSL   R1, R4,   #0
      ADD   R1, #0x10
      MOV   R0, SP
      BL   _ZN5TDes84CopyERK7TDesC16 ; TDes8::Copy(TDesC16    const&)
      LSL   R2, R4,   #0
      LSL   R0, R6,   #0 ; Параметр, отвечающий за объект поиска
      MOV   R1, SP      ; строка которую нужно найти
      BLX   CALL_SWI_0  <------------ SWI 0
      LSL   R4, R0,   #0 ; наверное сам поиск
      BNE   ret
      LSL   R0, R5,   #0 ; нашли что-то, вернеи имя
      MOV   R1, SP
      BL   _ZN6TDes164CopyERK6TDesC8 ; TDes16::Copy(TDesC8    const&)

ret               ; CODE XREF: Find_Next+2Aj
      LSL   R0, R4,   #0
      ADD   SP, SP,   #0x108
      POP   {R4-R6,PC}
; End of function Find_Next
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Чт 17 Май - 14:08

wl пишет:
Что-то ничего не понимаю, что с этим биосом можно сделать... Любая более менее инстересная операция в итоге обрывается на SWI.

Так делается вызов "в ядро". А что ты вообще собирасля с ним сделать?

wl пишет:
Где находится таблица прерываний?
Таблица прерываний находится в ekern.exe. Это так называемая executive table.

wl пишет:

Можно ли как-то задать нужные параметры, и вызвать код
Можно. Нужно только знать как пихать для каждого SWI параметры в стек.

wl пишет:

ну например, который открывает файл в тои месте, где уже пройдена проверка капабилитей?
А это нельзя. Они не такие идиоты, чтобы проверять капабилити тока на юзер моде. Главные проверки делают в ядре, т.е. на стороне ядра.

wl пишет:

Или вот к примеру, что это, в документации написано, что SWI 0 - это Reset, однако, его без проблем вызывают в обычных функциях
Это потому что SWI = software interrupt, т.е. программируемые прерывания. Когда ядро стартует оно перепрограммирует таблицу прерываний.

Качни вот это:
ed2k://|file|Wiley.Symbian.OS.Internals.Real.time.Kernel.Programming.Dec.2005.eBook-DDU.pdf|6950105|B559BE13BAF3AEF97FB22DB6BA58A41C|/

или найди еще где-то. В этой книге описан механизм работы SWI для сервисов ядра.
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Пт 18 Май - 8:57

мдяя, грустно. решил пока покопать с другой стороны - править саму прошивку, и обновлять её в телефон с помощью стандарной проги обновления от СЕ. Посмотрев на неё(прогу) поближе, оказалось, что она полностью написана на java, но к несчастью, закриптована с помощью execJ. Я просто очень надеюсь, что эта прога всё-таки делает декрипт самой криптованной прошивки, перед тем, как собственно лить её в мобилку, иначе, даже если мне и удасться jar файл достать (автоматических средств похоже нету, нераспространенный криптор чтоли, или вообще это невозможно), и окажется, что прога льет файлы в мобилу в первозданном виде, а декриптует сама мобила, то никаких шансов уже не будет - закрытых ключей для шифрования у меня конечно же нету.
А так можно будет изменить прогу так, чтобы она для начала слила декриптованные файлы обратно на винт, поменять прошу немного (ну например, чтобы разрешались любые капабилити независимо от сертификата) а потом опять поменять прогу, чтобы она заливала декриптованную прошивку в телефон.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Сб 19 Май - 4:57

Вернуться к началу Перейти вниз
Посмотреть профиль
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Вс 20 Май - 4:13

а это точно для SE также работает? просто меня уверяли, что криптованную прошивку комп расшифровывает, и даже есть декриптованный дамп прошивки M600, полученный в процессе прошивания тела. Единственная сложность - неизвестно, как считается контрольная сумма кода, но у меня есть лоадер, который пишется на мобилу, может из него что-то можно будет выдрать. На первый вгляд сложно понять, что к чему, может по ходу исследования эммы станет ясно, какие процедуры вызываются. Правда объем работы просто гигантский - там не только чистая java (обфуцированная с помощью ZKM, что только добавляет гемора), но и Native-методы в DLL, и драйвера, и просто DLL - например OMSIForum. их исследовать не так приятно...
-
по крайней мере, возможно что скинуть декриптованную прошивку на винт будет не так сложно, интересно посмотреть на нее в голом виде.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Пн 21 Май - 1:35

Да пофиг кто и когда расшифровывает прошивку. Важно то, что будет сверяться цифровая подпись. Сделаешь изменение - уже не сойдется.
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Пн 21 Май - 4:33

ясненько... ну что ж, жаль конечно.
а я расшифровал, если можно так сказать, прошивку от se p990i (в jar-файле был класс RC4DecryptingInputStream, который сделал всю работу).
Получилось 128 мегов, жаль выложить не могу с GPRS, много чего полезного на первый взгляд. В основном там конгломераты файловых систем (внутри видно ROFS, ROFx, FAT16), как то бы их сейчас распарсить на отдельные файлы, а в идеале просматривать как архив в тотал коммандере...
Еще есть какая-то зашифрованная БД, не знаю с чем, для тож есть класс - LocalDbCryptor, но правда пока не знаю толком, куда его применить.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Пн 21 Май - 5:43

Да такую прошивку было бы круто посмотреть. Я ж такого же типа делал тулзу для нокий BB5.
ROFS - это типа Read Only File System т.е. в ней c:\sys
FAT16 - это видать раздел для юзерских файлов.

А вот ROFx - это интересно что такое.

Вот смотри как оно прошивается на нокиях:
http://translate.google.com/translate?hl=en&sl=ar&u=http://gsm4arab.net/vb/showthread.php%3Fp%3D781283&sa=X&oi=translate&resnum=9&ct=result&prev=/search%3Fq%3DROFx%2B%2522sony%2Bericsson%2522%26hl%3Den%26client%3Dopera%26rls%3Den%26hs%3Dt35%26sa%3DG
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Пн 21 Май - 23:57

покопался в файлах прошивки и выяснил:
1) Самый большой файл (52 мега) - раздел FAT16, открылся WinHEX, ничего интересного не видно - в основном языковые пакеты, пара sis - с игрой и демо, и так по мелочи.
2) два файла поменьше - ROFS (24 мега) и ROFx (25мег) - содержат примерно одни и те же файлы диска Z:\, но у ROFx другой заголовок, чем у ROFS, там вроде больше файлов, но они не читаются (типа выход за пределы ROFx-файла, не резбирался). Со структурой ROFS еще толком не разобрался, так что достал все файлы без каталогов.
3) еще один ROFS файл, размером 2.5 мега, насколько я понял, содержит всякие шаблоны MMS и прочую ерунду для диска C:, правда файлы названы типа CCT_00001.dat и в конце текстовый файлик с путями, куда что кидать. Похоже для восстановления стандартной дребедени после формата.
4) ROM-часть, 2 мега
5) куча каких-то файлов, начинающихся на 0xBABE, вроде как содержат ARM-код, внутри всякие отладочные сообщения встречаются, типа:
.\CXC00000_DB2010_PRODUCTIONLOADER\IAR-ARM7\inc\bget.c
freelist.ql.blink->ql.flink == &freelist
061204 1529 HAN_DB2010_MEM_PATCHER_R2A007_CXC9876543210
6) куча SWF-файлов, ну это совсем не интересно имхо, они в процессе перепрошивки показывают, куда что нажать.
7) немного криптованных скриптов вида
Код:

;Created Tue Apr 03 18:53:42 CEST 2007 by GDFtoEMMA 1.31
;User: 23000582
;Host: sekiw539
;Exclude sim lock: No,
;Check CDA: No
begin;
encryption on;
w_free 0x0002 0x079e 0x0000 0x01 0x0A 0x00 0x00 0x5D 0x01 0x09 0x43 0x58 0x43 0x31 0x36 0x32 0x30 0x33 0x37 0x02 0x06 0x52 0x39 0x46 0x30 0x31 0x31 0x03 0x09 0x43 0x58 0x43 0x31 0x36 0x32 0x30 0x38 0x37 0x04 0x05 0x52 0x35 0x41 0x30 0x33 0x07 0x09 0x43 0x58 0x43 0x31 0x36 0x32 0x30 0x35 0x38 0x08 0x05 0x52 0x35 0x41 0x30 0x31 0x09 0x09 0x43 0x58 0x43 0x31 0x36 0x32 0x30 0x33 0x36 0x0A 0x05 0x52 0x35 0x41 0x31 0x37 0x0B 0x0B 0x43 0x44 0x41 0x31 0x36 0x32 0x30 0x30 0x37 0x2F 0x31 0x0C 0x05 0x52 0x35 0x41 0x31 0x33 0x00 0x11 0x42;
w_free 0x0002 0x06D6 0x0000 0x00;
w_free 0x0002 0x06D4 0x0000 0x50 0x39 0x39 0x30 0x69 0x00;
w_free 0x0002 0x06D3 0x0000 0x46 0x41 0x44 0x2D 0x33 0x30 0x32 0x32 0x30 0x31 0x31 0x2D 0x42 0x56 0x00;
w_free 0x0000 0x0094 0x0000 0x03;
end;
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Вт 22 Май - 2:08

wl пишет:

5) куча каких-то файлов, начинающихся на 0xBABE, вроде как содержат ARM-код, внутри всякие отладочные сообщения встречаются, типа:
.\CXC00000_DB2010_PRODUCTIONLOADER\IAR-ARM7\inc\bget.c
freelist.ql.blink->ql.flink == &freelist
061204 1529 HAN_DB2010_MEM_PATCHER_R2A007_CXC9876543210

А это код для второго проца. Он называется DB2010.
http://forums.se-nse.net/index.php?showtopic=3162&pid=48439&mode=threaded&start= - тут есть немного описалова.

Я шизею... народ пишет прошивку телефона на IAR'е... Я тут сосвем немного на нем пописал, жуть как неудобно. А они целые прошивки ваяют. Shocked
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Чт 27 Мар - 1:39

Тема была разделена. Весь разговор про капабилити я перенес сюда:
http://xtin.activebb.net/forum-f3/tema-t53.htm
Вернуться к началу Перейти вниз
Посмотреть профиль
valexey



Количество сообщений : 1
Дата регистрации : 2008-09-11

СообщениеТема: Re: Реверсинг в Симбиан   Чт 11 Сен - 8:15

Быть может кто-то поделится прошивочкой от N79 или же от N85? А то найти в инете не могу.

Или же непосредственно нужным мне файлом с этих телефонов. Мне предположительно нужны следующие файлы (все лежат в z:\sys\bin):

EasyVoIP.exe
sipclient.dll
sipcodec.dll
sipdigest.dll
sipgprsmon.dll
SipH2LanBearerMonitor.dll
sipietfagnt.dll
sipimsagnt.dll
sipipsec.dll
sipprofile.dll
sipprofilecli.dll
sipprofilefsm.dll
sipprofilesrv.exe
sipproxyrsv.dll
SipReqHand.dll
sipresolver.dll
siprsvclient.dll
siprsvsrv.exe
sipserver.exe
SIPSIGCOMP.DLL
siptls.dll
sipwlanmon.dll

Идея состоит в том, чтобы попробовать "пересадить" родной нокиевский SIp/VoIP клиент с телефона с Symbian 9.3 на котором оный клиент есть (например это N79 и N85) на телефоны с аналогичным симбианом где такового клиента нет (например 6220 classic, или N96).
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



Количество сообщений : 127
Дата регистрации : 2007-02-15

СообщениеТема: Re: Реверсинг в Симбиан   Чт 27 Ноя - 7:23

прикупил себе нокию 5800 (симбиан 9.4). естественно возникло желание покопаться в потрохах. Не знаю правда, с чего начать, точнее как утянуть прошивку.
Сегодня попробую вытащить РОМ, насколько я понимаю, начиная с симбиан 9.3 опять вернулись к xip, по крайней мере на uiq3.3 ни одной длл не было с импортами, так что надеюсь утянуть из рома много интересного...
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Чт 27 Ноя - 11:42

Сомневаюсь что они много нового туда запихнули. На уровне ядра врядли что-то меняли. Большей частью высокоуровневая обвеска новая.
Вернуться к началу Перейти вниз
Посмотреть профиль
TolyaN



Количество сообщений : 20
Дата регистрации : 2007-07-10

СообщениеТема: Re: Реверсинг в Симбиан   Пт 20 Ноя - 5:28

Есть дампы нескольких прог из оперативки, в них все импорты делаются через стабы такого типа:
Код:
ROM:FDF9F5FC                BL      sub_FDF9D2A8
...
ROM:FDF9D2A8 sub_FDF9D2A8            ; CODE XREF: sub_FDF9F47C+180
ROM:FDF9D2A8                LDR    R12, =dword_FDFC199C
ROM:FDF9D2AC                LDR    R12, [R12]
ROM:FDF9D2B0                BX      R12
...
ROM:FDF9D2B4 off_FDF9D2B4    DCD dword_FDFC199C; DATA XREF: sub_FDF9D2A8
...
ROM:FDFC199C dword_FDFC199C  DCD 0x501071E5; DATA XREF: ROM:off_FDF9D2B4
0x501071E5 — это прямой адрес функции в памяти.
Есть дамп всего ROM из того же телефона, в IDA уже проанализирован. Хочу соеденить эти два дампа, чтобы было видно вызовы и названия функций. Открыл проанализированную базу ROM, загрузил туда файл дампа программы с созданием сегментов на адрес 0xfdf00000 — адрес откуда дампилась прога. Файл проанализировался, но стабы IDA не определила. В итоге вместо адресов получил кучу вот таких строк:
Код:
seg001:000C18B0 unk_FDFC18B0    DCB 0x34 ; 4
seg001:000C18B1                DCB 0x7D ; }
seg001:000C18B2                DCB    5
seg001:000C18B3                DCB 0x50 ; P
В левой колонке отображается относительный адрес (смещение) сегмента, а не тот, который я указал при загрузке, так должно быть? В статусной строке отображается «правильный» адрес.
А в стабах адреса помечаются красным цветом, но при клике на адрес переходит к тексту приведённому выше, т.е. она таки понимает, что это там, но всё-равно помечает адрес как сомнительный.
Если вручную сделать из этих данных Double, то в большинстве случаев получаю название функции (иногда почему-то не срабатывает, хотя адрес правильный и по нему можно перейти и увидеть начало функции):
Код:
seg001:000C18B0 off_FDFC18B0    DCD __8TUidTypeG4TUidN21
Но нет главного — не видно, где эта функция вызывается в коде проги, т.е. не создается xref. Как с этим бороться?
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Реверсинг в Симбиан   Вт 24 Ноя - 3:56

я так понимаю ты грузил через Load additional binary и разрешал иде самой создать сегмент. Так вот, этого делать НЕ НАДО. Она черт знает как создает сегменты. Лучше руками создать сегмент, а потом через догрузку дополнительного бинаря загрузить по нужному адресу без создания сегмента.

А вообще проблема в значении сегментного регистра ds для новосозданного сегмента.
Вернуться к началу Перейти вниз
Посмотреть профиль
TolyaN



Количество сообщений : 20
Дата регистрации : 2007-07-10

СообщениеТема: Re: Реверсинг в Симбиан   Ср 9 Дек - 8:48

Hex пишет:
Лучше руками создать сегмент, а потом через догрузку дополнительного бинаря загрузить по нужному адресу без создания сегмента.

А вообще проблема в значении сегментного регистра ds для новосозданного сегмента.
Создал сегмент вручную, подгрузил файл, выставил ds = 1, проанилизировал — всё отлично. Спасибо, Hex, за подсказку.
Единственное — не именуются стабы, но это не помеха — можно и переименовать вручную, главное анализировать теперь в разы легче.
Вернуться к началу Перейти вниз
Посмотреть профиль
Спонсируемый контент




СообщениеТема: Re: Реверсинг в Симбиан   

Вернуться к началу Перейти вниз
 
Реверсинг в Симбиан
Предыдущая тема Следующая тема Вернуться к началу 
Страница 3 из 3На страницу : Предыдущий  1, 2, 3

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