PDA

Просмотр полной версии : Дизассемблируем U300 v30.01.02.44



dedKalash
09.07.2007, 15:06
Ну чтож настала пора и для U300. Работаемс в I D A p r o 5.0.

Код приведен в порядок.
На основе elf файла старой версии прошивки перетаскиваемс имена функций и данных на новую прошивку с помощью idc скриптов. Уже как 16 часов автономной работы скрипта на не шустром компьютере именовано около 12000 функций (из 31000 обнаруженных скриптом на старой прошивке).

Чуть позже обнаруживаем использование переменных как я делал для ets6x8 и т.д.

Выложить проект непредставляется возможным пока. Объем сжатого файла 300 мег.

Что видется:
1. Убрать удаление приложений при смене брю настроек.
2. Сделать идентификацию входящего звонка по 7-ми цифрам.

Ваши пожелания?

Insult
10.07.2007, 01:53
Ну чтож настала пора и для U300.
Ваши пожелания?
1. Возможность копировать приложения для последущих загрузок.
2. Сделать идентификацию входящего звонка по 7-ми цифрам? - очинь ХАЧУ!
3. Что б mp3 плеер понимал кирилицу в названии файлов (переименовывать влом).
4. Определить количество допустимых символов в названии файлов (включая расширение)
5. Устранить проблему переноса фотоконтента с версии 0220 в 0244
6. Установить возможность выключения звука "нет сети"
7. При работе со 2й линией (если переключений более 2х) исправить несохранение последующих абонентов
8. Убрать возможность "юбика" просматривать всю файловую систему других устройств
9. Добавить возможность (как в нокии) присваивать мелодию контактам
находящимся на карте
10. Добавить возможность регулировать микрофон
11. Добавить возможность записи разговора диктофоном при разговоре с возможностью последующей выгрузки по кабелю или БТ
12. Добавить возможность работы с gif
13. Вывести в основное меню пункт с мелодиями, картинками и т.д.
:cool:

Insult
10.07.2007, 02:01
Увеличить кол-во номеров в истории вызовов :kulak:

Insult
10.07.2007, 02:21
Если будет код доступа к служебной инфе - буит хорошо для многих

imtmc450
10.07.2007, 03:52
Ну чтож настала пора и для U300. Работаемс в I D A p r o 5.0.

поддерживаю начинание!

На основе elf файла старой версии прошивки
ELF от 38-ой версии ?


перетаскиваемс имена функций и данных на новую прошивку с помощью idc скриптов.

можно скрипты выложить?

dedKalash
10.07.2007, 10:35
ELF от 38. Есть свежее?
Скрипты не могу приложить, почемуто в этом форуме нет такой возможности или я ее не нашел.

imtmc450
10.07.2007, 12:34
Свежее нет.
Приложить файл можно, если выбираешь ответ с цитированием.

GSM-Box
10.07.2007, 14:09
можно выкладывать у меня на обменике ...
на том же компе есть и ида если что можно там и работать для этого надо ко мне в приват %)

dedKalash
11.07.2007, 14:56
Выкладываю скрипты. Мой много месячный труд е мое. :)

http://slil.ru/24619609

Все риски по использованию скриптов берет на себя лицо, запускающее скрипт. Скрипты плохо комментированы. Но однознано круто помогают дизасмить код. Минимум ручной работы необходимо после работы или для работы скрипта.

dedKalash
11.07.2007, 14:58
Определено уже более 20000 функций. Ждемс...

