eXTracted INternals

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

Поделиться | 
 

 ? Чтение произвольного участка памяти тела MIDlet'ом?

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: ? Чтение произвольного участка памяти тела MIDlet'ом?   Сб 14 Апр - 3:41

Приветствую основателей и участников!

Не подскажете ли как решить проблему:
- требуется читать мидлетом произвольный адрес памяти.

Да, знаю - "нельзя, безопасность и пр., и пр."
Но надо, это же красивая задачка!
Сначала научимся читать, а потом...

К слову, один поляк таки понял, как - нашел "дырочку" в KVM
(и ссылка есть, и материальчик кой-какой).

С глубоким уважением,
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Пн 16 Апр - 0:47

Да, слышали, читали. Gowdiak его зовут. Так там жеж в его отчете все ясно описано что и как он делал. Берешь прошивку целевого телефона смотришь как там дескрипторы классов устроены и делаешь как он в отчете описал. Там вся пляска идет от того что в KVM нет контроля над пределами прыжка через байткод goto.
Вернуться к началу Перейти вниз
Посмотреть профиль
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: Security Domains   Пн 16 Апр - 5:02

Привет Вам HEX и благодарю за отклик!
Из ответа я понял, что Вы знаете об этом случае,
но "теоретически".
А не знаете ли кого-то, кто знал бы "практически" ? Smile
Так, посоветоваться, если заминка случится...

Еще вопрос, если позволите:
KVM используются permissions.
Если ими не пользоваться, то или PushRegister не работает, или
MIDlet заводит диалог с пользователем при попытке соединиться с сетью.
Покупать ключи - это крайний случай, да и не знаю реальный ли для частного лица.
Проверяются ли permissions мидлета только при установке или при каждом запуске.
Известны ли пути обхода этих ограничений, но не патчеванием,
а "тонкой" модификацией KVM или "дескриптора" приложения уже в аппарате таким образом, чтобы мидлет стал "trusted"?

Еще хотел спросить: я не большой спец. по ассемблеру (увы, пробел в образовании, к-рый надо исправлять) поэтому интересуюсь
С (С++) текстами оси (ей) Siemens и KVM.
Надежды на положительный ответ почти нет, но все же...

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

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Пн 16 Апр - 8:43

Ну я пытался повторить эту идею на одном из теоефонов, в котором была не KVM, а самопеределаная KVM. Но не осилил изза отсутствия достаточных знаний о том как устроено ООП java.

Людей, кто это практически смог заюзать не знаю.

Сорцы оси и KVM есть.

KVM:
https://phoneme.dev.java.net/downloads_page.html

В сименсах юзается Nucleus OS сорцы вот:
http://www.downtracker.com/ru/item/?Nucleus+v3.24
Вернуться к началу Перейти вниз
Посмотреть профиль
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: Благодарю за ссылки!   Вт 17 Апр - 9:59

Не смог скачать KVM по указанной ссылке - тормозит или проблемы с комннектом.
А что там по KVM?
Вернуться к началу Перейти вниз
Посмотреть профиль
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: Не понял ...   Вт 17 Апр - 10:06

По ссылке на Nucleous лежит некая php-шная приблуда, к-рую я даже не стал смотреть.
Это шутка такая или ...?
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Вт 17 Апр - 11:18

dummyguy пишет:
Не смог скачать KVM по указанной ссылке - тормозит или проблемы с комннектом.
А что там по KVM?

Вот закешированая гуглом.
http://209.85.129.104/search?q=cache:MS37gqIW568J:https://phoneme.dev.java.net/downloads_page.html+https://phoneme.dev.java.net/downloads_page.html&hl=en&ct=clnk&cd=1&client=opera

MR2 includes implementations of CLDC 1.1, MIDP 2.1, and a number of optional package JSRs.
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Вт 17 Апр - 11:26

dummyguy пишет:
По ссылке на Nucleous лежит некая php-шная приблуда, к-рую я даже не стал смотреть.
Это шутка такая или ...?

Хм, реально бред. А раньше были сорцы.
Вот тут есть http://forum.samsung-mobile.ru/viewtopic.php?t=23039&highlight=nucleus тока придется зарегиться чтобы показало атач.
Вернуться к началу Перейти вниз
Посмотреть профиль
LazyC0DEr



Количество сообщений : 3
Дата регистрации : 2006-12-04

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Ср 9 Май - 7:09

Как правило, к телефонам есть SDK + Эмулятор для запуска Java-апплетов. У Сименса эмулятор компилится из тех-же исходников, что и прошивка. У SE эмулятор не допускает переполнение буфера/подмену типов, а на реальной трубке эксплоты запускаются Very Happy . Исходники Java2ME можно взять у SUN, дыр там практически нету, но они могут быть полезными при исследовании JVM конкретного девайса. Далее ищутся нативные методы в которых возможно переполнение буфера.
Наиболее перспективными, в плане дыр, будут методы и классы написанные разработчиком телефона/девайса.

В итоге получается, что-то вроде :

Код:

System.gc();
int[] a1 = new int[1];
int[] a2 = new int[64];
             
SomeClass.ExploitedMethod(a1, ... );
после чего (если повезет) длина a2 становится равна 0xFFFFFFFF.
дальше все приходится делать максимально быстро, пока сборщик мусора не заметил наших шалостей.

dummyguy пишет:

К слову, один поляк таки понял, как - нашел "дырочку" в KVM
(и ссылка есть, и материальчик кой-какой).
для телефонов Siemens эту проблему неоднократно и успешно решал chaos. У него на сайте или походив по форумам о сименс можно найти мидлеты эксплуатирующие дыры в различных методах(правда они все обфуцированы).

