Анимация
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

long ItemEnd(long ea)

Функция возвращает значение на единицу превышающее линейный адрес конца элемента, заданного линейным адресом ea.

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

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

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

seg000:0000 aHelloIdaPro db Hello,IDA Pro! seg000:000E a1234 db 1234

a) исходные данные

Message(">%s\n",atoa(ItemEnd(SegByName("seg0 0 0"))));

b) вызываем функцию ItemEnd, передавая ей адрес, принадлежащий элементу "Hello, IDA Pro!".

>seg000:000E

c) результат - функция вернула значение, на единицу превышающее адрес конца данного элемента

??? #Верстальщику Change Table

аргумент

пояснение

линейный адрес, принадлежащий элементу или бестиповому байту

return

=return

пояснения

значение на единицу превышающее линейный адрес конца элемента

ошибка

Родственные функции: нет Интерактивный аналог: нет

long NextHead(long ea)

(версия IDA 3.85 и младше)

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

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

seg000:0000 aHelloIdaPro db Hello,IDA Pro! seg000:000E a1234 db 1234

a) исходные данные



Message(">%s\n",atoa(NextHead(SegByName("seg000"))));

b) вызываем функцию NextHead, передавая ей адрес, принадлежащий элементу "Hello, IDA Pro!".

>seg000:000E

c) результат - функция вернула адрес головы следующего элемента.

Другой пример использования функции NextHead приведен в файле <href.idc>, распространяемого вместе с IDA.

Замечание: линейный адрес начала следующего элемента будет возвращен даже в том случае, если элемент находится в другом сегменте.

??? #Верстальщику - Change Table

аргумент

пояснение

линейный адрес, не обязательно принадлежащий какому-то элементу

return

=return

пояснения

!=BADADDR

линейный адрес головы следующего элемента

==BADADDR

ошибка

Родственные функции: PrevHead Интерактивный аналог: нет

long NextHead(long ea, long maxea)

(версия IDA 4.0 и старше)

В версии 4.0 прототип функции NextHead(long ea) (см. ее описание) был изменен, добавлением еще одного аргумента - maxea, ограничивающего диапазон адресов, доступных функции.

Функция возвращает адрес головы следующего элемента, при условии, что он меньше, чем maxea, т.е. отвечает следующему условию ea < return value < maxea .

Изменение прототипа повлекло за собой неработоспособность всех ранее созданных скриптов, использующих эту функцию и необходимости внесения в них исправлений - замены NextHead(ea) на NextHead(ea, BADADDR).

Замечание: ограничение максимального адреса облегчает написание скриптов, работающих с выделенными регионами (см. описание функций SelStart и SelEnd)

??? #Верстальщику - Change Table

аргумент

пояснение

линейный адрес, не обязательно принадлежащий какому-то элементу

maxea

значение на единицу превышающее наибольший адрес, доступный функции

return

=return

пояснения

!=BADADDR

линейный адрес головы следующего элемента

==BADADDR

ошибка

Родственные функции: PrevHead



long PrevHead(long ea)

(версия IDA 3.85 и младше)

Функция возвращает линейный адрес предыдущей головы элемента (не головы предыдущего элемента!). Если указать на хвост элемента, функция возвратит адрес его головы. Переданный функции линейный адрес ea не обязательно должен принадлежать какому-то элементу - он может даже вообще не существовать.

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

seg000:0000 aHelloIdaPro db seg000:000E a1234 db

a) исходные данные

Hello,IDA Pro! 1234

Message(">%s\n",atoa(PrevHead(SegByName("seg000")+0x2)));

b) вызываем функцию PrevHead, передавая ей адрес принадлежащий элементу "Hello, IDA Pro!".

>seg000:000E

c) результат - функция вернула адрес предыдущей головы элемента (этого элемента)

??? #Верстальщику - Change table

аргумент

пояснение

линейный адрес, не обязательно принадлежащий какому-то элементу

return

=return

пояснения

!=BADADDR

линейный адрес предыдущей головы элемента (не головы предыдущего элемента!)

==BADADDR

ошибка

Родственные функции: NextHead Интерактивный аналог: нет

long PrevHead(long ea, long minea)

(версия IDA 4.0 и старше)

В версии 4.0 прототип функции PrevHead(long ea) (см. ее описание) был изменен, добавлением еще одного аргумента - minea, ограничивающего диапазон адресов, доступных функции.

Функция возвращает адрес предыдущей головы элемента, при условии, что он не меньше, чем minea, т.е. отвечает следующему условию minea > return value > ea .

Изменение прототипа повлекло за собой неработоспособность всех ранее созданных скриптов, использующих эту функцию и необходимости внесения в них исправлений - замены PrevHead(ea) на PrevHead(ea, 0).

Замечание: ограничение максимального адреса облегчает написание скриптов, работающих с выделенными регионами (см. описание функций SelStart и SelEnd)



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