imtmc450
12.07.2007, 14:25
а можно кратенькую инструкцию, как пользоваться скриптами, а то, как по одной сигнатуре функции вылавливать, понял, а вот как все это сделать скопом, пока не доходит... :-(

dedKalash
12.07.2007, 15:54
В коде с правильными именами надо выделить весь код или его часть. Создать сигнатуры, задав имя файла и длинну сигнатуры в командах. Затем загружаем код без имен. Выбираем код по которому хотим пройтись, открываем скрипт поиска имен по сигнатурам, выбираем прямой проход или реверсный, выбираем искать уже найденные ранее имена или нет и ждем.
Надо сказать что везде приходится задавать всегда имя массива, т.к. в иде нет возможности сгенерировать хотябы число и сделать имя массива уникальным. Иначе если принудительно прервать выполнение скрипта, то эти массивы так и повиснут в памяти до перезагрузки программы и со старым именем массива ничего не получится.
Если код не выделять, то будет проход только по функции на которой стоишь.
Если выделяешь много кода, то смотри чтобы начало и конец выделения находились в телах функций.
При этом код с именами должен быть причесан, т.е. начало и окончания функций должны быть правильными, иначе поиск по коду без имен не всегда будет успешным.
Для причесывания кода с именами и кода без имен есть крипт ARM_del_func_that_isflow.idc. Название дурацкое, но он свое дело делает. Подчищает начала функций и хвосты. Удаляет нефункции.

dedKalash
12.07.2007, 16:01
Определено 23500 функций, скрипт работу закончил. Теперь пишу скрипт для определения коротких функций, всего по паре команд. Таких функций еще около 15000. Затем сделаем перетаскивание имен полей данных.

Insult
12.07.2007, 21:59
Определено 23500 функций, скрипт работу закончил. Теперь пишу скрипт для определения коротких функций, всего по паре команд. Таких функций еще около 15000. Затем сделаем перетаскивание имен полей данных.Я к тому моменту еще напишу пожеланий

Insult
15.07.2007, 17:06
еще напишу пожеланийПередача контактов по БТ

PROSKY
16.07.2007, 11:23
Респект!!! Продолжай работу!!!! Ждём результатов!!!!

dedKalash
16.07.2007, 11:25
Здесь есть некоторые идеи которые невозможно реализовать на уровне дизассемблера. но идее быть никтоне запрещает :).

Возникли трудности.

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

Придется откатится на неделю другую назад. И сделать некоторую работу с начала.

Видимо база данных глюконула.

Insult
17.07.2007, 23:14
Дальнейшее улучшение кода и сохранение в файл приводит к невозможности его открыть с ошибкой нехватки памяти.

Видимо база данных глюконула.В версии 02.44 обнаружил еще глюк: При частых звонках на 1н и тот же номер (как я думаю) история вызовов перестаёт сохранятся.

Insult
17.07.2007, 23:17
Телефон тормозит при потере сети и когда в памяти куча всячины.

dedKalash
21.07.2007, 21:56
Дизасм близок к завершению.
Поименована куча функций, определена куча относительных ссылок на данные и функции. Функции типизированы.

База данных весит в сжатом идой виде примерно 160 метров.
Предполагаю, сжатая не идой,а раром будет весить 80 метров.

Завтра начинаемс копать.

Есть предложение, как только я чтото накопаю, надо будет проверять, на что у меня обычно мало времени. Так что я буду выкладывать адреса и данные, и если кто желает, то пусть поучаствует в проверке патча.

заранее спасибо.

dedKalash
23.07.2007, 18:04
К сожалению, я смотрю, что добровольцев по проверке патчей не выявилось, или телефон дорог :) или времени нет :).

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

Прошу отозваться волонтеров.
Приветствуется наличие софта и умение перепрошивать.
А также, если умные ручки наваяли софт для быстрой и удобной перепрошивке отдельных страниц У300, то просьба поделиться.

Ведь общее дело делаем.

И еще... кто нибудь пробовал прошить телефон измененней прошивкой. Хотя бы текст измените и проверьте. Это нужно для того, чтобы убедиться что даунладер не проверяет контрольную сумму кода если таковая есть. Ведь в файле прошивки собственно код начинается с 0х18000 если мне не изменяет память, а до этого данные мне не известны.

imtmc450
23.07.2007, 18:16
Пиши что нужно проверить, сделаю, никаких напрягов с перепрошивкой нет.
Никаких проверок по CRC нет, менять можно все. За исключением разве что бута(будут проблемы с подъемом тела) :-).
Сама прошивка начинается с 0x28000.

Insult
24.07.2007, 01:58
Я поучаствую

dedKalash
24.07.2007, 12:47
Вот первый тест на распознавание контакта по номеру не строгого соответствия.

Адреса привожу c учетом смещения, т.е. к адресу ничего не прибавляем.

0x002e5dc2 было 0х12 ставим 0x14
таким образом меняем процедуру сравнения с strncmp на strstr, т.е. поиск строки в строке. Авось повезет. Затем звоним себе любимым и смотрим определился ли входящий, когда номер в книге совпадает и когда номер в книге не полностью совпадает.

Если не поможет, то пробуем дополнительные значения
0х10, 0х16, 0х20, 0х22.

Описалово кодов.
0х01 - compare case sensitive
0x02 - compare lens
0x04 - strstr, в противном случае strncmp
0x08 - memcmp
0x10 - check some additional parameter in contact (я не знаю какой)
0x20 - strncmp <=0 как совпадение, в противном слуае ==0 как совпадение.

