Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ida.final.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
6 Mб
Скачать

Long ItemEnd(long ea)

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

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

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

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

seg000:0000 aHelloIdaPro db 'Hello,IDA Pro!'

seg000:000E a1234 db '1234'

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

Message(“>%s\n”,atoa(ItemEnd(SegByName(“seg000”))));

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

>seg000:000E

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

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

аргумент

пояснение

ea

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

return

=return

пояснения

!=1

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

==1

ошибка

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

Интерактивный аналог: нет

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

аргумент

пояснение

ea

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

return

=return

пояснения

!=BADADDR

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

==BADADDR

ошибка

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

Интерактивный аналог: нет

Long NextHead(long ea, long maxea)

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

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

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

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

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

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

аргумент

пояснение

ea

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

maxea

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

return

=return

пояснения

!=BADADDR

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

==BADADDR

ошибка

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

Интерактивный аналог: нет

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]