eXTracted INternals

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

Поделиться | 
 

 Обход Symbian Capabilities

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



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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 14:58

twit пишет:
Crying or Very sad
А в коде это как-то проявляется?
Я посмотрел, в общем-то это в документации указано, какие методы static, а какие - нет Smile
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 15:13

twit пишет:
Crying or Very sad
А в коде это как-то проявляется?
Т.е., я вижу в коде
BL Hz::CreateSelf()
но в саму функция я не могу заглянуть и увидеть что она делает.
По названию можно судить о том, что в этом примере это, *возможно*, конструктор класса, а обращяется ли он к переменным - это спорный вопрос.

Адд.
Т.е. как узнать что метод static?
Практически никак. От обычной функции фиг отличишь.

В случае же RProcess::Type() - это обычный метод класса RProcess. Поэтому первый параметр - это указатель на сам класс RProcess (читай самое начало этой темы), а второй параметр - это указатель на TUidType. Функция не может вернуть структуру TUidType через R0, TUidType не влезет в 4 байта, поэтому указатель на возвращаемое значение передают как параметр. Т.е. реально декларация RProcess::Type() должна выглядеть вот так:
TUidType * RProcess::Type(TUidType * pUid);

Но благодаря особенностям компилера можно юзать и
TUidType RProcess::Type();

twit пишет:

\\оффтоп
Это у всех или только у меня форум на старнном языке(итальянский? испанский?)
Профиль = profil
Цитата = citer
Видать да. Какая-то херня у хостера. Раньше был нормальный русский. И в настройках форума прописан русский. А потом почему-то часть кнопок стало на французком Sad Но вижу что это мало кого останавливает Smile
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 15:56

Very Happy
Осталось прояснить несколько вопросов:
1. Всётаки BX LR - перевод процессора в THUMB режим,
код из X-Plore:
Код:

.code:0000025C                BL      LoadDatAddrToR0
.code:00000260                LDR    R12, =LoadDatAddrToR0
.code:00000264                ADD    LR, R4, #0x18
..........
LoadDatAddrToR0:
.code:00000000                LDR    R0, =dword_898
.code:00000004                BX      LR
Я это понимаю так:
В R14(LR) заносится 0x260
В R15(PC) заносится 0x0(&LoadDatAddrToR0)
В R0 заносится dword_898
И идёт возврат на 0x260 с переводом в thumb-режим,так?
(LoadDatAddrToR0 - это имя дал я)

2.
Код:
000000a0  _ZNK8RProcess4TypeEv(R6, R8, R2, R3);
Так говорит desquirr, но что означают эти r2 и r3?
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 16:23

какой xplore изучаешь? во второй строчке скорее всего грузится в r12 значение 0, а не адрес процедуры. выкладывай exe
BX LR - это возврат из процедуры, а в какой режим, там кажется како-йто бит должен указывать, никогда не заморачивался такими подробностями

2. десквир не прав, там только 2 параметра
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 16:37

Xplore 1.13
Скачать: files8.com/uploads/symbian_9__sistemnye/10227_xplore_s60_3rd.zip (370kb)
Сам exe-шник(лоадер) dump.ru/files/n/n38858568/

Я всё пытаюсь вникнуть в процедуру создания процесса.

Я думал что BX всегда в thumb переводит Smile
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 16:45

wl пишет:
какой xplore изучаешь? во второй строчке скорее всего грузится в r12 значение 0, а не адрес процедуры. выкладывай exe
BX LR - это возврат из процедуры, а в какой режим, там кажется како-йто бит должен указывать, никогда не заморачивался такими подробностями

LR - Link register. В него обычно записывают адрес возврата. BX LR - просто делает возврат. Тот же эффект будет при MOV PC, LR.

Переход в Thumb делается когда адрес, который записывается в PC, нечетный. Если LR = 0x1000, то BX LR перейдет в ARM, а если LR = 0x1001 - то в Thumb. Хотя поитогу будет все равно выполняться код с адреса 0x1000.
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Пн 17 Дек - 16:55

Цитата :
Переход в Thumb делается когда адрес, который записывается в PC, нечетный. Если LR = 0x1000, то BX LR перейдет в ARM, а если LR = 0x1001 - то в Thumb
Видать у меня документация не очень хорошая. В ней написанно что если флаг T, т.е. как я понял это 20-й бит, равен нулевому биту регистра, то присхдодит переход в thumb, т.е. T сброшен, адрес чётный - переход, T установлен, адрес нечётный - тоже переход.
Хотя там всётаки написанно, что нулевой бит регистра копируется во флаг T и насильно сбрасывается в 0. Невнимательный я.
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 4:39

