eXTracted INternals

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

Поделиться | 
 

 IDA Type Library

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
erithion



Количество сообщений : 25
Дата регистрации : 2006-09-18

СообщениеТема: IDA Type Library   Пт 28 Дек - 15:34

Пока не забыл. Недавно с Хексом обнаружили полезную штуку о Type Library в IDA 5.2.

Интерес ее в следующем: сохранение старых баз со всеми типами, энумами и прочим, что удалось добыть самому или с чьей помощью является обычной практикой. Думаю не только у меня. Потому что всякий раз встречая новую версию бинарника или прошивки можно обнаружить там все те же типы. Обычно приходится их перетаскивать из старой базы в новую.

Наиболее быстрой альтернативой до настоящего момента было использование IDC скриптов. Заходишь в пункт меню File->Produce File->Dump TypeInfo to IDC File. Получаешь скрипт со всеми структурами и энумами. Казалось бы здорово, но бывает то тип уже есть в базе, то лишнего много, то просто IDA посылает на ..., руками правишь и вслух высказываешь все что думаешь по поводу IDA, а еще хуже - когда старая база накрылась.

Мысль о генерации собственных библиотек типов, ровно как и стандартных сигнатур функций преследует уже давно. И опять полагаю не только мну. Т.е. идея была выделить все стандартное, что попадается в виде отдельных библиотек. Особенно непонятной была ситуация с типами. Тем более что сегодня можно найти множество систем, которые являются наследниками от какого то общего ядра.
Вот для Intel x86 все замечательно - распознает стандартные библиотечные функции, для Windows есть почти все структуры и энумы. Библиотеки с типами можно найти в папке til, а сигнатуры - в папке sig.
Вот Ильфак сделал всем подарок. На Новый год чтоль? Smile

Замечали наверное, когда открывается база, то в ее папке появляется масса файлов. Один из них - til.

Т.е. til-файл был и в ранних версиях, точно также как и функции load_til/store_til в SDK были давно, только теперь из него (til'a) можно быстро извлечь реальную пользу. Теперь в IDA 5.2 при открытии базы вся информация о типах сгружается во внешний til-файл. При закрытии - обратный процесс, после чего файл удаляется. Естесственно, формат валидного til файла. Что означает, что если до закрытия скопировать этот файл в папку til, то типы ваши навечно.

На примере. Пусть у нас база с прошивкой девайса для ARM-проца. Куча типов, которые хочется всегда иметь под рукой, т.е. в самой IDA для любой ARM-базы. Открываем базу. Идем в папку с базой. Ищем там файл с названием базы, но с расширением til. Копируем его в папку <IDA Folder>/til/arm. Переименовываем как нибудь в MyArm.til. Переименование необходимо, потому что если переоткрыть ту же базу, то в папке базы появится собственный til-файл. Поэтому IDA игнорит файл в папке /til/arm с тем же именем.

Далее, открываем любой ARM-бинарь, создаем базу, заходим Views->Open subviews->Type libraries. Или просто кликаем на иконку T в панели IDA. В окне в меню левой кнопки кликаем Load type library.., находим имя MyArm и кликаем два раза.

Теперь заходим в окно структур и добавляем новую через Add standard structure. В появившемся окне видим все свои старые структуры. То же самое верно и для энумов.

Нельзя конечно забыть сделать поправку. Все описанное работает только для баз IDA версии 5.2. В младших версиях til файл пуст.
Все это было найдено очень быстро, после чего резко сменились приоритеты и выяснить как же там обстоят дела в младших версиях не успелось. Если кому успеется - отлично. Wink
Вернуться к началу Перейти вниз
Посмотреть профиль
Hex

avatar

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

СообщениеТема: Re: IDA Type Library   Сб 29 Дек - 10:00

Тока думал тебя спросить писать об этом или нет Smile
Вернуться к началу Перейти вниз
Посмотреть профиль
 
IDA Type Library
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1
 Похожие темы
-
» Kubelwgen type 82 (Tamiya 35213) 1:35
» Kubelwgen type 82 (Tamiya 35213) 1:35

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