Сейчас на форуме: exp50848, rmn, _MBK_ (+7 невидимых)

 eXeL@B —› Основной форум —› Взлом прог под Симбиан
<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 20 . 21 . >>
Посл.ответ Сообщение

Ранг: 153.9 (ветеран)
Активность: 0.120
Статус: Участник
reborn

Создано: 10 августа 2006 22:20 · Поправил: newborn
· Личное сообщение · #1

Народ, ктонить ломал под Симбиан проги ? Искал в инете, инфы вообще неоказалось, так мелочи которые не помогут при взломе. Интересует вот что:
1) Чем ломать.
2) Какая нибудь инфа.

Всем откликнувшимся спасибо.

-----
~ the Power Of Reversing team ~




Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 14 декабря 2009 13:11 · Поправил: coderus
· Личное сообщение · #2

кажется вот:

Code:
  1. .text:828E57A8                 BLX     __ARM_switch8_28
  2. .text:828E57A8 ; ---------------------------------------------------------------------- -----
  3. .text:828E57AC                 DCB 0x10
  4. .text:828E57AD                 DCB    9
  5. .text:828E57AE                 DCB 0x14
  6. .text:828E57AF                 DCB 0x18
  7. .text:828E57B0                 DCB 0x1B
  8. .text:828E57B1                 DCB 0x21 ; !
  9. .text:828E57B2                 DCB 0x26 ; &
  10. .text:828E57B3                 DCB 0x2B ; +
  11. .text:828E57B4                 DCB 0x30
  12. .text:828E57B5                 DCB 0x35 ; 5
  13. .text:828E57B6                 DCB 0x3A
  14. .text:828E57B7                 DCB 0x3F ; ?
  15. .text:828E57B8                 DCB 0x44
  16. .text:828E57B9                 DCB 0x48 ; H
  17. .text:828E57BA                 DCB 0x4C
  18. .text:828E57BB                 DCB 0x58 ; X
  19. .text:828E57BC                 DCB 0x63
  20. .text:828E57BD                 DCB 0x91 ; C
  21. .text:828E57BE ; ---------------------------------------------------------------------- -----
  22. .text:828E57BE                 BLX     CCoeEnv__Static___182
  23. .text:828E57C2                 LSLS    R2, R0, #0
  24. .text:828E57C4                 LDR     R0, =0x4E677083
  25. .text:828E57C6                 LSLS    R1, R5, #0
  26. .text:828E57C8                 BLX     StringLoader__LoadLC_int__int__CCoeEnv___17
  27. .text:828E57CC                 LSLS    R5, R0, #0
  28. .text:828E57CE                 MOVS    R7, #0
  29. .text:828E57D0                 MOVS    R4, #0x4E
  30. .text:828E57D2                 B       loc_828E5888
  31. .text:828E57D4 ; ---------------------------------------------------------------------- -----
  32. .text:828E57D4                 LDR     R5, =0x4E677083
  33. .text:828E57D6                 ADDS    R5, R5, #1
  34. .text:828E57D8                 MOVS    R4, #0x47
  35. .text:828E57DA                 B       loc_828E587A


в данные сам перевел
надо разобраться со смещениями
switch в rom файлах по-другому как то реализован

тут 0x10-количество ветвлений
а потом идут просто смещения

и 0x91 непонятно что

кстати ни у кого случайно нет утилитки которая экспорты импорты из xip файлов и sdk для иды создает?



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 декабря 2009 15:55
· Личное сообщение · #3

coderus пишет:
в данные сам перевел
надо разобраться со смещениями
switch в rom файлах по-другому как то реализован


Чет типа addr = (828E57AC + offset * 2). Для 9 будет 828E57BE, для 0x14 - 828E57D4. Да и 0x91 тож походу смещение.




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 14 декабря 2009 20:24
· Личное сообщение · #4

coderus
почитай внимательнее мой предыдущий пост, я именно так и описывал, эта функция одинакова что для xip, что для обычных приложений.

для чего тебе экспорты из rom? DLL в симбиан вообще оперирует только ординалами, и выдрать из них ничего нельзя (разве что предположить название из работы экспортируемых функций).

чтобы узнать имена функций из непубличных dll, чисто теоретически можно скачать исходники симбиан фаундейшен, и посмотреть там. не знаю правда, много ли потрохов выложено на данный момент



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 14 декабря 2009 23:35
· Личное сообщение · #5

Blackdealer пишет:
0x91 тож походу смещение

а может быть ты и прав...
тогда 0x10 - количество ветвлений, счет от нуля?

