Анимация
JavaScript
|
Главная Библионтека b) трассировка адресов последовательными вызовами функции PrevAddr >10011 >10010 >1000F >1000E >1000D >1000C >1000B >1000A >10009 >10008 >10007 >10006 >10005 >10004 >10003 >10002 >10001 >10000 c) результат - получение перечня существующих адресов виртуальной памяти ??? #верстальщику - change table
Родственные функции: NextAddr Интерактивный аналог: нет long GetFlags(long ea) Функция возвращает значение флагов виртуальной памяти, ассоциированных с виртуальным адресом ea. Если указанного виртуального адреса не существует, функция возвращает ноль. О назначении каждого бита флагов рассказано при описании связанных с ним функций. ??? #верстальщику - change table
Родственные функции: SetFlags Интерактивный аналог: нет void SetFlags(long ea) Функция задает новое значение флагов виртуальной памяти, ассоциированных с виртуальным адресом ea. Допустимо модифицировать флаги лишь существующей ячейки виртуальной памяти. Внимание: настоятельно рекомендуется по возможности избегать непосредственной модификации флагов - допущенная ошибка может привести к зависанию дизассемблера! ??? #верстальщику - change table аргумент пояснения ea I линейный адрес ячейки виртуальной памяти Родственные функции: GetFlags Интерактивный аналог: нет long FindBinary(long ea,long flag,char str) Функция ищет заданную подстроку в виртуальной памяти и в случае успешного поиска возвращает ее линейный адрес, иначе возвращает значение BADADDR, сигнализируя об ошибке. В зависимости от флага направления поиск может идти как вперед (от младших адресов к старшим), так и назад (от старших адресов к младшим), регистр символов может как различаться, так и нет. Аргумент ea задает линейный адрес начала поиска и не обязательно должен существовать. Аргумент str задает подстроку поиска, выраженную в шестнадцатеричных кодах символов (точнее - в системе исчисления, установленной системой исчисления по умолчанию), разделенных между собой пробелами. Суффикс "h", равно как и префикс "x" при этом указывать не нужно. Аргумент flag задает направление поиска и определяет чувствительность к регистру символов: если его младший бит установлен поиск идет от младших адресов к старшим и, соответственно, наоборот; если первый справа бит (считая от нуля) установлен - прописные и строчечные буквы различаются и, соответственно, наоборот.
Message(">%s\n",atoa(FindBinaryi 41"))); ??? #верстальщику - change table SegByName("seg000"),1,"49 44
Родственные функции: нет Интерактивный аналог: "~Search\Text", <Alt-T> СЕГМЕНТЫ И СЕЛЕКТОРЫ #Definition Сегментом называется непрерывная область памяти, адресуемая относительно базового адреса сегмента. Каждый сегмент характеризуется базовым адресом сегмента, адресом начала сегмента и адресом конца сегмента. Базовый адрес сегмента обычно выражается в параграфах, адреса начала и конца - в байтах. Адрес начала сегмента задает наименьший адрес, принадлежащей сегменту; адрес конца сегмента - адрес, на единицу больше превышающий наибольший адрес, принадлежащий сегменту. Никакой линейный адрес не может принадлежать более чем одному сегменту одновременно - т.е. сегменты не могут пересекаться. В дальнейшем, если не оговорено обратное, адрес начала сегмента обозначается "startea", адрес конца сегмента - "endea", а базовый адрес - "BASE". Смещение первого байта в сегменте обозначается "startoffset" и связано с адресом начала и базовым адресом следующим соотношением: Формула 1 Смещение первого байта в сегменте Смещения в сегменте измеряются целыми неотрицательными числами, следовательно, приравняв startoffset к нулю, получаем: startea > (BASE* 0x10). Сегментный адрес [BASE: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 |