Крис Касперски - Образ мышления – дизассемблер IDA Pro. Том I
Название: | Образ мышления – дизассемблер IDA Pro. Том I | |
Автор: | Крис Касперски | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Крэкинг и реверсинжиниринг, Assembler | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | - | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Образ мышления – дизассемблер IDA Pro. Том I"
Подробный справочник по функциям встроенного языка, интерфейсу и архитектуре дизассемблера IDA Pro 4.01 с уточнением особенностей младших версий.
Показывает приемы эффективного использования IDA Pro для исследования зашифрованного кода, π-кода, самомодифицирующегося кода и кода, защищенного антиотладочными приемами.
Ориентирован на системных программистов средней и высокой квалификации в совершенстве владеющих языком ассемблера микропроцессоров серии Intel 80x86 и работающих с операционными системами фирмы Microsoft.
Читаем онлайн "Образ мышления – дизассемблер IDA Pro. Том I". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (109) »
3
является именно смещением, а не чем ни будь иным, поскольку, его ожидает функция 0x9
прерывания 0x21. Но дизассемблеру для успешной работы мало знать одних прототипов
системных и библиотечных функций, – он должен еще уметь отслеживать содержимое
регистров, а, следовательно, «понимать» команды микропроцессора. Создание такого
дизассемблера (часто называемого контекстным) очень сложная инженерная задача,
тесно граничащая с искусственным интеллектом, которая на сегодняшний день еще никем
не решена. Существует более или менее удачные разработки, но ни одна из них не
способна генерировать 100%-работоспособные листинги.
Например, путь в исходной программе имелся фрагмент (а), загружающий в
регистр AX смещение начала таблицы, а в регистр BX индекс требуемого элемента.
Ассемблер, заменяя оба значения константами (b), создает неразрешимую задачу, – легко
видеть, что один из регистров содержит смещение, а другой индекс, но как узнать какой
именно?
MOV
AX,offset Table
MOV
BX,200h ; Index
ADD
AX,BX
Æ
MOV
AX,[BX]
(а) Исходная программа
BB 00 02
01 D8
8B 07
Æ
B8 10 00
(b) Машинный код
MOV
AX,0010
MOV
BX,0200
ADD
AX,BX
MOV
AX,Word ptr [BX]
(c) Дизассемблированный текст
Другая фундаментальная проблема заключается в невозможности определения
границ инструкций синтаксическим дизассемблером. Путь в исходной программе (a)
имелась директива выравнивания кода по адресам кратным четырем, тогда ассемблер (b)
вставит в этом месте несколько произвольных символов (как правило нулей), а
дизассемблер «не зная» об этом, примет их за часть инструкций, в результате чего
сгенерирует ни на что ни годный листинг (c).
JMP Label
Align 4
Label: XOR AX,AX
RET
(а) Исходная программа
00:
03:
05:
(c)
E9 01 00
jmp
00 33
add
C0 C3
rol
Дизассемблированный
00:
03:
04:
06:
(b)
E90100
00
33 C0
C3
Машинный код
04
[bp][di],dh
bl,-070;
текст
Контекстные дизассемблеры частично позволяют этого избежать, поскольку,
способны распознавать типовые способы передачи управления, но если программист
использует регистровые переходы, дизассемблеру придется эмулировать выполнение
программы, для определения значений регистров в каждой точке программы. Это не
только технически сложная, но и ресурсоемкая задача, решение которой еще предстоит
найти.
Дизассемблирование – творческий процесс, развивающий интуицию и абстрактное
мышление, возможно, даже особый вид искусства, позволяющего каждому проявить свою
индивидуальность. На сегодняшний день не существует ни одного полностью
автоматического дизассемблера, способного генерировать безупречно работоспособный
листинг и доводить полученный ими результат до готовности приходится человеку. Таким
образом, встает вопрос о механизмах взаимодействия человека с дизассемблером.
По типу реализации интерфейса взаимодействия с пользователем, существующие
дизассемблеры можно разделить на две категории – автономные и интерактивные.
Автономные дизассемблеры требуют от пользования задания всех указаний до начала
дизассемблирования и не позволяют вмешиваться непосредственно в сам процесс. Если
же конечный результат окажется неудовлетворительным, пользователь либо вручную
правит полученный листинг, либо указывает дизассемблеру на его ошибки и повторяет всю
4
процедуру вновь и вновь, порой десятки раз! Такой способ общения человека с
дизассемблером непроизводителен и неудобен, но его легче запрограммировать.
Интерактивные
дизассемблеры
обладают
развитым
пользовательским
интерфейсом, благодаря которому приобретают значительную гибкость, позволяя
человеку «вручную» управлять разбором программы, помогая автоматическому
анализатору там, где ему самому не справится – отличать адреса от констант, определять
границы инструкций и т.д.
Примером автономного дизассемблера является SOURCER, а интерактивного –
IDA. Преимущество SOURCER-а заключается в простоте управления, в то время как
работа с IDA требует высокой квалификации и навыков системного программирования.
Неопытные пользователи часто предпочитают SOURCER, лидирующий среди других
дизассемблеров, на небольших проектах. Но он очень плохо справляется с анализом
большого, порядка нескольких мегабайт, заковыристого файла, а с шифрованным или
π-кодом не справляется вообще! И тогда на помощь приходит IDA, --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (109) »
Книги схожие с «Образ мышления – дизассемблер IDA Pro. Том I» по жанру, серии, автору или названию:
Владимир Осипович Богомолов - Сочинения в 2 томах. Том 1. Момент истины Жанр: Военная проза Год издания: 2008 |
Сергей Васильевич Сулига - Японские тяжелые крейсера.Том 1: История создания, описание конструкции, предвоенные модернизации. Жанр: История: прочее Год издания: 1996 Серия: Боевые корабли мира |
Петр Александрович Дружинин - Идеология и филология. Ленинград, 1940-е годы. Документальное исследование. Том 1 Жанр: История России и СССР Год издания: 2012 |
Сергей Владимирович Волков (историк) - Русская Армия генерала Врангеля. Бои на Кубани и в Северной Таврии. Том 14 Жанр: Биографии и Мемуары Год издания: 2023 Серия: Белое движение в России |
Другие книги автора «Крис Касперски»:
Крис Касперски - Техника оптимизации программ. Эффективное использование памяти Жанр: Отладка, тестирование и оптимизация ПО Год издания: 2003 Серия: Мастер программ |