и по какому принципу они *ветвятся*?


[wl], я просто почитал из статьи HEX о свитчах, там немного иначе, но все равно спасибо.
экспорты наверное для красоты, просто чтоб поименовать их

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




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 14 декабря 2009 23:54
· Личное сообщение · #6

чтобы сделать файл сигнатур, используется утилита zipids из состава IDA SDK, на вход ей подаешь .idt-файл примерно такого вида:

;DECLARATION
;ALIGNMENT 2

; Module Name and Description
0 Name=eikcore
;---------------------------------------
1 Name=_Z12InternalizeLR12TEikPortFlagR11RReadStream
2 Name=_ZN10CEikMsgWin10ConstructLER12RWindowGroup
3 Name=_ZN10CEikMsgWin12StartDisplayERK7TDesC1613TGulAlignment
....

получившийся .ids-файл кидаешь к другим, путь примерно такой: \IDA\ids\epoc9\arm\

я так делал синатуры для P.I.P.S




Ранг: 141.4 (ветеран)
Активность: 0.050
Статус: Участник

Создано: 15 декабря 2009 09:00
· Личное сообщение · #7

а чтобы получить idt файл для конкретной dll понадобиться утилита dll2idt

и dll2idt и zipids входят в состав пакета ids utilities



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 15 декабря 2009 15:21 · Поправил: coderus
· Личное сообщение · #8

в SDK такого нет а утилиты ну нигде не могу скачать...
ое нашел наконецwww.woodmann.com/crackz/Ida.htm

dll2idt говорит что формат файла не поддерживается

а про idt вопрос в том и был, откуда получить имена функций?

мучал одно время romtools, но безрезультатно




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 15 декабря 2009 19:26 · Поправил: [wl]
· Личное сообщение · #9

сколько можно повторять, что в симбиан НЕ ИСПОЛЬЗУЮТСЯ символьные имена функций, ТОЛЬКО ординалы. Ну нету названий функций в DLL и даже в ROM, который по сути свалка разных DLL и EXE расположенных по строго заданным адресам, и им не требуется релокация, XIP.
Все паблик библиотеки, которые есть в SDK, уже давным давно в .ids-файлах, закрытые библиотеки не имеют символьной информации, чтобы посмотреть, что там, надо скачать исходники симбиана. Можно даже сигнатуры создать, только запаришься манглить имена



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 декабря 2009 11:53
· Личное сообщение · #10

[wl] пишет:
закрытые библиотеки не имеют символьной информации, чтобы посмотреть, что там, надо скачать исходники симбиана.


Ну можно еще имена функций из отладочных сообщений выкусывать , которые периодически встречаются в прошивке. Так запаришься еще больше, и толку тоже не особо

coderus пишет:
и по какому принципу они *ветвятся*?

В смысле по какому принципу?



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 16 декабря 2009 16:44 · Поправил: coderus
· Личное сообщение · #11

Blackdealer, в смысле условия переходов на определенный case номер

спасибо, создал общую базу имен функций из SDK и сурсов EKA2
пришел к выводу что имена функций лучше брать из .dso в замангленном виде и так подставлять в имена, если заранее разманглить то вместо знаков будут подчеркивания

кстати IDA Python замечательная вещица




дебаг под 5.5 просто волшебный, рекомендую



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 24 декабря 2009 14:45 · Поправил: TolyaN3z
· Личное сообщение · #12

Переделал пример из SDK под работу с шаблонами контактов, именно туда котовские проги пишут свои настройки, данные о реге и прочее.
Функционалом не хлещет, но есть главное — импорт, экспорт, удаление.
Должна работать под S60v3 и v5.
Делалось «на коленке», так что сильно не пинать.

UPD:
Поправил обновление списка после удаления, залил на рапиду



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 25 декабря 2009 14:12
· Личное сообщение · #13

прочитала, опиши что с этим теперь делать



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 25 декабря 2009 16:31 · Поправил: TolyaN3z
· Личное сообщение · #14

По-моему из функционала ясно, что с этим можно делать.
А вообще, я сделал её для чистки «хвостов». Когда разбирался с JukeBox, с изменённым загрузчиком он начал вылетать при запуске с синим экраном Fatal Error и перезагрузкой смарта. После чего даже оригинал перестал работать. Чистка этих настроек помогла решить проблему.
Предполагаю, что таким образом можно восстанавливать регистрацию и прочие настройки котовских программ после формата. Можно посмотреть глубже — разобраться, что конкретно туда записывается, какой программой и как этим можно воспользоваться.



