Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 [ 135 ] 136 137 138 139 140

w32 I Процессорный модуль для Windows 95\Windows NT версий дизассемблера

Четвертая версия IDA в полной поставке, включает в себя следующие файлы:

Файл

Семейство процессоров

Семейство ARM (серия ARM 7xx)

Линейка чипов ATMEL AVR

Линейка чипов Hitachi H8 (H8/300x и H8S серии)

I196

Микропроцессор Intel 80196

Микропроцессор Intel 8051

I860

Микропроцессор Intel 860 XR

JAVA

Java Virtual Machine

Микропроцессоры серии 65xx

Семейство 8-разрядных микропроцессоров фирмы Motorola (MC6800, MC6801, MC6803, MC6805, MC6808, MC6809, MC6811)

Семейство 8-разрядных микропроцессоров фирмы Hitachi (HD 6301, HD 6303)

MC68

Микропроцессоры серии Motorola 680x0

Микропроцессоры линейки IBM PC

PDP11

DEC PDP-11

Микроконтроллеры Microchip серий PIC16C5x PIC16Cxx PIC17Cxx

Микропроцессоры линейки Zilog 8

Микропроцессоры линейки Zilog 80

Сравнивая эту таблицу с приведенным выше перечнем поддерживаемых IDA процессоров, можно заметить, что часть из них в поставку не входит.

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

Если в заголовке загружаемого файла отсутствует информация о типе процессора, то IDA выбирает его, руководствуясь расширением.

Соответствия расширений и типов микропроцессора перечислены в фале IDA.CFG

в секции DEFAULT PROCESSOR:

расширение

Тип процессора

"com"

"8086"

"exe"

"metapc"

"dll"

"metapc"

"drv"

"metapc"

"sys"

"metapc"

"bin"

"metapc"

"ovl"

"metapc"

"ovr"

"metapc"

"ov?"

"metapc"

"nlm"

"metapc"

"lan"

"metapc"

"dsk"

"metapc"

"obj"

"metapc"

"prc"

"68000" (PalmPilot программы)

"axf

"arm710a"

"h68"

"68000" (MC68000 для *.H68 файлов)

"i51"

"8051" (i8051 для *.I51 файлов)

"sav"

"pdp11" (PDP-11 для *.SAV файлов)



"rom"

"z80" (для *.ROM файлов)

"class"

"java"

"cls"

"java"

"s19"

"6811"

11*11

"metapc"

long Batch

(long batch);

Функция позволяет устанавливать (или снимать) пакетный режим работы. При этом IDA не выводит никаких диалоговых окон и не выдает предупреждений. Это может быть полезным при автономной работе и во время выполнения скриптов.

В версии IDA 4.0 присутствуют некоторые ошибки в реализации пакетного режима. Так, например, попытка вызова калькулятора вызовет зависание IDA, поэтому пользоваться им следует с осторожностью и всегда обращать внимание, что бы скрипты, использующие его, возвращались в обычный режим при возрате в IDA.

==batch

Режим

Обычный режим

Пакетный режим

Функция возвращает прежний режим работы. Следующий скрипт определяет его текущее значение без изменений режима работы.

auto a,s; s="нормальный";

a=Batch(0); Batch(a);

if (a) s="пакетый"; Message("Режимм работы %s \n",s); Режимм работы нормальный

char GetldaDirectory ();

Функция возвращает полный путь к директории, в которой расположена IDA, без завершающего слеша в конце. Например:

Message ("%s \n", GetIdaDirectory ()); D:\DEBUG\IDA3 8 4

Return Пояснения

полный путь к директории, в которой расположена IDA

Точнее это путь к исполняемому файлу IDA.EXE (idaw.exe\ idax.exe). Расположение остальных файлов зависит от версии.

Так, например, IDA 3.6 хранила все скрипты в базовом каталоге, а последние версии в каталоге IDC.

Эти различия необходимо учитывать при поиске требуемых файлов. Желательно предусмотреть возможность диалога с пользователем и «ручным» указанием путей, а не полагаться на то, что требуемый файл окажется на месте.



char GetlnputFile ();

Возвращает имя дизассемблируемого файла вместе с расширением. Версия под win32 поддерживает длинные имена файлов, включая пробелы. Дозагрузка фалов не влияет на результат работы этой функции.

Пример использования:

Message ("%s \n ", GetlnputFile ()

My File.exe

Return Пояснения

Имя дизассемблируемого файла вместе с расширением

СТРОКИ

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

Зато IDA поддерживает инициализацию и контекцию, (слияние) строк, что демонстрирует следующий пример:

auto a,b; a="Hello"; b="IDA! \n"; a=a+","+b; Message("%s \n",a);

Hello,IDA!

Таким образом, строки в IDA представляют собой закрытые объекты, доступные лишь посредством набора, манипулирующих с ними функций. Их всего три.

Это определение длины строки (strlen), взятие подстроки (substr) и поиск подстроки (srtsrt). Возможность модификации строки отсутствует, и в том случае, когда возникает потребность изменить хотя бы один символ, приходится перестраивать всю строку целиком.

Для этого может пригодиться две следующие функции, которые рекомендуется включить в idc.idc, что бы сделать их доступными для всех пользовательских скриптов.

static setstr(str, pos, ch) {

auto s0;



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 [ 135 ] 136 137 138 139 140