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

Long PrevHead(long ea)

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

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

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

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

seg000:000E a1234 db '1234'

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

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

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

>seg000:000E

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

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

аргумент

пояснение

ea

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

return

=return

пояснения

!=BADADDR

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

==BADADDR

ошибка

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

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

Long PrevHead(long ea, long minea)

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

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

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

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

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

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

аргумент

пояснение

ea

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

minea

минимальный адрес, доступный функции

return

=return

пояснение

!=BADADDR

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

==BADADDR

ошибка

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

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

Long NextNotTail(long ea)

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

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

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

seg000:000E a1234 db '1234'

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

Message(“>%s\n”,atoa(NextNotTail(0)));

b) вызываем функцию NextNotTail, передавая ей нулевой адрес.

>seg000:0000

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

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

аргумент

пояснение

ea

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

return

=return

пояснения

!=BADADDR

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

==BADADDR

ошибка

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

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

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