Ранг: 1.2 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 декабря 2009 22:22
· Личное сообщение · #15

TolyaN3z пишет:
Переделал пример из SDK под работу с шаблонами контактов, именно туда котовские проги пишут свои настройки, данные о реге и прочее.Функционалом не хлещет, но есть главное — импорт, экспорт, удаление. Должна работать под S60v3 и v5.

А можно такое под UIQ3?
Если не сложно!



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 27 декабря 2009 12:13
· Личное сообщение · #16

скажите есть ли в иде возможность запомнить настройки?
именно достает каждый раз заново ставить количество xref, тип строк, демангл имен итп



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 27 декабря 2009 13:20
· Личное сообщение · #17

coderus
Настройки IDA меняются в ida.cfg.
Количество xref - это что? Есть Количество отображаемых xref.
Тип строк - ASCII_STYLE
Демангл имён - DemangleNames



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 27 декабря 2009 14:31 · Поправил: coderus
· Личное сообщение · #18

спасибо, SHOW_XREFS и DemangleNames работают.
но вот ASCII_STYLE ставлю вручную на 6 (Pascal-style Unicode, length is 4 bytes) и все равно по умолчанию стандартный Unicode

IDA 5.5 распознала ARM_SWITCH и обозначила все case! (зы это с чем я боролся наверху страницы)

Кто нибудь знает как бороться с ошибкой:
давно еще создал ключ в реестре добавляющий в контекстное меню файлов пункт Disassemble.
вот иногда ида глючит и при выборе этого пунгда вываливает сообщение об ошибке: Fatal error: параметр задан неверно
хотя при ручном перетаскивании файла на ярлык все ок....

TolyaN3z, а твою прогу можно народу показать?



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 28 декабря 2009 13:17 · Поправил: TolyaN3z
· Личное сообщение · #19

Да можно, конечно.
А вообще интересно, кто-то уже пробовал что-то делать с ней?



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 29 декабря 2009 11:33
· Личное сообщение · #20

рега не пропадает пока все хвосты не удалишь.
но и не появляется если все 3 не восстановишь. вот так закручено.



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 15 января 2010 20:19
· Личное сообщение · #21

ребят! скажите, при запуске проги же в оперативку помещаются? AppTrk может их патчить. Есть ли способ узнать начальный адрес проги в памяти?



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 16 января 2010 15:13 · Поправил: TolyaN3z
· Личное сообщение · #22

По-моему, тебе нужно это




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 18 января 2010 12:38
· Личное сообщение · #23

coderus это какой трк может патчить чужую память? ты что, взломал его?



Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 января 2010 22:59 · Поправил: jasf
· Личное сообщение · #24

Всем здравствуйте. Подскажите, существует ли общедоступное решение отображения call-stackа в дебаггере в IDA при вылете/панике/брейкпоинте под Symbianом? Заранее спасибо.



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 23 января 2010 09:34
· Личное сообщение · #25

[wl], если трк умеет менять значение регистров во время выполнения, то...или нет?
и где можно почитать про общение с трк по порту?
хочется разобраться как FCA сделал первый эксплойт



Ранг: 53.9 (постоянный), 19thx
Активность: 0.040
Статус: Участник

Создано: 25 января 2010 08:18
· Личное сообщение · #26

coderus пишет:
хочется разобраться как FCA сделал первый эксплойт

Там патчится один байт (вернее бит ) в кернел памяти.
По части общения трк когда то давно объяснял ФЦА (переводить лень)
=================================
Some tips about protocol.
Code:
  1. ---IDE------------------------------------------------------
  2.   Command: 0x00 Ping
  3. [00 00]
  4. ---TRK------------------------------------------------------
  5.   Command: 0x80 Acknowledge
  6.     Error: 0x00
  7. [80 00 00]
  8. ---IDE------------------------------------------------------
  9.   Command: 0x01 Connect
  10. [01 01]
  11. ---TRK------------------------------------------------------
  12.   Command: 0x80 Acknowledge
  13.     Error: 0x00
  14. [80 01 00]
  15. ---IDE------------------------------------------------------
  16.   Command: 0x05 Support Mask
  17. [05 02]
  18. ---TRK------------------------------------------------------
  19.   Command: 0x80 Acknowledge
  20.     Error: 0x00
  21. [80 02 00 7E 00 4F 5F 01 00 00 00 0F 1F 00 00 00
  22.   00 00 00 01 00 01 00 03 00 00 00 00 00 03 00 00...]

