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

Void MakeVar(long ea)

Функция помечает элемент символом «звездочка», помещая его в начало строки. Повторный вызов функции не снимает пометку, и автору книги вообще не известно ни одного программного способа, позволяющего, эту пометку убрать. Интерактивно она снимается вызовом пункта «Mark item as variable» меню “~Edit\Other”, который действует как триггер.

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

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

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

MakeVar(SegByName(“seg000”));

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

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

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

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

аргумент

пояснения

ea

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

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

Интерактивный аналог: “~Edit\Other \Mark item as variable”

Char Name(long ea)

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

Функция выполняет проверку на наличие недопустимых символов в имени метки (функции) и при наличии таковых, заменяет их символом, заданным в поле “SubstChar” конфигурационного файла <ida.cfg>. По умолчанию недопустимые символы заменяются знаком «прочерка». Перечень допустимых символов в именах метках определяется значением поля “NameChars” конфигурационного файла <ida.cfg> (см. таблицу 17)

Замечание: при отображении имен меток (функций) в окне дизассемблера, IDA Pro всегда заменяет запрещенные символы знаком «прочерка». Т.е. функция Name возвращает имена в том виде, в каком они отображаются на экране. Для получения подлинного имени метки (функции) следует воспользоваться функцией GetTrueName

платформа

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

PC

"$?@"12

“_0123456789"

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"abcdefghijklmnopqrstuvwxyz";

Java

"$_@?!"13

"0123456789<>"

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"abcdefghijklmnopqrstuvwxyz"

"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"14

"абвгдежзийклмнопрстуфхцчшщъыьэюя";

TMS320C6

"$_0123456789"

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"abcdefghijklmnopqrstuvwxyz"

PowerPC

"_0123456789."

"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

"abcdefghijklmnopqrstuvwxyz”

Таблица 18 перечень символов, допустимых в именах меток

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

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

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

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

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

> aHelloIdaPro

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

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

аргумент

пояснения

ea

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

return

=return

пояснения

!=””

имя метки, в том виде, в котором оно отображено на экране

==””

ошибка

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

Интерактивный аналог: имя метки (функции) отображается справа от адреса

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