Форум elfse.com

Здравствуйте, гость ( Вход | Регистрация )

Форум переехал на новый адрес: forum.elfse.com
Текущий форум остаётся в качестве архивного.
Обсудить текущее положение дел можно здесь.
 
Ответить в данную темуНачать новую тему
> TriX: универсальная система для патчинга, Краткий обзор возможностей, скрипты
khodomay
сообщение 15.9.2009, 11:49
Сообщение #1
Бывалый
Иконка группы
OFF 292 SE

О пользователе

Основная идея программы: встроенный, готовый набор скриптов (короткий обзор некоторых из них, приведён ниже) для работы с файлами прошивки. Скрипты можно применить для любой прошивки. Скрипты генерируют библиотеки, есть дисассемблер и прочие вкусности (QuickFindPattern, GetByte, SetWord...)
Скрипты програмы написаны непосредственно на языке С, в программе TriX - встроенный анализатор языка С, таким образом скрипты выполняются непосредственно из источника.
Пример: При анализе и поиске функций в прошивке используется Lib_Clara.h с соответствующими номерами swi.

SVN для загрузки проэкта: ]]>https://svn.g3gg0.de/svn/default/trunk/nokia/TriX]]>
Прим.: Желательно настроить обновления TriX с использованием TortoiseSVN, иначе по даной ссылке будете загружать очень долго. Всего выложенного на SVN, можно не качать (достаточно того, что приложил к сообщению).
Для доступа на SVN:
Код
User: mados   Login: behave!

Прим.: у меня загрузка с этого SVN, работает очень плохо, с другими SVN (Perk11, Yael) всё работало намного лучше. Хотя, я настроил и всё загрузил.

Если, не хотите качать с SVN, то берите, уже готовый набор.
TriX со всеми аддонами и скриптами, для SE:
Прикрепленный файл   TriX.zip ( 7.67 мегабайт ) Кол-во скачиваний: 112

Отдельно скрипты:
Прикрепленный файл   scripts.zip ( 478.36 килобайт ) Кол-во скачиваний: 115


Пример загрузки прошивки и построения библиотеки с swi_number начиная от 0x112 и до 0x396

1) На вкладке General отмечаем чекбокс Input File и выбираем файл прошивки:
Прикрепленное изображение

2) На вкладке Scripts выбираем скрипт для работы:
Прикрепленное изображение

3) Жмём Add, жмём Start

Прикрепленное изображение

3.1) Если скрипт требует вводу команд, то вводим их и жмём "Enter"
Прикрепленное изображение

Прим.: показал, на примере создания библиотеки. Но лично мне больше нравятся другие опции.

Короткий обзор скриптов программы

locate.trx - вводим имя ф-ции, получаем её адрес. Имя функции должно быть такого вида:GVI_FillSolidRoundRect.
Но зачем этот скрипт, если есть либбилдер?! Хотя и этим, тоже можно пользоваться.

dis_arm_vkp_patch.trx - вводим патч и получаем его исходник (нужно переключать режим GNU_FASM), можно загрузить либу в память... и через воркспейс смотреть память\адреса. Этот скрипт опишу чуть более подробно.
Вот в двух словах мои "эксперименты":
CODE

============================================
Сохраню тут c:\temp\1.vkp, так будет проще вводить адрес
============================================
Код
;K800 SW-R8BF003
;permanent sms remainder counter/постоянный счётчик остатка символов смс
;(с) den_po
;(p) Ax
+44140000
10bf2d4: 1528 A128
10bf2e2: 584903A808239B1ECA5AC252FBD16846 6B461B7803A206210E98C4F22EFC2AE0
10bf2f2: 00780A216B463CF7 FFFF250064000000


=============================================
как выше, мне не привычно, лучше пусть будет так...
прибавим калькулятором :-)
=============================================

Код
451FF2D4: 1528 A128
451FF2E2: 584903A808239B1ECA5AC252FBD16846 6B461B7803A206210E98C4F22EFC2AE0
451FF2F2: 00780A216B463CF7 FFFF250064000000


=============================================
так... ковыряем дисАРМом... переключим режим, в FASM
=============================================
Код
include "x.inc"

sub_451FF2D4 equ 0x451FF2D4
sub_451FF2E2 equ 0x451FF2E2
off_451FF2F4 equ 0x451FF2F4
sub_454C3B4C equ 0x454C3B4C
loc_0 equ 0x451FF348


;-------------------------------------------------

code 16

org sub_451FF2D4

cmp      r0, 0xA1


;-------------------------------------------------

code 16

org sub_451FF2E2

