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

Long FindCode(long ea,long flag)

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

Аргумент flag задает направление поиска – если его младший бит установлен поиск идет от младших адресов к старшим и, соответственно, наоборот.

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

seg000:0100 mov ax, 9

seg000:0103 mov dx, 133h

a) исходные данные – требуется получить линейный первого элемента кода

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

b) вызов функции FindCode – адрес начала поиска равен нулю, единичное значение флага направление указывает вести поиск с увеличением адресов

>seg000:0100

результат – линейный первого элемента кода

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

аргумент

пояснения

ea

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

flag

=flag

пояснения

==1

прямое направление поиска

==0

обратное направление поиска

return

=return

пояснения

!=BADADDR

линейный адрес элемента кода

==BADADDR

ошибка

Родственные функции: FindData, FindExplored, FindUnexplored

Интерактивный аналог:”~Nabigate\Search for\Next Code”; <Ctrl-C>

Long FindData(long ea,long flag)

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

Аргумент flag задает направление поиска – если его младший бит установлен поиск идет от младших адресов к старшим и, соответственно, наоборот.

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

seg000:0000 mov ah, 9

seg000:0002 mov dx, 108h

seg000:0005 int 21h

seg000:0005

seg000:0007 retn

seg000:0007 ; ──────────────────────────────

seg000:0008 aHelloIda db 'Hello, IDA'

a) исходные данные – требуется получить линейный последнего элемента данных

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

b) вызов функции FindData

>seg000:0108

результат – линейный адрес последнего элемента данных

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

аргумент

пояснения

ea

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

flag

=flag

пояснения

==1

прямое направление поиска

==0

обратное направление поиска

return

=return

пояснения

!=BADADDR

линейный адрес элемента данных

==BADADDR

ошибка

Родственные функции: FindCode, FindExplored, FindUnexplored

Интерактивный аналог:”~Nabigate\Search for\Next Data”; <Ctrl-D>

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