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

Inf_packbase

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

INF_PACKBASE == 0

INF_PACKBASE == 1

INF_PACKBASE == 2

SetCharPrm(INF_PACKBASE,0);

SetCharPrm(INF_PACKBASE,1);

SetCharPrm(INF_PACKBASE,2);

ЗАМЕЧАНИЕ: оба типа упаковки обладают слабым сжатием, поэтому при возникновении потребности в дисковом пространстве или передачи базы по коммуникационным каналам рекомендуется ее упаковать с помощью любого подходящего архиватора (например, 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 a123456789abcde db '123456789ABCDEFG',0

seg000:2192 db '123456789ABCDEFG',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 db 31h ; 1

seg000:2193 db 32h ; 2

seg000:2194 db 33h ; 3

seg000:2195 db 34h ; 4

seg000:2196 db 35h ; 5

seg000:2197 db 36h ; 6

seg000:2198 db 37h ; 7

seg000:2199 db 38h ; 8

seg000:219A db 39h ; 9

seg000:219B db 41h ; A

seg000:219C db 42h ; B

seg000:219D db 43h ; C

seg000:219E db 44h ; D

seg000:219F db 45h ; E

seg000:21A0 db 46h ; F

seg000:21A1 db 47h ; G

seg000:21A2 db 0 ;

seg000:2192 db 31h ; 1

seg000:2193 db 32h ; 2

seg000:2194 db 33h ; 3

seg000:2195 db 34h ; 4

seg000:2196 db 35h ; 5

seg000:2197 db 36h ; 6

seg000:2198 db 37h ; 7

seg000:2199 db 38h ; 8

seg000:219A db 39h ; 9

seg000:219B db 41h ; A

seg000:219C db 42h ; B

seg000:219D db 43h ; C

seg000:219E db 44h ; D

seg000:219F db 45h ; E

seg000:21A0 db 46h ; F

seg000:21A1 db 47h ; G

seg000:21A2 db 0 ;

Создается имя

seg000:2192 a123456789abcde db '123456789ABCDEFG',0

seg000:2192 a123456789abcde db '123456789ABCDEFG',0

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

seg000:2192 db 31h ; 1

seg000:2193 db 32h ; 2

seg000:2194 db 33h ; 3

seg000:2195 db 34h ; 4

seg000:2196 db 35h ; 5

seg000:2197 db 36h ; 6

seg000:2198 db 37h ; 7

seg000:2199 db 38h ; 8

seg000:219A db 39h ; 9

seg000:219B db 41h ; A

seg000:219C db 42h ; B

seg000:219D db 43h ; C

seg000:219E db 44h ; D

seg000:219F db 45h ; E

seg000:21A0 db 46h ; F

seg000:21A1 db 47h ; G

seg000:21A2 db 0 ;

seg000:2192 a123456789abcde db 31h ; 1

seg000:2193 db 32h ; 2

seg000:2194 db 33h ; 3

seg000:2195 db 34h ; 4

seg000:2196 db 35h ; 5

seg000:2197 db 36h ; 6

seg000:2198 db 37h ; 7

seg000:2199 db 38h ; 8

seg000:219A db 39h ; 9

seg000:219B db 41h ; A

seg000:219C db 42h ; B

seg000:219D db 43h ; C

seg000:219E db 44h ; D

seg000:219F db 45h ; E

seg000:21A0 db 46h ; F

seg000:21A1 db 47h ; G

seg000:21A2 db 0 ;

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 '123456789ABCDEFG',0

seg000:2192 a123456789abcde db '123456789ABCDEFG',0

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