Байты можно комбинировать.


Если не поможет откатываемся назад.

Кстати эта же процедура задействована для поиска пропущенных контактов, для уже сделанных звонков, и еще в некоторых процедурах.

Жду результатов, как можно скорее.

Yokel
24.07.2007, 18:36
Хакнуть бы тебе brew (что бы аську можно было поставить) мы бы тебе Нобелевскую премию дали!

dedKalash
24.07.2007, 19:04
Можешь начинать копить на премию :xexe:

Ребята, работа ведется???

Мне нужно знать, что кто-то что то начал делать...

dedKalash
24.07.2007, 23:54
Свершилось!
Я не стал дожидаться вас друзья и сам проверил. Я был прав.

Patch number 1
Make not strong matching of incoming call number with phonebook

ROM:002E5DC2 0x12 put 0x14
ROM:002E608E 0x12 put 0x14
ROM:002E65AC 0x12 put 0x14

IT WORKS!!!
==============================================================

Пользуйтесь. А премию не забываем копить. Скоро приеду забирать. ;)

dedKalash
24.07.2007, 23:55
Один "косяк" (как говорит Insult) остался. :)

Номера в книге с + все равно не определяются, к сожалению.

omir
25.07.2007, 14:15
Я бы тоже поучаствовал.

Вот только не пойму - а где прошивка?


На счёт аськи - поддерживаю.

dedKalash
25.07.2007, 14:25
Милости просим, но....
Так а нет прошивки, даже в сжатом виде она весит 8 метров.
Я выкладываю только адреса в прошивке, что там было (байты) и что надо по адресам записать (байты).

Пока тока так.

imtmc450
25.07.2007, 15:06
ROM:002E5DC2 0x12 put 0x14

работает



ROM:002E608E 0x12 put 0x14
ROM:002E65AC 0x12 put 0x14

не понял для чего эти адреса

dedKalash
25.07.2007, 15:19
Если по этим адресам не поменять, то контакт найдет, но мелодию и фотографию не найдет. Вот так-то.

imtmc450
25.07.2007, 19:29
Хм... оч оригинальный алгоритм :-)
сначала по номеру ищется сам номер, потом по номеру ищется номер к которому привязана мелодия, потом по номеру ищется номер к которому привязана картинка.

Yokel
25.07.2007, 19:41
Да аську все поддрежат!

Insult
27.07.2007, 01:27
Хм... оч оригинальный алгоритм :-)
сначала по номеру ищется сам номер, потом по номеру ищется номер к которому привязана мелодия, потом по номеру ищется номер к которому привязана картинка.самое обидное пока вы шукаете, скай новую п.о. катает.

PROSKY
27.07.2007, 09:51
самое обидное пока вы шукаете, скай новую п.о. катает.

Новый софт скоро появиться....:alc:

dedKalash
27.07.2007, 12:10
Аська врядли будет. Я могу сделать лишь не значительные изменения

dedKalash
27.07.2007, 12:12
Не бяда... будет новая прошива, оценим, сделаем и для нее все изменения, абы бабл плыл ;)

PROSKY
27.07.2007, 13:16
Аська врядли будет. Я могу сделать лишь не значительные изменения
Это плохо....:visit: :visit: :visit:

austenit
31.07.2007, 09:09
Дед, забей на 300-й и переходи уже на 520 :)))
На "венец" телефонастроения на сдма450...мля...

dedKalash
31.07.2007, 11:08
Не вопрос, высылай аппарат, адрес укажу в личку по согласию.
Слабо?

dedKalash
02.08.2007, 11:14
Обнаружился недостаток того метода что я предложил для определения контака по номеру. Если звонок на короткий номер справки или еще куда, то определяется бог знает что. Так что ждемс патча по серьезней.

dedKalash
02.08.2007, 11:17
Что еще я предполагаю сделать?

1. Уменьшить время перехода на след знакомест при редактировании текста. В данном случае, сделано для тормозов.

2. Сделать короткой вибру.
3. Если с умею, то сделать возможность выбора мелодии мп3 для будильника.

Insult
03.08.2007, 00:56
ROM:002E5DC2 0x12 put 0x14
ROM:002E608E 0x12 put 0x14
ROM:002E65AC 0x12 put 0x14

Прошил - и чета изменений незаметил, может не так пробую?

dedKalash
06.08.2007, 19:39
Переписал процедуру поиска контакта в книге по номеру, работает однобоко. Качественный поиск обеспечивается только когда в книге записан максимально полный номер +37529ххххххх (например). Где то что то еще проверяется (не в моей процедуре), буду смотреть.