You must open COM port and write commands like this
7E 00 00 FF 7E - mean ping. First/last 0x7E something like marker start/end packet. 0xFF - checksum (FF-00-00). Second byte is command (IDs of commands can be found in msgcmd.h in TRK sources). Third byte is counter. Some commands needs parameters (also can be found in msgcmd.h).

You can compare listing above with this log of COM port (from another phone) to understanding.
Code:
  1. ======REQ==========
  2.  
  3. 7E 00 00 FF 7E
  4.  
  5. ======RESP=========
  6.  
  7. 7E 80 00 00 7F 7E
  8.  
  9. ======REQ==========
  10.  
  11. 7E 01 01 FD 7E
  12.  
  13. ======RESP=========
  14.  
  15. 7E 80 01 00 7D 5E 7E
  16.  
  17. ======REQ==========
  18.  
  19. 7E 05 02 F8 7E
  20.  
  21. ======RESP=========
  22.  
  23. 7E 80 02 00 7D 5E 00 4F 5F 01 00 00 00 0F 1F 00
  24. 00 00 00 00 00 01 00 01 00 03 00 00 00 00 00 03
  25. 00 00 00 00 80 03 97 7E


Вот тут можно примеры посмотреть (снифал, чтобы лучше разобраться)
www.sendspace.com/file/ywsef9



Ранг: 1.1 (гость)
Активность: 0=0
Статус: Участник

Создано: 26 января 2010 16:20
· Личное сообщение · #27

Подскажите где почитать описание структуры import table. Цель - добавить вызов функции из dll, для использования в своем коде.




Ранг: 196.6 (ветеран), 11thx
Активность: 0.070.01
Статус: Участник

Создано: 26 января 2010 16:33
· Личное сообщение · #28

например, в книге "Symbian OS Internals: Real-time Kernel Programming"
на торрентах должна быть



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 29 января 2010 13:19
· Личное сообщение · #29

скажите а стандартный лоадер как нибудь можно научить именовать функции по сигнатурам?



Ранг: 41.9 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 26 февраля 2010 18:57
· Личное сообщение · #30

дело в том, что загруженные хексовским лоадером проги нельзя дебажить через TRK
пришлось написать скрипт сохраняющий имена всех функций в файл, потом гружу стандартным и возвращаю имена... хочется чтобы стандартный научился именовать функции



Ранг: 31.7 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 27 февраля 2010 18:53 · Поправил: TolyaN3z
· Личное сообщение · #31

Люди, нужна помощь.
Ковыряю программку под pre-9, в которой то-ли реализована проверка бинарника на целостность, то-ли просто баг (мало вероятно). В общем, любое изменение приводит к периодическому вылету программы (не постоянно, а только при интенсивном использовании проги). Причём вылет странный и закономерности в его появлении я не выявил - E32USER-CBase 71, по описанию этой ошибки всё ещё более становится непонятным - вылет происходит из-за не полной очистки стэка и попытке при этом выхода определённой функции из TRAP'а. Перебрал практически все TRAP'ы чтобы гарантировать правильный выход из них - без толку. В самом коде так же не видно следов умышленного исключения.
В общем, пошёл другим путём - нарыл к этой проге ключ под другой IMEI.
Сделал свой фейк plpvariant с тем же UID, что и в системе и подкинул в папку с прогой, которую она увидела и заработала с ней нормально. Всё вроде супер, прога зарегилась, работает, но тут появился самый главный косяк, которого и следовало ожидать в такой ситуации - если держать эту прогу открытой, все последующие запущенные программы будут работать с моей plpvariant, и соответственно будут получать другой IMEI.
В принципе, смысл понятен: загрузчик ищет нужную либу, находит её рядом с бинарником и подгружает в память, чем "перекрывает" существующую библиотеку. Соответственно, ядро имеет структуру DLibrary, в которой есть счётчик пользователей библиотеки и держит её, пока все (в данном случае - обьект исследования) не отпустят, потом удаляет из памяти. После удаления все проги снова начинают работать с оригинальной plpvariant.
Почитал Symbian OS Internals, как я понял, выгрузить библиотеку принудительно не выйдет. Или можно как-то добраться до обьекта DLibrary?
Если сразу же грузить другой прогой намеренно либу с диска Z, то она загрузится, но тогда и "мишень" загрузит её тоже (IMEI сверяется несколько раз). Получается замкнутый круг.
Что делать? Может кто встречался с подобным?


<< 1 ... 9 . 10 . 11 . 12 . 13 . 14 . 15 . 16 . 17 . 18 . 19 ... 20 . 21 . >>
 eXeL@B —› Основной форум —› Взлом прог под Симбиан
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати