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

Long PrevAddr (long ea)

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

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

0:00010000 db 48h ; H

0:00010001 db 65h ; e

0:00010002 db 6Ch ; l

0:00010003 db 6Ch ; l

0:00010004 db 6Fh ; o

0:00010005 db 2Ch ; ,

0:00010006 db 20h ;

0:00010007 db 49h ; I

0:00010008 db 44h ; D

0:00010009 db 41h ; A

0:0001000A db 20h ;

0:0001000B db 50h ; P

0:0001000C db 72h ; r

0:0001000D db 6Fh ; o

0:0001000E db 21h ; !

0:0001000F db 20h ;

0:00010010 db 0Dh ;

0:00010011 db 0Ah ;

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

auto a;

a=BADADDR;

while(1)

{

a=PrevAddr(a);

if (a==BADADDR) break;

Message(">%X\n",a);

}

b) трассировка адресов последовательными вызовами функции PrevAddr

>10011

>10010

>1000F

>1000E

>1000D

>1000C

>1000B

>1000A

>10009

>10008

>10007

>10006

>10005

>10004

>10003

>10002

>10001

>10000

с) результат – получение перечня существующих адресов виртуальной памяти

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

аргумент

пояснение

ea

линейный адрес ячейки виртуальной памяти

return

=return

пояснения

!=BADADDR

предшествующий ea адрес виртуальной памяти

==BADADDR

ошибка

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

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

Long GetFlags(long ea)

Функция возвращает значение флагов виртуальной памяти, ассоциированных с виртуальным адресом ea. Если указанного виртуального адреса не существует, функция возвращает ноль.

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

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

аргумент

пояснения

ea

линейный адрес ячейки виртуальной памяти

return

=return

Пояснения

!=0

значение флагов

==0

ошибка

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

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

Void SetFlags(long ea)

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

Внимание: настоятельно рекомендуется по возможности избегать непосредственной модификации флагов – допущенная ошибка может привести к зависанию дизассемблера!

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

аргумент

пояснения

ea

линейный адрес ячейки виртуальной памяти

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

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

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