Что найдено (можно тестировать):
процедура отключения брю приложения
процедура удаления миф и мод.
показание напряжения на вибро (стоит 3200 (фиг знает в каких единицах).

dedKalash
12.08.2007, 23:00
Новье!


Patch 3

уменьшение времени для перехода курсора на след позицию при вводе текста до 1 сек.

Decrease timeout to change cursor position while text editing

хх-не меняем!

было
ROM:0047044C xx xx 09 01 MOVL R1, 2000
стало
ROM:0047044C xx xx 89 00 MOVL R1, 1000
было
ROM:004706A2 xx xx 09 01 MOVL R1, 2000
стало
ROM:004706A2 xx xx 89 00 MOVL R1, 1000
было
ROM:00470C4C xx xx 09 01 MOVL R1, 2000
стало
ROM:00470C4C xx xx 89 00 MOVL R1, 1000
было
ROM:00470E70 xx xx 09 01 MOVL R1, 2000
стало
ROM:00470E70 xx xx 89 00 MOVL R1, 1000
было
ROM:00470EAC xx xx 09 01 MOVL R1, 2000
стало
ROM:00470EAC xx xx 89 00 MOVL R1, 1000

===============================================

Patch 4

Уменьшаем время игры вибро при входящем

Decrease timeout for vibra playing

stop
было
ROM:003FC15A 7d MOVL R1, 1000
стало
ROM:003FC15A 25 MOVL R1, 300

play
было
ROM:003FC37C DC 05 00 00 DCD 1500
стало
ROM:003FC37C BC 02 00 00 DCD 700

austenit
14.08.2007, 21:51
dedKalash
читай личку

Yokel
17.08.2007, 16:30
Калаш, а длинные смс сможешь сделать?

dedKalash
20.08.2007, 12:21
Вряд ли...
В последнее время что то туго идут исправления. Да и работы много.
На выходных сделаю чтонибудь новое.

Учудник
10.01.2008, 03:58
Вряд ли...
В последнее время что то туго идут исправления. Да и работы много.
Как продвигаются работы по ковырянию юбика?

dedKalash
18.01.2008, 19:25
Пока никак, много основной работы. И уже долго как никак. :(

sergeyD600
22.01.2008, 20:37
Пока никак, много основной работы. И уже долго как никак. :(
а для него вообще реально делать изменения отдельным файлом?
а потом просто заливать в тело как часть прошивки.

типа как патчи для Самсунга

dedKalash
24.01.2008, 20:39
Врядли. Есть здесь в форуме один спец по этому делу (забыл ник), он такое смог сделать для ху6х8, но для у300 пока видимо не вышло.

sergeyD600
24.01.2008, 23:01
хотя бы просто сделать в нем быструю разблокировку.
а то так не удобно просто пипец

probnik
25.01.2008, 13:11
А как уж быстрее? Открыл слайдер и набирай.
А на хрена его дополнительно блокировать?

dedKalash
28.01.2008, 12:44
не знаю есть ли они уже в сети, но я вчера нарыл вот...

###273933284# - включаем прием debug команд через клаву
#### - выключаем прием debug команд через клаву
###0# - debug reset
###1# - debug memory on/off (аппарат крайне тормозит)
###2# - debug Net on/off
###3# - debug avail on/off
###4# - synchronous DBGPrintf on/off (аппарат крайне тормозит)
###5# - modul dump
###6# - memory dump
###7# - resourse cash dump
###8# - file cash dump
###9# - resource cash close
###10# - perf weight on/off
###11# - sms test on/off

Будьте внимательны, т.к. есть еще три/четыре команды коды которых я не знаю: softreset, hardreset и permanent debug keys

Что все это значит я не разбирался. оставляю на откуп энтузиастов. Прошу отписаться.

dedKalash
28.01.2008, 12:46
Кстати может кто знает SPC (Service programming Code) для U300? оч надо.

ZELON
28.01.2008, 19:05
Кстати может кто знает SPC (Service programming Code) для U300? оч надо.
у каждого тела он свой...
считать можно с помощью u300 ucst.. ссылка на сабж у тебя в личке

Учудник
29.01.2008, 15:30
Кстати может кто знает SPC (Service programming Code) для U300? оч надо.
если есн 00000000 то и спц 000000!

dedKalash
29.01.2008, 16:57
На хуавее был метод определения SPC из ESN. Для U300 он не работает.

Yokel
29.01.2008, 21:06
Затихло?