Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [ 57 ] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140

dseg:0271 dseg:0271 dseg:0271

dseg:03F3 dseg:03F3 dseg:03F6

Hello IDA 4.0

Attributes: static

call

checknull

[bp+arg 2], 0

Hello IDA 4.0

Не рекомендуется перегружать листинг повторяемыми комментариями. Ведь всегда можно обратиться за разъяснениями к самой функции.

Наиболее полезны они на начальной стадии дизассемблирования, когда назначение большинства функций плохо понятны и дать им осмысленное имя никак не удается. Тогда в повторяемом комментарии отражают все, что на данный момент известно о каждой из функций и по мере исследования текста, уточняют. На финальной же стадии дизассемблирования, повторяемые комментарии обычно убирают.

Обратите внимание, каждая функция может обладать комментариями сразу двух типов, но в заголовке будет отображаться только один из них - regular.

Например:

SetFunctionCmt(0x10271,"Hello IDA 4.0",1); SetFunctionCmt(0x10271,"Hello World",0);

dseg:0271 ; Hello World

dseg:0271 ;

Attributes

: static

dseg:03F3 dseg:03F6

call checknull ; Hello IDA 4.0 cmp [bp+arg 2], 0

Операнд

Пояснения

Любой линейный адрес, принадлежащий функции

Строка комментария, включая символ переноса

Флаг

Пояснения

Repeatable

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

Повторяемый комментарий

char GetFunctionCmt(long ea, long repeatable);

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

Подробнее о повторяемых комментариях можно прочитать в описании функции SetFunctionCmt

Например:

Hello IDA 4.0

Attributes: static

dseg:0271 dseg:0271 dseg:0271

dseg:0271 checknull proc near

dseg:0271 retn

dseg:0271 checknull endp

Message("%s \n", GetFunctionCmt(0x010271,1)



Hello, IDA 4.0

Message("%s \n",

GetFunctionCmt(0x010271,0)

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

Операнд

Пояснения

Любой линейный адрес, принадлежащий функции

Repeatable

Флаг

Пояснения

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

Повторяемый комментарий

Return

Завершение

Пояснения

!=""

Комментарий

Ошибка

long ChooseFunction(char title);

Создает диалоговое окно содержащие список всех существующих функций с краткой сводной информацией о каждой из них.

Возвращает линейный адрес начала выбранной функции или BADADDR, если ни одна функция не была выбрана.

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

Message("0x%X \n", ChooseFunction("List")





0x401020

Поле

Function Name

Имя функции

Segment

Сегмент, владеющий функцией

Start

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

Length

Длина функции в байтах

RFLSBMICDV

Атрибут

Определение

Пояснение

IFUNC NORET

Функция, возвращающая управление

FUNC FAR

FAR (Далекая) функция

FUNC LIB

Библиотечная функция

FUNC STATIC

Static - функция

FUNC FRAME

BP используется как указатель на кадр стека

FUNC MEMBER

member function

FUNC VIRTUAL

Виртуальная функция

FUNC CTR

Конструктор

FUNC DTR

Деструктор

FUNC VARARG

Функция с переменным числом аргументов

* Не поддерживается в текущих версиях. Зарезервировано для будущего использования.

Подробнее узнать об атрибутах функции можно в описании SetFunctionFlags.

Операнд Пояснения

title

Заголовок дианового окна



0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 [ 57 ] 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140