motofan logo
       
> 

надо написать программу, для помощи работающим в IDA, дам плюсы

AlexKooper
сообщение 16.2.2009, 16:17


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Нужна программа. Работает с буфером обмена и парой текстовых файлов.

Суть предельно проста: после запуска постоянно проверяет буфер обмена (или по факту изменения содержимого, вам виднее) и если там есть хекс-число вида ??????? или ???????? (7 или 8 хекс-символов) то ищет его в файле drm_resources.htm

Файл могу приложить, но непринципиально, его содержимое - строки вида
#define RES_ID_INIT_TIMER_ANIMATION_TIMEOUT 0x21000014

нужно найти строку у которой в конце цифры из буфера обмена, отрезать её до нормального состояния (т.е. выкинуть "#define " с пробелами в начале и " 0х0...." с пробелами в конце и готовую строку (в примере - RES_ID_INIT_TIMER_ANIMATION_TIMEOUT) вставить в буфер обмена

Отдельно неплохо бы настройку
"если стоит галочка, то для хекс-кодов вида 1хххххх и 01хххххх брать строку из файла !E1_Russian.txt"

файл представляет собой массив такого вида:
0038 | Автоответчик
0039 | Варианты ответа
003A | Автоответчик
003B | АПР
003C | АВГ
003D | Автоответ через
003E | Автоматическ. набор
003F | Активиз. гарнитуры

где число 003F это обрезанное 0100003F, или обрезанное 100003F
соответственно обрезать текст до "Активиз. гарнитуры"

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

Собственно зачем это надо:
при исследовании кода прошивки в IDA выделяем нужный кусок данных а затем нажав ";" - можем вставить комментарий

Выглядит примерно так:
Код

CORE_APPS:10416F94                 DCD 0xA000067; RES_ID_FORM_ICQ_ACCOUNT_SETUP
CORE_APPS:10416F98                 DCD 0x700012B; RES_ID_LIST_IM_CONTACT_LIST
CORE_APPS:10416F9C                 DCD 0x700014D; RES_ID_LIST_ICQ_ACCOUNT
CORE_APPS:10416FA0                 DCD 0x10003CF; Подключение
CORE_APPS:10416FA4                 DCD 0x1001071; Контакты
CORE_APPS:10416FA8                 DCD 0x10015B0; Группа
CORE_APPS:10416FAC                 DCD 0x1001A71; Группы
CORE_APPS:10416FB0                 DCD 0x10004AE; Справка
CORE_APPS:10416FB4                 DCD 0x1000E55; Обновить список
CORE_APPS:10416FB8                 DCD 0x1000129; Параметры

если что непонятно - спрашивайте

Добавлено позже (16.2.2009, 20:18):
Как бонус в прогу можно добавить: и еще такую няшку розовую чтоб на нее так клик а она так ^.^ ня
(с)BashOrgRu

Сообщение отредактировал AlexKooper - 16.2.2009, 17:19
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 16.2.2009, 19:56


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



вообще-то в иде можно задавать enum-типы, хоть оно и криво сделано
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Мачо
сообщение 17.2.2009, 7:33


Ветеран
*****

Группа: Легенды MotoFan.Ru
Сообщений: 456
Регистрация: 26.7.2004
Из: Киров
Пользователь №: 8 569
Модель телефона: Е398 (умер), E6
Прошивка: Dream A Reality 2.0
Финалист Конкурса 2010

Рейтинг: 1410



А ещё я выложил сум файл в теме с эльфом 398 который при загрузке в бин эдит заменяет все ресурсы на строки из ленга.
так же этот сум можно подгрузить к ида. При помощи скрипта. Скрипт в последних постах темы Учимся патчить прошивку.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 17.2.2009, 7:58


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Вот вам лишь бы не дать людям плюсов заработать smile.gif
А я хочу такую прогу и няшку.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 18.2.2009, 6:22


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



AlexKooper,
ида умеет обрабатывать сишные хидеры и имеет понятие enum
тупо подгружаем хидер с перечислением в иду. и далее нажатием 1й кнопки на числе оно превращается в символьное имя. куда уж удобнее?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 18.2.2009, 8:18


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



удобно наверное. тока описал бы кто, как это сделать... по пунктам, как для чайника...
и чёрт тогда с ней, с няшкой smile.gif буду нажимать одну кнопку smile.gif какую кстати?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Vilko
сообщение 18.2.2009, 16:40


Мотокодер
******

Группа: Легенды MotoFan.Ru
Сообщений: 1 331
Регистрация: 23.6.2003
Из: Москва
Пользователь №: 71
Модель телефона: E398+, Е1000, ...

Рейтинг: 1116



AlexKooper,
кнопочка "M" (для любителей мыши edit->operand type-> enum member)

ну а создать enum можно либо руками в view->open subview->enumerations,
либо подгрузив сишный хидер с таковыми. но хидер либо не должен ссылатся на другие, либо все инклюды должны быть доступны (тогда оно и их подгрузит laugh.gif )
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 18.2.2009, 18:07


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



А как
Цитата
подгрузив сишный хидер
?
Вот открыто окно у меня enum, как туда *.h подгрузить? меню облазил, ничего похожего не нашёл. Только поштучно добавляются.

00000001 ; Ins/Del/Ctrl-E: create/delete/edit enumeration types
00000001 ; N/Ctrl-N : create/edit a symbolic constant
00000001 ; U : delete a symbolic constant
00000001 ; ; or : : set a comment for the current item
00000001 ;
00000001 ; For bitfields the line prefixes display the bitmask
00000001 ; ---------------------------------------------------------------------------

P.S. просил же - как для чайника рассказать.... sad.gif

Добавлено позже (18.2.2009, 21:14):
Хорошо бы итоговый пост в тему "дизассемлируем арм" потом перенести. Когда все тайны инклюдов раскроют smile.gif

Сообщение отредактировал AlexKooper - 18.2.2009, 18:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 18.2.2009, 20:21


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



вот прога для фала с define-ами и без няшки smile.gif
Прикрепленный файл clpbspy.7z   ( 1.62 килобайт ) Кол-во скачиваний: 171
Прикрепленный файл clpbspy.7z   ( 1.62 килобайт ) Кол-во скачиваний: 171
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 19.2.2009, 5:59


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Запускаю... Прога ничего не делает и в памяти не висит. И ошибку не пишет.
ключ /? не работает

С какого конца к ней подойти?

P.S. вчера час Vilko объяснял как загружать в иду енумы. Но в итоге оказалось не совсем то, что я хотел. А с прогой будет самое то.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 19.2.2009, 18:29


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



в папке должен быть "drm_resources.htm", без него не запустится
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 19.2.2009, 19:42


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Работает первая часть задания smile.gif Отлично. Что насчет дополнительной отключаемой поддержки файла !E1_Russian.txt?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 20.2.2009, 18:24


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



на днях доделаю, наверно.
ЗЫ: прога чувствительна к регистру и если сразу за значением стоит комент может не сработать
если нужно доделаю
Спасибо за плюсики smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 25.2.2009, 11:31


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



никаких комментов нет. а если где-то разово попадётся - то можно и руками поправить
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 28.2.2009, 21:35


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



Вот доделал. второй файл включаеся левой кнопкой, при старте выключен (определяется по звуку).
сейчас принимает значения в любом регистре.
Прикрепленный файл clpbspy_v2.7z   ( 1.87 килобайт ) Кол-во скачиваний: 96
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 1.3.2009, 12:27


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



ок! напомни через 30 дней чтоб ещё плюсов дал smile.gif а то раньше нельзя
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Umka85
сообщение 2.3.2009, 13:05


Гуру
******

Группа: Пользователи
Сообщений: 712
Регистрация: 13.7.2005
Из: Кузнецк
Пользователь №: 46 099
Модель телефона: Е398, L9, Z6, V6
Прошивка: разные
Победитель конкурса 2008

Рейтинг: 283



А теперь для самых пресамых чайников, формат drm_resources.htm какой? а лучше выложите его и поподробнее как в иду все это занести.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 2.3.2009, 13:56


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337




drm_resources.htm это drm_resources.h просто он у меня из инета сохранён.
пример формата:

#define RES_ID_TXT_COMM_AUTO_DIAL 0x0100003E
#define RES_ID_TXT_COMM_AUTO_HANDSFREE 0x0100003F
#define RES_ID_TXT_COMM_AUTO_LOCK 0x01000040
#define RES_ID_TXT_COMM_AUTO_PIN_DIAL 0x01000041
#define RES_ID_TXT_COMM_AUTO_REDIAL 0x01000042
#define RES_ID_TXT_COMM_AUTOMATIC 0x01000043
#define RES_ID_TXT_COMM_AUTOUPDATE 0x01000044
#define RES_ID_TXT_COMM_BACKLIGHT 0x01000045
#define RES_ID_TXT_COMM_BANNER 0x01000046
#define RES_ID_TXT_COMM_BAR_PASSWD 0x01000047
#define RES_ID_TXT_COMM_BATTERY 0x01000048
#define RES_ID_TXT_COMM_BATTERY_SAVE 0x01000049
#define RES_ID_TXT_COMM_BEEP 0x0100004A

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

Очень рулит когда таблицы менюшек разбираешь smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 4.3.2009, 18:54


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



Проблема. IDA криво понимает кодировки. !E1_Russian.txt делал и в дос, и в вин кодировках - не понимает. нельзя ли как-то конвертировать данные из него? например dos-win, если считать по умолчанию что !E1_Russian.txt в дс кодировке. а в буфер чтоб клалось вин.?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
PUSYA
сообщение 4.3.2009, 20:32


Мотопусь
*****

Группа: Девушки в форме
Сообщений: 648
Регистрация: 19.6.2006
Из: Москва
Пользователь №: 88 367
Модель телефона: Moto G


Настроение:
Смерть - идеал свободы. Жизнь - рабство желаний.



Рейтинг: 1333



IDA работает в виндовой и файлы с виндовой кодировкой понимает нормально, но клавиатура при работе с буфером обмена должна быть на RU (: это известная бага винды (:

Сообщение отредактировал PUSYA - 4.3.2009, 20:32
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 5.3.2009, 18:24


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



у меня всё нормально работает, файл в вин. если можно поподробнее.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
AlexKooper
сообщение 5.3.2009, 20:52


Авторитет
********

Группа: Почётные мотофаны
Сообщений: 2 838
Регистрация: 27.7.2005
Из: Йошкар-Ола
Пользователь №: 47 140
Модель телефона: E398
Прошивка: AlexKooper mod v.47

Рейтинг: 1337



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

Добавлено позже (5.3.2009, 23:58):
!E1_Russian.txt имеем в вин-кодировке
в ида 4.9 имеем строку LDR R3, =0x1001281
выделяю 1001281 и копирую в буфер. Из буфера вставляется хрень
(клава на ен включена)
Ставлю клаву на рус. копирую число. та же хрень. скриншот прилагаю
Прикрепленное изображение

Взял файл !E1_Russian.txt в дос-кодировке, хрень тоже нечитаемая
Прикрепленное изображение

Добавлено позже (6.3.2009, 0:05):
но во втором случае (когда дос) видно что траблы с кодировкой. а в первом что - непонятно, должно же быть нормально. Английские буквы норм
Прикрепленное изображение

Сообщение отредактировал AlexKooper - 5.3.2009, 21:09
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 6.3.2009, 18:31


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



может шрифт без русских букв, или настроить в винде язык для не-юникод программ. попробуй ввести что-нибудь на русском с клавы
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Umka85
сообщение 6.3.2009, 21:42


Гуру
******

Группа: Пользователи
Сообщений: 712
Регистрация: 13.7.2005
Из: Кузнецк
Пользователь №: 46 099
Модель телефона: Е398, L9, Z6, V6
Прошивка: разные
Победитель конкурса 2008

Рейтинг: 283



У меня в clpbspy_v2 конфиг не переключаеться, то есть не копируються фразы из E1_Russian.txt а только из drm_resources.htm. Почему?

Сообщение отредактировал Umka85 - 6.3.2009, 21:52
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 7.3.2009, 5:39


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



Umka85, имя файла должно быть "!E1_Russian.txt", может из-за этого
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Umka85
сообщение 7.3.2009, 6:46


Гуру
******

Группа: Пользователи
Сообщений: 712
Регистрация: 13.7.2005
Из: Кузнецк
Пользователь №: 46 099
Модель телефона: Е398, L9, Z6, V6
Прошивка: разные
Победитель конкурса 2008

Рейтинг: 283



Теперь при нажатии не левую кнопку ничего не происходит. ни звука нет, ни переключения на !E1_Russian.txt
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
_lex
сообщение 7.3.2009, 10:46


Новичок
*

Группа: Пользователи
Сообщений: 14
Регистрация: 9.11.2008
Пользователь №: 185 740
Модель телефона: E398

Рейтинг: 17



Цитата
где число 003F это обрезанное 0100003F, или обрезанное 100003F

насчёт звука - прога использует системные звуки "Восклицание" (вкл.) и "Критическая ошибка". Если файл не найден - только ошибка, так что это зависит от настроек винды
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
BaZiK
сообщение 9.3.2009, 6:42


Опытный
***

Группа: Пользователи
Сообщений: 108
Регистрация: 26.2.2005
Из: г. Брянск
Пользователь №: 37 684
Модель телефона: Motorola L9
Прошивка: 5AR

Рейтинг: 54.5



AlexKooper, как вариант попробуй с реестром пошаманить:

Цитата
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Codepage изменить параметры 1250 = "CP_1250.nls" и 1252 = "CP_1252.nls" на такие значения: 1250 = "CP_1251.nls" и 1252 = "CP_1251.nls" (без кавычек)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
надо написать программу, для помощи работающим в IDA, дам плюсы · Ломаем и строим! · Forum
 

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

 



Текстовая версия Сейчас: 15.6.2025, 16:06

Форум живёт: