Анимация
JavaScript
|
Главная Библионтека success SetPrcsr (char processor); Функция позволяет изменить тип процессора, отличный от выбранного при загрузке дизассемблируемого файла. Однако возможности динамической смены процессора несколько ограничены. Допустим выбор лишь в границах текущей линейки (серии) микропроцессоров. Это объясняется тем, что на стадии загрузки происходят неустранимые средствами последующих уровней изменения и настройки на конкретный процессор. (Большей частью это относится к невозможности IDA перезагружать микропроцессорные модули, отвечающие за дизассемблирование. Такой модуль может быть загружен один только раз и на весь сеанс работы окажутся доступными лишь поддерживаемые им типы микропроцессоров) Для линейки Intel в силу их полной обратной совместимости, динамический выбор модели процессора некритичен, поскольку можно выбрать самого позднего из доступных представителей, и можно быть уверенным, что все команды будут дизассемблированы. Аналогичный результат можно получить, выбрав тип «meta pc», включающий в себя команды всех моделей микропроцессоров. Рассмотрим работу этой функции на следующей примере. Загрузим для дизассемблирования бинарный или com-файл (для которого IDA по умолчанию выбирает 8086 микропроцессор), но содержащий инструкции более поздних моделей. Разумеется, они окажутся не дизассемблированными и результат работы IDA может выглядеть, например, так: seg000:02E9 seg000:02EC seg000:02ED seg000:02EE seg000:02EF mov ax, ds:413h db 0C1h ; - db 0E0h ; р db 6 ; cmp ax, 0A000h SetPrcsr ("metapc"); seg000:02E9 seg000:02EC seg000:02EF mov ax, ds:413h shl ax, 6 cmp ax, 0A000h Смена типа процессора, привела к тому, что IDA заново проанализировала изучаемый файл и автоматически дизассемблировала интересующие нас инструкции. Разумеется, что обратная смена на 8086 модель приведет к тому, что листинг будет приведен к первоначальному виду При этом IDA может так же изменять целевой ассемблер, поэтому рекомендуется на всякий случай удостоверится в приемлемости ее выбора, вызвав диалог «~Options \ Target Assembler» Впрочем, для линии IBM PC он имеется в единственном числе -«Generic for Intel 80x86» и беспокоиться нет никакой необходимости. Операнд processor может принимать следующие значения, перечисленные ниже в таблице. К регистру функция не чувствительна, поэтому metapc и MetaPC задают один и то же тип процессора. Отбивка слева указывает, что объединяемые ее микропроцессоры могут динамически выбираться во время дизассемблирования файла.
Серия Линейка IBM PC Линейка Zilog 80 Линейка Zilog 8 Линейка Intel 860 Линейка Intel 51 Линейка Intel 80196 Линейка 65xx line Линейка PDP line Линейка Motorola 680x0 Линейка Motorola 8bit
Все вышесказанное остается верным и для интерактивного выбора типа процессора посредством команды меню «~Options \ Processor type» При попытке смены типа процессора IDA может выдать ошибку, например:«The processor type "metapc" isnt included in the standard version of IDA Pro. Please check our web site for information about ordering additional processor modules» Это обозначает, что необходимый для дизассемблирования модуль отсутствует или не найден. Его можно получить, обратившись к вашему поставщику IDA или на сайте разработчика IDA (www.idapro.com) Поскольку для DOS, OS\2 и Windows версий дизассемблера используются разные модули, то вполне возможно, что один из них отсутствует или поврежден, когда остальные вполне работоспособны. Расшифровка расширений приводится ниже в таблице. расш I Платформа" d32 Процессорный модуль для OS\2 версии дизассемблера dll I Процессорный модуль для MS-DOS версии дизассемблера 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 |