Библиотека knigago >> Компьютеры: Разработка ПО >> Крэкинг и реверсинжиниринг >> Образ мышления – дизассемблер IDA Pro. Том I


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 2337, книга: Тевтонский крест
автор: Руслан Викторович Мельников

Что ж, я прочитал «Тевтонский крест» Руслана Мельникова, и должен сказать, что это было довольно круто! Книга рассказывает о русском офицере, который попадает в прошлое и оказывается в теле тевтонского рыцаря. Это довольно интересная концепция, и Мельников делает все возможное, чтобы ее реализовать. Главный герой, Иван, хорошо прописан, и его развитие на протяжении всей книги было увлекательным. Он начинает как ярый русский патриот, но постепенно узнает о тяготах жизни в средневековой Европе....

СЛУЧАЙНАЯ КНИГА

Я – хранитель света!. Викки Латта
- Я – хранитель света!

Жанр: Любовная фантастика

Год издания: 2023

Серия: Академия Высшей Магии(Латта)

Крис Касперски - Образ мышления – дизассемблер IDA Pro. Том I

Образ мышления – дизассемблер IDA Pro. Том I
Книга - Образ мышления – дизассемблер IDA Pro. Том I.  Крис Касперски  - прочитать полностью в библиотеке КнигаГо
Название:
Образ мышления – дизассемблер IDA Pro. Том I
Крис Касперски

Жанр:

Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Крэкинг и реверсинжиниринг, Assembler

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Образ мышления – дизассемблер IDA Pro. Том I"

Подробный справочник по функциям встроенного языка, интерфейсу и архитектуре дизассемблера IDA Pro 4.01 с уточнением особенностей младших версий.

Показывает приемы эффективного использования IDA Pro для исследования зашифрованного кода, π-кода, самомодифицирующегося кода и кода, защищенного антиотладочными приемами.

Ориентирован на системных программистов средней и высокой квалификации в совершенстве владеющих языком ассемблера микропроцессоров серии Intel 80x86 и работающих с операционными системами фирмы Microsoft.

Читаем онлайн "Образ мышления – дизассемблер IDA Pro. Том I". [Страница - 108]

перечислены в фале IDA.CFG в секции DEFAULT_PROCESSOR:

расширение
Тип процессора
"com"
"8086"
"exe"
"metapc"
"dll"
"metapc"
"drv"
"metapc"
"sys"
"metapc"
"bin"
"metapc"
"ovl"
"metapc"
"ovr"
"metapc"
"ov?"
"metapc"
"nlm"
"metapc"
"lan"
"metapc"
"dsk"
"metapc"
"obj"
"metapc"
"prc"
"68000" (PalmPilot программы)
"axf"
"arm710a"
"h68"
"68000" (MC68000 для *.H68 файлов)
"i51"
"8051" (i8051 для *.I51 файлов)
"sav"
"pdp11" (PDP-11 для *.SAV файлов)
"rom"
"z80" (для *.ROM файлов)
"class"
"java"
"cls"
"java"
"s19"
"6811"
"*"
"metapc"



long Batch (long batch);

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

==batch
Режим
0
Обычный режим
1
Пакетный режим

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

auto a,s;
s="нормальный";
a=Batch(0);
Batch(a);
if (a) s="пакетый";
Message("Режимм работы %s \n",s);
Режимм работы нормальный


char GetIdaDirectory ();

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

Message (“%s \n”, GetIdaDirectory ());

D:\DEBUG\IDA384

Return
Пояснения

полный путь к директории, в которой расположена IDA


Точнее это путь к исполняемому файлу IDA.EXE (idaw.exe\ idax.exe). Расположение остальных файлов зависит от версии.
Так, например, IDA 3.6 хранила все скрипты в базовом каталоге, а последние версии в каталоге IDC.
Эти различия необходимо учитывать при поиске требуемых файлов. Желательно предусмотреть возможность диалога с пользователем и «ручным» указанием путей, а не полагаться на то, что требуемый файл окажется на месте.



char GetInputFile ();

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

Message (“%s \n “,
GetInputFile ()
);

My File.exe

Return
Пояснения

Имя дизассемблируемого файла вместе с расширением









СТРОКИ

К сожалению, встроенный язык IDA не поддерживает даже основных конструкций Си для работы со стоками. Так, например, невозможно получить посимвольный доступ к стоке или указатель на нее же.
Зато IDA поддерживает инициализацию и контекцию, (слияние) строк, что демонстрирует следующий пример:

auto a,b;
a="Hello";
b="IDA! \n";
a=a+","+b;
Message("%s \n",a);

Hello,IDA!

Таким образом, строки в IDA представляют собой закрытые объекты, доступные лишь посредством набора, манипулирующих с ними функций. Их всего три.
Это определение длины строки (strlen), взятие подстроки (substr) и поиск подстроки (srtsrt). Возможность модификации строки отсутствует, и в том случае, когда возникает потребность изменить хотя бы один символ, приходится перестраивать всю строку целиком.
Для этого может пригодиться две следующие функции, которые рекомендуется включить в idc.idc, что бы сделать их доступными для всех пользовательских скриптов.


static setstr(str, pos, ch)
{
auto s0;
s0=substr(str,0,pos);
s0=s0+ch;
s0=s0+substr(str,pos+strlen(ch), strlen(str));
return s0;
}


static setstr(str, pos, ch)
{
auto s0;
s0=substr(str,0,pos);
s0=s0+ch;
s0=s0+substr(str,pos, strlen(str));
return s0;
}

Первая из них позволяет в строке str заместить любую подстроку ch с позиции pos, а вторая осуществляет вставку с «раздвижкой»
Примеры использования даны ниже, но для повседневного использования обе функции рекомендуется дополнить проверками корректности передаваемых параметров.

Message("%s \n",
setstr("Hello World!",5,",")
);

Hello, World!


Message("%s \n",
insstr("Hello, World!",7,"my ")
);

Hello, my World!


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

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.