Анимация
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

offset);

элемента в структуре

long GetStrucPrevOff(long id,long offset)

Возвращает смещение начала предыдущего элемента структуры

long GetFirstMember(long id);

Возвращает смещение начала первого члена структуры

long GetLastMember(long id);

Возвращает смещение начала (не конца!) последнего члена структуры

char GetMemberName(long id,long member offset);

Возвращает имя члена структуры

char GetMemberComment(long id,long member offset,long repeatable);

Возвращает комментарий, связанный с членом структуры

long GetMemberSize(long id,long member offset);

Возвращает размер члена структуры в байтах

long AddStrucEx(long index,char name,long is union)

Создает новую структуру

long IsUnion(long id);

Возвращает единицу если тип структуры -объединение

success DelStruc(long id);

удаляет существующую структуру по ее идентификатору

long SetStrucIdx(long id,long index);

Изменяет индекс структуры

long SetStrucName(long id,char name)

Изменяет имя структуры

long SetStrucComment(long id,char comment,long repeatable)

Задает комментарий к структуре

long DelStrucMember(long id,long member offset);

Удаляет члена структуры

long SetMemberName(long id,long member offset,char name)

Изменяет имя члена структуры

long SetMemberType(long id,long member offset,long flag,long typeid,long nitems

Изменяет тип члена структуры

long SetMemberComment(long id,long member offset,char comment,long repeatable)

Задает комментарий члена структуры



long GetStrucQty(void);

Функция возвращает количество структур, созданных вызовом AddStrucEx. Все они отображаются IDA в списке структур, который доступен из меню ~ View \ Structures.

Структуры, обеспечивающие доступ к элементам стековых фреймов в это число не

входят.

Если не создано ни одной структуры, то функция возвращает ноль. Пример использования:

0000 0000 0001 0002 0002 0000 0000 0000 0000 0002 0002 0000 0000 0000 0000 0001

struc 1

field 0 field 1

struc 1

struc 2 field 0

struc 2

struc 3

field 0

struc 3

struc

db ? db ?

ends

struc

dw ?

ends

struc

db ?

ends

Message("0x%X \n",

GetStucQty()

==return

Пояснения

Return

Число структур, созданных вызовами AddStrucEx

Нет ни одной структуры

long GetFirstStrucldx(void);

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

0000 struc 1

0000 field 0

0001 field 1

0002 struc 1 0002 0000 ; 0000

0000 struc 2

0000 field 0

0002 struc 2

struc

db ? db ?

ends

struc

dw ?

ends



0002

0000 ; 0000

0000 struc 3

0000 field 0

0001 struc 3

struc

db ?

ends

Message("0x%X \n",

GetFirstStrucIdx()

Список автоматически перестраивается при операциях удаления или добавления структур, поэтому индексы не остаются постоянными. Использовать их для доступа к структуре не рекомендуется.

Например, если удалить struc 1, а потом повторить вызов GetFirstStrucIdx, то она вновь вернет ноль, однако, теперь это индекс struc 2, а не srtuc 1.

0000 struc 2

0000 field 0

0002 struc 2 0002

0000 ; 0000

0000 struc 3

0000 field 0

0001 struc 3

struc

dw ?

ends

struc

db ?

ends

Message("0x%X \n",

GetFirstStrucIdx()

==return

Пояснения

Return

Индекс первой структуры в списке (всегда ноль)

==BADADDR

Нет ни одной структуры

long GetLastStrucIdx(void);

Функция возвращает индекс последней структуры в списке. Он всегда равен GetStrucQtyO -1. В том случае если не определено не одной структуры, то функция возвратит ошибку BADADDR.

0000 struc 1

0000 field 0

0001 field 1

0002 struc 1 0002 0000 ; 0000

0000 struc 2

0000 field 0

struc

db ? db ?

ends

struc

dw ?



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