Анимация
JavaScript
|
Главная Библионтека SW XRFFNC (0x04) Установка этого флага приводит к тому, что IDA выражает адрес ссылки через смещение, относительно начла ближайшей функции. Интерактивно этим значением можно управлять «~ Options \ Cross-reference representation \ Display function offsets»
INF BINPREF Это короткое поле задает число байт, отображающих шестнадцатеричный оп-код инструкции. По умолчанию равно нулю, то есть IDA дамп не отображает. Однако, в ряде случаев потребность в нем все же возникает, кроме того, для кого-то этот может быть вопрос удобства или привычки. Тогда можно воспользоваться вызовом SetShortPrm(INF BINPREF,0x10) или изменить то же самое значение интерактивно «~ Options \ Text representation \ Number of opcode bytes»
INF CMTFLAG Это короткое поле содержит набор флагов, манипулирующим выводом и представлением комментариев в дизассемблируемом листинге. SW RPTCMT Этот флаг управляет выводом повторяемых комментариев. По умолчанию установлен. Если возникнет необходимость отключить генерацию повторяемых комментариев, то это можно сделать как вызовом функцией SetShortPrm, так и интерактивно «~Options\ Text representation \ Display repeatable comments»
SW ALLCMT Этот флаг будучи установленным приводит к тому, что IDA комментирует каждую стоку в дизассемблируемом тексте (обычно приводит расшифровку мнемоник команд). По умолчанию этот флаг сброшен, поскольку захламляет листинг малоинтересной информацией. Однако, это может оказаться полезным для начинающих пользователей, или любых других не знающих на память все инструкции микропроцессора (особенно новых моделей). В этом случаи комментарии IDA позволят сэкономить некоторое количество времени.
SW NOCMT Установка этого флага приводит к тому, что IDA вообще не будет отображать комментариев, не зависимо от состояния остальных настоек. По умолчанию флаг сброшен. SW LINNUM Этот флаг будучи установленным приводит к тому, что IDA при наличии необходимой отладочной информации в файле будет отображать номера строк исходного текста программы. SW MICRO INF NAMETYPE Это короткое поле содержит флаг, управляющий представлением автогенерируемых имен (в терминологии IDA - dummy names). Эти имена автоматически присваиваются всем созданным меткам и процедурам.
INF SHOWBADS Это однобайтовое поле, будучи установленным, приводит к тому, что IDA будет оставлять в виде дампа все инструкции, которые могут быть неправильно ассемблированы. Например, в исследуемой программе могут встретиться недокументированные команды процессора (подробнее с ними можно ознакомиться, например, на сайте www.x86.org) Разумеется, что распространенные ассемблеры выдадут ошибку и прекратят работу. Однако, это не худшая ситуация. Множество команд 80x86 процессоров могут быть ассемблированы по-разному. Например, ADD bx, 0x10 может быть представлена как опкодом 81 C3 01 00, так и 83 C3 10 Разница здесь в том, что последняя команда добавляет к BX байт, автоматически расширяя его до слова с учетом знака. Следовательно, возникает неоднозначность, -часто приводящая к неработоспособности программы. Даже если не использовался самомодифицирующийся код, изменение длины инструкции «потянет» за собой все метки и абсолютные адреса в программе. Впрочем, при условии правильного преобразования типов непосредственных операндов это не нарушит работоспособность программы. Поэтому по умолчанию это опция отключена. Если же в ней возникнет необходимость, то нужно воспользоваться функцией SetCharPrm(INF SHOWBADS,1) или интерактивно ~Options \ Text representation \ Display bad instructions <BAD> marks.
ЗАМЕЧАНИЕ: все же часть инструкций IDA не помечает, как <BAD>, хотя их отказываются ассемблировать распространенные ассемблеры. Например, команду JMP FAR segment:offset IDA, в отличие от большинства ассемблеров, не считает не правильной. В результате чего приходится вручную менять ее в листинге на последовательность: DB 0Eah DW offset 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 |