PS: сорри за сумбурность.
Вернуться к началу Перейти вниз
Посмотреть профиль
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Ср 19 Сен - 5:59

Привет Вам LazyC0DEr!

Прошу извинения за нелюбезность: спросил и пропал.
Но потребовалось время, чтобы глубже войти в проблему.
За это время удалось пообщаться с Chaos и другими грамотными людьми, но проблема не решена и продвижения почти нет.

Вы набросали схему того, как можно было бы поискать exploit в системных или классах разработчика.

Не поясните, а как может наш массивчик волшебным образом "накрыть" всю память аппарата. Именно это мне и требуется и только на один момент: заглянуть в RAM и можно отпустить массив.

Или все же переполнением я "завешу" аппарат и он не сможет дальше нормально работать без перезагрузки?

И в продолжение: а как в symbian из C++ реально добраться до произвольного адреса RAM или я получу, как в виндах ошибку чтения памяти за пределами памяти приложения. Можно ли получить приложению привилегии супервизора (ОС)?

С уважением,
dummyguy@mail.ru
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Ср 19 Сен - 15:48

dummyguy пишет:

И в продолжение: а как в symbian из C++ реально добраться до произвольного адреса RAM или я получу, как в виндах ошибку чтения памяти за пределами памяти приложения. Можно ли получить приложению привилегии супервизора (ОС)?
Вот так:
http://nokiafree.org/forums/showpost.php?p=391886&postcount=3
Тока надо знать что куда мапится.
Вернуться к началу Перейти вниз
Посмотреть профиль
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Чт 20 Сен - 2:44

Hex пишет:

Вот так:
http://nokiafree.org/forums/showpost.php?p=391886&postcount=3
Тока надо знать что куда мапится.
Я прочитал, но там есть оговорочка, к-рая обесценивает практически все сказанное: чтобы получить core/kernel privilegies надо выполнить тучу обращений, к-рые занимают ок. 20 мин при этом надо менять туда-сюда какой-нибудь байтик, но так, чтобы не сломать систему...

А нет ли чего поизящнее?

Например, сущствует приложение для symb7 под названием CellTrack (монитор сети), так вот оно без проблем обращается к системной памяти (GSM инфо).
Как такое возможно?

С уважением,
dummy
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Чт 20 Сен - 6:32

Если знаешь даже какое приложение умеет - отреверсь его и нам расскажи.
Вернуться к началу Перейти вниз
Посмотреть профиль
dummyguy@mail.ru



Количество сообщений : 8
Дата регистрации : 2007-04-14

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Чт 20 Сен - 7:37

Hex пишет:
Если знаешь даже какое приложение умеет - отреверсь его и нам расскажи.
Я начинающий, пока нет инструмента, да нужных навыков - тоже.
Могу назвать ссылочку

http://www.allnokia.ru/symbsoft/letter67-3.htm

Прога называется CellTrack, там есть download

С уважением,
dummy
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Сб 20 Окт - 4:16

dummyguy пишет:
Hex пишет:

Вот так:
http://nokiafree.org/forums/showpost.php?p=391886&postcount=3
Тока надо знать что куда мапится.
Я прочитал, но там есть оговорочка, к-рая обесценивает практически все сказанное: чтобы получить core/kernel privilegies надо выполнить тучу обращений, к-рые занимают ок. 20 мин при этом надо менять туда-сюда какой-нибудь байтик, но так, чтобы не сломать систему...
Ваще-то выяснилось что этот прием не катит на Symbian 9.

dummyguy пишет:

Например, сущствует приложение для symb7 под названием CellTrack (монитор сети), так вот оно без проблем обращается к системной памяти (GSM инфо).
Как такое возможно?
Очень просто. Прога конектится к модему телефона и шлет туда AT команды типа "AT+CSQ".
Вернуться к началу Перейти вниз
Посмотреть профиль
LazyC0DEr



Количество сообщений : 3
Дата регистрации : 2006-12-04

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Пт 2 Ноя - 2:35

dummyguy@mail.ru пишет:

Не поясните, а как может наш массивчик волшебным образом "накрыть" всю память аппарата. Именно это мне и требуется и только на один момент: заглянуть в RAM и можно отпустить массив.
Допустим, у нас есть функция class.readBuffer(int [] buf, int size);
которая читает некие данные размера size в массив buf.
В реализации нету проверки на size <= ArrayLength(buf).
Если передать в нее массив размерностью меньше size, то функция запишет данные за границу массива buf. Дальше все зависит от характера данных которые читаются в buf и от того как представлены массивы/переменные в конкретной машине.

Для сименса:

дескрипторы массивов располагаются в памяти в порядке их объявления.
int [] a1
int [] a2

addr(a1) < addr(a2)

дескриптор массива в памяти выглядит так:

ptr : dword; - указатель на участок памяти выделенной под массив
size : dword - размер массива

dummyguy@mail.ru пишет:
Или все же переполнением я "завешу" аппарат и он не сможет дальше нормально работать без перезагрузки?
Тут уж как повезет.
Вернуться к началу Перейти вниз
Посмотреть профиль
wl



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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Вт 18 Дек - 6:02

а вот интересно, как поведет себя kvm на unhandled exception - к примеру, если читать из нулевого inputsream'a, передвинув с помощью JavaBite обработчик исключения?
Вернуться к началу Перейти вниз
Посмотреть профиль
twit



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

СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   Вт 18 Дек - 6:06

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




СообщениеТема: Re: ? Чтение произвольного участка памяти тела MIDlet'ом?   

Вернуться к началу Перейти вниз
 
? Чтение произвольного участка памяти тела MIDlet'ом?
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1

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