Крис Касперски - Образ мышления – дизассемблер IDA Pro. Том I
Название: | Образ мышления – дизассемблер IDA Pro. Том I | |
Автор: | Крис Касперски | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Крэкинг и реверсинжиниринг, Assembler | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Образ мышления – дизассемблер IDA Pro. Том I"
Подробный справочник по функциям встроенного языка, интерфейсу и архитектуре дизассемблера IDA Pro 4.01 с уточнением особенностей младших версий.
Показывает приемы эффективного использования IDA Pro для исследования зашифрованного кода, π-кода, самомодифицирующегося кода и кода, защищенного антиотладочными приемами.
Ориентирован на системных программистов средней и высокой квалификации в совершенстве владеющих языком ассемблера микропроцессоров серии Intel 80x86 и работающих с операционными системами фирмы Microsoft.
Читаем онлайн "Образ мышления – дизассемблер IDA Pro. Том I". [Страница - 2]
- 1
- 2
- 3
- 4
- . . .
- последняя (109) »
дизассемблером ограничено.
В каждый пакет поставки (за исключением демонстрационного) входят две
ипостаси – одна графическая под Windows-32 (в дальнейшем обозначаемая как IDAG) и
три консольных для MS-DOS, OS/2 и Windows-32. В демонстрационный пакет входит
лишь одна графическая ипостась. Обе ипостаси обладают сходными функциональными
возможностями, поэтому в книге будет описана лишь одна из них, скомпилированная для
исполнения в среде Windows-32 (в дальнейшем обозначаемая как IDAW)
Покупка IDA Pro Standard или IDA Pro Advanced дает право на бесплатное
приобретение IDA SDK (Software Development Kit) – программного пакета, позволяющего
пользователю самостоятельно разрабатывать процессорные модули, файловые
загрузчики и плагины (внешние самостоятельные модули). Это неограниченно расширяет
возможности IDA Pro, позволяя анализировать любой код, для какого бы микропроцессора
и операционной системы он ни предназначался. SDK различных версий не совместимы
друг с другом и созданные пользователем модули могут не работать в другой версии
IDA Pro, поэтому, прежде чем переходить на очередную версию IDA Pro, настоятельно
рекомендуется убедиться в сохранении работоспособности всех скриптов, модулей и
плагинов и т.д.
Рисунок 1 ”ida.console.view” Так выглядит консольная ипостась IDA Pro 4.01
Рисунок 2 “ida.gui.view” Так выглядит графическая ипостась IDA Pro 4.01
Рисунок 3 “ida.gui.view.4.14.bmp” Так выглядит графическая ипостась IDA Pro 4.14
Demo
2
Кратное введение в дизассемблирование
Одним из способов изучения программ в отсутствии исходных текстов является
дизассемблирование, – перевод двоичных кодов процессора в удобочитаемые
мнемонические инструкции. С перового взгляда кажется: ничего сложного в такой операции
нет, и один дизассемблер не будет сильно хуже любого другого. На самом же деле,
ассемблирование – однонаправленный процесс с потерями, поэтому автоматическое
восстановление исходного текста невозможно.
Одна из фундаментальных проблем дизассемблирования заключается в
синтаксической неотличимости констант от адресов памяти (сегментов и смещений).
Потребность распознавания смещений объясняется необходимостью замены конкретных
адресов на метки, действительное смещение которых определяется на этапе
ассемблирования программы.
Сказанное можно проиллюстрировать следующим примером: рассмотрим
исходную программу (a). При ассемблировании смещение строки s0, загружаемое в
регистр s0 заменяется его конкретным значением, в данном случае равным 108h, отчего,
команда “MOV DX, offset s0” приобретает вид “MOV DX, 108h”. Это влечет за собой потерю
информации – теперь уже нельзя однозначно утверждать как выглядел исходный текст, т.к.
ассемблирование “…offset s0” и “…108h” дает одинаковый результат, т.е. функция
ассемблирования не инъективна 1.
Если все машинные инструкции исходного файла, перевести в соответствующие им
символьные мнемоники (назовем такую операцию простым синтаксическим
дизассемблированием), в результате получится (b). Легко видеть – программа сохраняет
работоспособность лишь до тех пор, пока выводимая строка располагается по адресу
108h. Если модификация кода программы (c) нарушает такое равновесие, на экране
вместо ожидаемого приветствия появляется мусор – теперь выводимая строка находится
по адресу 0x10C, но в регистр DX по прежнему загружается прежнее значение ее
смещения – 0x108 (d).
mov
mov
int
ret
s0
ah,9
dx, offset s0
21h
Æ
DB 'Hello,World!',0Dh,0Ah,'$'
(а) Исходная программа
mov
ah,9
mov
dx,0108h
int
21h
ret
s0 DB 'Hello,World!',0Dh,0Ah,'$'
Æ
(b) Дизассемблированная программа
:0100 start
:0100
:0102
:0105
:0107
:0109
:010B
:010B aHelloWorld
:010C end
mov
ah,09
mov
dx,0108h
int
21h
xor
ax,ax
int
16h
ret
s0 DB 'Hello,World!',0Dh,0Ah,'$'
(с) Модифицированная программа
proc
near
mov
ah, 9
mov
dx, 108h ─┐
int
21h
│
xor
ax, ax
│
int
16h ◄────┘
retn
db 'Hello,World!',0Dh,0Ah,'$'
start
(d) Неработоспособный результат
Аналогичная проблема возникает и переводе с одного языка на другой – фраза
«это ключ» в зависимости от ситуации может быть переведена и как “this is key”, и “this is
clue”, и “this is switch”… Для правильного перевода мало простого словаря подстрочечника, необходимо еще понимать о чем идет речь, т.е. осмысливать
переводимый текст.
Человек легко может определить, что содержимое регистра DX в данном случае
1
Функция f(x) = y называется инъективной, если уравнение f(y) = x, имеет только один
корень --">
- 1
- 2
- 3
- 4
- . . .
- последняя (109) »
Книги схожие с «Образ мышления – дизассемблер IDA Pro. Том I» по жанру, серии, автору или названию:
Николай Федорович Дубровин - Пугачев и его сообщники. 1774 г. Том 2 Жанр: История России и СССР Год издания: 2019 Серия: Отдельные издания. История России |
Вячеслав Владимирович Меньшиков - Ржев – Сталинград. Скрытый гамбит маршала Сталина Жанр: Военная документалистика и аналитика Год издания: 2012 |
Валентина Ивановна Назарова - Современные теплицы и парники Жанр: Сад и огород Год издания: 2011 |
Другие книги автора «Крис Касперски»:
Крис Касперски - Восстановление данных. Практическое руководство Жанр: Сети Год издания: 2006 |
Крис Касперски - Техника оптимизации программ. Эффективное использование памяти Жанр: Отладка, тестирование и оптимизация ПО Год издания: 2003 Серия: Мастер программ |
Крис Касперски - Техника и философия хакерских атак — записки мыщ'а Жанр: Крэкинг и реверсинжиниринг Год издания: 2004 Серия: Кодокопатель |