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

Char GetTrueName(long ea)

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

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

seg000:0000 _HelloIdaPro db 'Hello, IDA Pro! ',0Dh,0Ah

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

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

b) вызов функции GetTrueName для получения имени метки

>%HelloIdaPro

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

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

аргумент

пояснения

ea

линейный адрес

return

=return

пояснения

!=””

подлинное имя метки (функции)

==””

ошибка

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

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

Char Comment(long ea)

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

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

seg000:0000 mov ah, 9 ; Функция 0x9 – печать строки

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

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

b) вызов функции Comment для получения постоянного комментария

> Функция 0x9 – печать строки

c) результат

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

аргумент

пояснения

ea

линейный адрес

return

=return

пояснения

!=””

строка постоянного комментария

==””

ошибка

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

Интерактивный аналог: постоянный комментарий отображается справа от элемента

Char RptCmt(long ea)

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

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

seg000:0100 mov ah, 9

seg000:0102 mov dx, offset aHello ; Это повторяемый комментарий

seg000:0105 int 21h ; DOS - PRINT STRING

seg000:0105 ; DS:DX -> string terminated by "$"

seg000:0107 retn

seg000:0107 ; ──────────────────────────────────────────────────────────────────────────

seg000:0108 aHello db 'Hello,',0 ; DATA XREF: seg000:0102↑o

seg000:0108 ; Это повторяемый комментарий

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

Message(“>%s\n”,RptCmt(SegByName(“seg000”)+0x108)));

b) вызов функции RptCmt для получения повторяемого комментария

> Это повторяемый комментарий

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

Внимание: функция RptCmt ожидает именно адрес повторяемого комментария, а не адрес элементов, ссылающихся на элемент, связанный с повторяемым комментарием. Т.е. в приведенном выше примере вызов RptCmt(SegByName(“seg000”)+0x102)) вернул бы пустую строку.

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

аргумент

пояснения

ea

линейный адрес

return

=return

пояснения

!=””

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

==””

ошибка

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

Интерактивный аналог: повторяемый комментарий отображается справа от элемента, и всех ссылок на данный элемент

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