mov      r3, sp
ldrb     r3, [r3]
adr      r2, off_451FF2F4
mov      r1, 6
ldr      r0, [sp, 0x38]
bl       sub_454C3B4C
b        loc_0



remove_high_brightness_msg, remove_keypad_lock_msg, remove_loud ringtones warning, remove_main_menu_shortcut и другая "фигня", всей не пишу, разберётесь кому нужно.
это готовые наборы для создания одноимённых патчей. Всю просто грузим скрипт проганяем и получаем готовый патч. Зачем "оно" нужно, так и не понял... Но патчи создаёт.

change_file_info.trx
Создаёт патч, в котором позволяет выводить полный путь к файлу, в информации о файле.

get_fw_version.trx - можно, подумать, что я не знаю какой мэйн грузил :-)

find_free_space.trx - поиск свободного места в прошивке. Результат работы - диапазон адресов, в котором имеется своодное место > 256 байт.

pause.trx - скрипт не делает ничего. Загружает прошивку, для того, что б предоставить возможность просмотра и редактирования памяти. Выводит Start, End, Lenght (просмотр через: "Show workspace"). Особенно удобно при работе с *.mbn файлами (такие файлы обрабатываются значительно медленней, чем *.raw)

key_ID_reader.trx
Выводит шеснацетеричные коды клавиш.

se_babe_defs.trx
Скрипт необходимый для коректной работы остальных скриптов. Содержит информацию о функциях и прочем материале. Самостоятельно не используется.

create_elflib.trx - Создание/проверка библиотеки. Можно и создать от 112 до 396 ф-ции
Прим.: "ковырял" скрипты, там так прописано.. может можно, со временем, если добавится ф-ций, то и дальше.
Можно и создавать и проверять/сверять с уже готовой библиотекой. У меня нашло некоторые различия (несущественные, но нашло). Но если честно, то использовать те адреса, которые "оно" находило у меня особого желания нет, библиотека моя довольно нормальная и без того. В принципе можно попробовать ковырять те, которые расходятся с моей, но смысла пока не вижу... Хотя вещь действительно не плохая.

find_book_names - ничего не пишу... Этот скрипт может такое:
Код
0x4568C784: 'FAILED_EVENT'
0x4568C92C: 'EVENT'
0x4571CBEC: 'SI_INTERNAL_EVENT_NO_EVENT'
0x45B568C5: ' EVENT'
0x45B5EA04: 'EVENT_SYNCML_DEVMAN_ALERT_EVENT'
0x45B5EA24: 'EVENT_SYNCML_DEVMAN_SESSION_EVENT'
0x45B5EA48: 'EVENT_SYNCML_DEVMAN_READY_EVENT'
0x45B889CC: 'DWLD_UNHANDLED_MMI_EVENT'


find_function_wrapper - ничего не пишу... Этот скрипт может такое:
Код
Searching for
PUSH  {LR}
BL    FUNC
POP   {PC}

: 0x441501D0 -> 0x44150A9C
: 0x4415017C -> 0x44150AA4
: 0x44150194 -> 0x44150AAC
: 0x44166BF6 -> 0x44151534
: 0x441D58C0 -> 0x44151534


Если работы над программой будут продолжатся, то эта статья пополнится новым материалом.

Общее впечатление:
TriX может работать практически с любой прошивкой не зависимо от платформы. При этом имеет ряд преимущест, по сравнению с аналогичными решениями для автоматизации (APAP) - высокая скорость работы TriX, возможность написания собственных скриптов, широкие возможности "автоматизации" анализа прошивки и тд.
create_elflib работает, но некоторые адреса с моей библиотекой не совпадают?! Находит он НЕ всё, но в принципе много чего. В create_elflib есть функция проверки библиотеки. Созданую програмой библиотеку можно сравнить с Вашей и просмотреть различия.
Прим.:
1) Есть возможность запуска нескольких скриптов, но естестественно не одновременно, а по очереди.
1.1) Скрипты можно использовать готовые, а можно писать самостоятельно.
2) Программа несколько нестабильна при работе.

Статья написана по мотивам: mobilefree.ru
Автор программы: скорее всего: Bartec, копирайтов не вижу


Сообщение отредактировал khodomay - 15.9.2009, 17:23
Перейти в начало страницы
Профиль пользователяPM
Цитировать сообщение

Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Информация о сайте

Сейчас: 18.5.2012, 15:05
 
 

ELFSE.COM - Эльфы Для SE (Sony Ericsson). Design by AquaCraft © 2008 - 2012. Все права защищены
При копировании любой информации с этого ресурса, гипер-ссылка на наш сайт обязательна!