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

DW segment

INF PREFFLAG

Это однобайтовое поле хранит флаг, задающий формат вывода префикса на экран. Имеет смысл только когда вывод префиксов разрешен, (то есть флаг INF SHOWPREF установлен).

Флаг представляет собой возможные комбинации из трех битов. При этом бит PREF FNCOFF имеет приоритет над PREF SEGADR. То есть, комбинация (PREF FNCOFF PREF SEGADR) равносильна PREF FNCOFF. Однако, это не документировано и возможно в последующих версиях IDA будет вести себя иначе.

Интерактивно это можно изменить с помощью следующих опций диалога настойки:

- Options \ Text representation \ Segment addresses

- Options \ Text representation \ Function offsets

- Options \ Text representation \ Display stack pointer

Флаг

значение

Пояснение

Пример

PREF SEGADR

0x01

Представлять префикс в виде сегментного адреса

seg j0

PREF FNCOFF

0x02

Представлять префикс в виде смещения внутри функции

Sub D+1B

PREF STACK

0x04

Завершать префикс указателем стека

Sub 0 22DD+1B 008

INF PACKBASE

Это однобайтовое поле хранит тип упаковки базы IDA, предлагаемый по умолчанию при выходе из дизассемблера.


INF PACKBASE == 0

INF PACKBASE == 1

INF PACKBASE==2

SetCharPrm(INF PACKBASE,0);

SetCharPrm(INF PACKBASE,1);

SetCharPrm(INF PACKBASE,2);

1 (•) Dont pack database 1

1 „..ш

1 (•) Pack datahjimll

t pack database ( ) Pack database ( tore)

ЗАМЕЧАНИЕ: оба типа упаковки обладают слабым сжатием, поэтому при возникновении потребности в дисковом пространстве или передачи базы по



коммуникационным каналам рекомендуется ее упаковать с помощью любого подходящего архиватора (например, zip, arj) при этом выигрыш может быть более, чем десятикратный.

INF ASCIIFLAGS

Это однобайтовое беззнаковое поле задает стиль автогенерируемых строковых имен (или вообще запрещает создание таковых)

Представляет собой комбинацию следующих битов.

ASCF GEN

Если этот флаг установлен, то IDA автоматически генерирует имена для всех ASCII строк, состоящее из читабельных символов этой строки.

Так, например, встретив строку «Hello, Word» IDA создаст имя "aHello Word". В противном случае что-то наподобие «asc 0 206». Разумеется, что генерация осмысленных имен улучшает читабельность листинга и ускоряет анализ.

По умолчанию IDA ведет себя именно так. Если по какой-то причине возникнет желание отключить эту возможность, то можно воспользоваться функцией SetCharPrm(INF ASCIIFLAG,0) или интерактивно через «~ Options \ ASCII string options \ Generate names»

SetCharPrm(INF ASCIIFLAG,1);

SetCharPrm(INF ASCIIFLAG,0);

seg000:2192 a1234 5 67 8 9abcde db 1234 5 67 8 9ABCDEFG,0

seg000:2192 db 4234 567 8 9ABCDEFG,0

ASCF AUTO

Этот флаг, будучи установленным, приводит к тому, что IDA будет помечать все создаваемые имена, как autogenerated.

Это приведет к отображению их другим цветом и автоматическому удалению при преобразовании имени к unexplored.

По умолчанию флаг установлен. Если возникнет необходимость его изменить, то это можно сделать с помощью функции SetCharPrm(INF ASCIIFLAGS,!ASCF AUTO) или интерактивно «~Options \ ASCII string options \ Mark as autogenerated»

ASCF AUTO == 1

ASCF AUTO == 0

seg000:2192

segOOO

2192

31h ;

seg000:2193

seg000

2193

32h ;

seg000:2194

seg000

2194

33h ;

seg000:2195

seg000

2195

34h ;

seg000:2196

seg000

2196

35h ;

seg000:2197

seg000

2197

36h ;

seg000:2198

seg000

2198

37h ;

seg000:2199

seg000

2199

38h ;

seg000:219A

segOOO

219A

39h ;

seg000:219B

seg000

219B

41h ;

seg000:219C

seg000

219C

42h ;

seg000:219D

seg000

219D

43h ;

seg000:219E

seg000

219E

44h ;

seg000:219F

seg000

219F

45h ;

seg000:21A0

seg000

21A0

46h ;

seg000:21A1

seg000

21A1

47h ;

seg000:21A2

seg000

21A2

0 ;

здается имя

seg000:2192 a1234 5 67 8 9abcde db

123456789A

92 a123456789abcde db

123456789ABCDEFG,0



Преобразуем регион в unexplored

seg000:

2192

a123456789abcde db

seg000:

2193

seg000

2193

seg000:

2194

seg000

2194

seg000:

2195

seg000

2195

seg000:

2196

seg000

2196

seg000:

2197

eg000

2197

seg000:

2198

eg000

2198

seg000:

2199

eg000

2199

seg000

219A

eg000

219A

seg000:

219B

seg000

219B

seg000:

219C

seg000

219C

seg000:

219D

seg000

219D

seg000:

219E

eg000

219E

seg000:

219F

eg000

219F

seg000:

21A0

eg000

21A0

seg000:

21A1

eg000

21A1

seg000:

21A2

seg000

21A2

ASCF SERIAL

Если этот флаг будет установлен, то IDA будет генерировать следующие (в терминологии IDA последовательные) имена pref0,pref1,pref2 где pref -префикс имени, который для строк по умолчанию равен a

По умолчанию этот флаг сброшен, но если возникнет необходимость, то его можно установить с помощью функции SetCharPrm( или же интерактивно «~Options \ ASCII string options\ Generate serial names»

ASCF SERIAL == 1

ASCF SERIAL == 0

SetCharPrm(INF ASCIIFLAGS, ASCF SERIAL);

SetCharPrm(INF ASCIIFLAGS, !ASCF SERIAL);

seg000:2192 a0 db 1234 567 8 9ABCDEFG,0

seg000:2192 a123456789abcde db 1234 5 67 8 9ABCDEFG,0

INF LISTNAMES

Это однобайтовое беззнаковое поле содержит атрибуты имен, автоматически включаемых в Список Имен (Name List).


LN NORMAL

0x01

Имя без атрибутов (по умолчанию)

LN PUBLIC

0x02

Имя с атрибутом public

LN AUTO

0x04

Автогенерируемое имя

LN WEAK

0x08

Имя с атрибутом weak



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