http://dump.ru/files/n/n1291788068/ - база IDA для этого файла с расписанными функциями.
там видно место, где лежит реальный распаковщик, упакованный zlib-ом, вот, чтобы изучить его, нужно его аккуратно вырезать из файла и распаковать. после чего грузить в IDA как бинарь с процом ARM, и смотря на соответствие переданных _указателей на функции_ в самую первую функцию лоадера, и всё станет ясно. Но, как я уже говорил, что проще и приятнее это посмотреть на более древних версиях, когда они распаковщик не ужимали в zlib
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 5:06

wl\
Спасибо, пойду разбираться
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 8:54

Не курится оно что-то.
Смотреть надо в prepare_to_extract?
начинается так
Код:

.code:0000022C                MOV    R6, R0          ; R6=0x207C
                MOV    R4, #0x2000    ; R4=0x2000
                ADD    R11, R4, #0x28  ; R11=0x2028
                ADD    R9, R4, #0x30  ; R9=0x2030
                ADD    R8, R4, #0x34  ; R8=0x2034
                MOVL    R7, 0x30B0400  ; R7=0x30B0400
                ADD    R7, R7, #0x90  ; R7=30B0490
                AND    R5, R7, #0x490  ; R5=0x490
                MOV    R7, R7,LSR#16  ; R7=0xC
                SUB    SP, SP, #0x14
                BL      openfile        ; param1 -> Rfs&
                BL      get_offsets    ; R0=offsets
openfile - открывает сам файл app.bin
get_offsets - заносит в R0 поинтер на какой-то массив
Далее по различным адресам чанка заносятся указатели на функции и выполняется CreateLocalCode на чанк чтобы создать из этого чанка выполняемый код.
Затем в inflateInit2 обнуляется участок памяти чанка размером 0x38 байт и вызывается InflateInit2_.
Потом по адрессу 0x2024+0x1C+0x2040+4 записывается указатель zlib_loader(кстати что это за массив?)
Потом на чанке вызываются inflate, inflateEnd.
Затем на весь чанк User::IMB_Range, чтобы гарантировать выполнение кода.
Затем 0x38 байт чанка снова обнуляются и идёт Inflateinit2 и InflateEnd
Затем снова IMB_Range на чанке и выход из функции prepare_to_extract, В R0 возврашается адресс чанка+var34.
Всё верно?
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 11:12

говорю же, что проще разбираться на старых лоадерах, там всё видно.
"какой-то массив" - это смещения в коде лоадера, на основе которого вычисляется "магическое число", используемое для декрипта app.bin
это число по задумке должно защитить код лоадера от изменения - BiNPDA любили кряк встраивать прямо в лоадер.
zlib_loader - это распаковщик app.bin, зажатый алгоритмом zlib (точнее deflate) - соответственно, его распаковывают методом inflate(), а затем из распакованного лоадера создают секцию кода, начиная с 0-го смещения которого и находится распакованный лоадер. туда затем прыгают и распаковывают app.bin
0x38 - это размер структуры zstream, которая используется в качестве параметров для inflateInit2_, inflate и inflateEnd. Структура среди прочего хранит указатели на запакованный и распакованный массивы, и их размеры.

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



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 11:31

Very Happy просто мне надо разжевать пару раз чтобы я понял
вырезал лоадер, распаковал Smile
а то что размер распакованного лоадера 0x490 - совпадение?
Код:
  MOVL    R7, 0x30B0400  ; R7=0x30B0400
                ADD    R7, R7, #0x90  ; R7=30B0490
                AND    R5, R7, #0x490  ; R5=0x490
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 13:38

вот пока не возникнет желания выяснить это самому, покопавшись в других лоадерах, и тому подобное, за кряки лучше не браться. всегда нужно стараться самому во всем разобраться, только это единственный путь к успеху
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 13:48

возможно ты и прав. прото хочется много и сразу.
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 13:58

Загрузил сейчас ProfiMail 2.85\S60 а лоадер не показал вызовы типа
Код:

B      loc_804

loc_804                             
.code:00000804                LDR    PC, =operator delete[](void*)
хотя вроде должен


ADD:
хотя не, не должен, на new и delete и раньше не показывал....
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 16:23

