Анимация
JavaScript
|
Главная Библионтека ==BADADDR I ошибка Родственные функции: FindImmediate Интерактивный аналог:"~Nabigate\Search for\Next void"; <Ctrl-V> long FindImmediate(long ea,long flag,long value) Функция ищет ближайший к переданному ей линейному адресу ea операнд типа константа со значением равным value. В случае успешного поиска возвращается адрес головы элемента кода, которому этот операнд принадлежит. В зависимости от флага направления поиск может идти как вперед (от младших адресов к старшим), так и назад (от старших адресов к младшим). Переданный функции линейный адрес в этот диапазон поиска не входит и не обязательно должен принадлежать какому-нибудь сегменту. Аргумент flag задает направление поиска - если его младший бит установлен поиск идет от младших адресов к старшим и, соответственно, наоборот. Пример использования: seg000:0100 mov ax, 9 seg000:0103 mov dx, 133h a) исходные данные - требуется получить линейный адрес элемента, содержащего операнд типа константа, значение которой равно 9 Message(">%s\n",atoa(FindImmediate(0,1,9))); b) вызов функции FindImmediate - адрес начала поиска равен нулю, единичное значение флага направление указывает вести поиск с увеличением адресов. >seg000:0100 результат - линейный адрес элемента, содержащего операнд типа константа, значение которой равно 9 ??? #Верстальщику - change table
Родственные функции: FindVoid Интерактивный аналог:"~Nabigate\Search for\Immediate"; <Alt-I>, "~Nabigate\Search for\Next Immediate"; <Ctrl-I> ОБЪЕКТЫ #Definition С каждым элементом (бестиповым байтом) могут быть связаны три объекта -метка, перекрестная ссылка и комментарий. IDA поддерживает два типа меток - метки, определенные пользователем и метки, автоматически сгенерированные IDA, а так же четыре типа комментариев - постоянный комментарий, отображаемый справа от элемента и отделяемый от него знаком «точка с запятой» (обычный ассемблерный комментарий), повторяемый комментарий, отображаемый справа от комментируемого элемента и возле всех ссылок на данный элемент, и два вида многострочных комментариев предваряющих и замыкающих комментируемый элемент. О перекрестных ссылках подробно рассказано в главе «Перекрестные ссылки». Каждый элемент может иметь не более одной метки и до четырех комментариев различного типа одновременно. Метки и комментарии хранятся в отдельном виртуальном массиве, проиндексированным линейными адресами, а на наличие связанных с элементом (бестиповым байтом) объектом указывают флаги (см. таблицу 16) В принципе без флагов, ссылающихся на объекты можно было бы и обойтись, но тогда бы пришлось при отображении каждой ячейки просматривать все виртуальные массивы на предмет поиска объектов, ассоциированных с данным линейными адресом, что отрицательно сказалось бы на производительности дизассемблера. Напротив, перенос этой информации в флаги позволяет ускорить работу - обращение к виртуальному массиву происходит только в тех случаях, когда с ячейкой заведомо связан какой-то объект Разрушение элемента не вызывает автоматического уничтожение связанных с ним объектов - каждый объект должен быть удален по отдельности соответствующими функциями.
Таблица 16 Флаги, указывающие на наличие связанных объектов Сводная таблица функций
success MakeName(long ea,char name) Функция создает метку, расположенную по линейному адресу ea, с именем name. Переданный линейный адрес должен быть либо адресом головы элемента любого вида, либо адресом бестипового байта; в противном случае функция возвратит ошибку. Имя метки должно состоять только из допустимых символов, перечень которых для каждой платформы содержится в поле "NameChars" конфигурационного файла <ida.cfg>.
Служебные символы ассемблера Символы, определенные только для специальных режимов Java-ассемблера Национальные (российские символы) 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 |