если бы тебе действительно было интересно, ты бы хотя бы глянул профимайл 2.85 для UIQ (который между прочим идёт в одном архиве с остальными версиями), и увидел бы чистый незамутненный лодер (даже zlib-поток основного файла непоксорен похоже), доживший до нынешних дней, а всё почему? потому что под UIQ никто не ломает, и смысла париться с ним нету. А как показывает практика, серийник одинаково генерится для всей линейки, и в целом потроха одной версии должны быть предельно похожи, так как компилируются из одних исходников.
так что, twit, тебе сплошной низачёт

update: вспомнил, в профимыле главное это отрубить проверку с оффсайта, но даже и здесь наверняка это проще изучить как сделать
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Вт 18 Дек - 22:58

Я в ProfiMail полез чтобы выяснить про 0x490
[quote=wl]вот пока не возникнет желания выяснить это самому, покопавшись в других лоадерах......[/quote]

Версию для UIQ3 я тоже достал и распаковал, но не стал открывать пока.
Я не ставлю задачю сразу сломать эти программы, я пытаюсь привыкнуть к особенностям арм-кода.
А то, что под UIQ3 ничего так не защищается, как под S60, даже в мыслях небыло, т.к. считал что S60v3rd и UIQ3 для разработчиков одно и тоже, просто собирают одинаковый исходник под разные SDK, поэтому не ыидел смысла даже там ковыряться пока.
А почему под UIQ не ломают?

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



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

СообщениеТема: Re: Обход Symbian Capabilities   Ср 19 Дек - 1:04

я говорил про UIQ, а не UIQ3. это там, где телефоны p800, p910 и Symbian 7.0
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: Обход Symbian Capabilities   Чт 20 Дек - 3:25

у ARTeam появился тутор по распаковке программ LCG:
http://arteam.accessroot.com/tutorials.html?fid=217
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Чт 20 Дек - 5:41

wl пишет:
у ARTeam появился тутор по распаковке программ LCG
Первый раз вижу что тутор себя в loopback пытается сделать. Т.е. коннектится на какойто порт на 127.0.0.1
Параноя видимо Suspect
Вернуться к началу Перейти вниз
Посмотреть профиль
TolyaN



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

СообщениеТема: Re: Обход Symbian Capabilities   Чт 20 Дек - 15:20

twit пишет:
wl пишет:
у ARTeam появился тутор по распаковке программ LCG
Первый раз вижу что тутор себя в loopback пытается сделать. Т.е. коннектится на какойто порт на 127.0.0.1
Параноя видимо Suspect
У меня при открытии .chm, 'windows\hh.exe' в инет полез, я его залочил фаерволом, да и всё.
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: Обход Symbian Capabilities   Чт 20 Дек - 21:11

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



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

СообщениеТема: Re: Обход Symbian Capabilities   Пт 21 Дек - 1:32

вообще странно, вряд ли там какая-то подлянка, скорее всего внешняя ссылка затесалась.
вроде так и есть - он тянет картинки с сайта кошек

---------------

Пляяя, посмотрел сегодня на распакованное профимыло, это что-то. Код проверки ключа где-то глубоко в попе: создается кодовый сегмент, в который хитрым способом декодируется текст проверки ключа. И если раньше было видно, с какого места происходит вызов этого кода (около RChunk::Base), то теперь такие вызовы вообще фиг найдешь. Похоже, вызов BSoD после 5-ти неверных попыток тоже поместили в новую секцию. Но в общем-то для профимыла это не критично, главное - отрубить проверку с оффсайта, а это уже попроще... Надо будет глянуть в PPC-версию, с отладкой всяко проще понять что к чему.

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



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

СообщениеТема: Re: Обход Symbian Capabilities   Ср 26 Дек - 5:19

а как можно сделать из dll - lib/dso, чтобы подключать к проекту без RLibrary::Load?
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: Обход Symbian Capabilities   Ср 26 Дек - 5:37

Надо почитать как делать динамические либы в симбиане.


Последний раз редактировалось: (Сб 29 Дек - 10:01), всего редактировалось 1 раз(а)
Вернуться к началу Перейти вниз
Посмотреть профиль
Спонсируемый контент




СообщениеТема: Re: Обход Symbian Capabilities   

Вернуться к началу Перейти вниз
 
Обход Symbian Capabilities
Предыдущая тема Следующая тема Вернуться к началу 
Страница 5 из 6На страницу : Предыдущий  1, 2, 3, 4, 5, 6  Следующий

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