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


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

# 1471, книга: Епистинья Степанова
автор: Виктор Фёдорович Конов

История (прочее) Виктор Конов Книга «Епистинья Степанова» исследует жизнь и карьеру выдающейся русской целительницы и травницы XIX века. Автор Виктор Конов погружает читателей в мир традиционной народной медицины и знакомит с женщиной, которая стала легендой за свои невероятные способности исцелять. * История русской народной медицины * Биография Епистиньи Степановой * Традиционные методы лечения * Вера и народные поверья * Социальное влияние целителей * Духовные аспекты...

Крис Касперски - Тонкости дизассемблирования

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

Жанр:

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

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

неизвестно

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

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

Краткое содержание книги "Тонкости дизассемблирования"

Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик. Разумеется, что говорить о взломе современных защитных механизмов в таких условиях просто смешно, но что делать если жизнь заставляет?..


Читаем онлайн "Тонкости дизассемблирования". Главная страница.

Kris Kaspersky
Тонкости дизассемблирования

ДИЗАССЕМБЛИРОВАНИЕ В УМЕ

Мне известны политические аргументы,

Но меня интересуют человеческие доводы.

Ф. Херберт. «Мессия Дюны»

Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик. Разумеется, что говорить о взломе современных защитных механизмов в таких условиях просто смешно, но что делать если жизнь заставляет?

Предположим, что у нас есть простейший шестнадцатеричный редактор, вроде того, который встроен в DN и, если очень повезет, то debug.com, входящий в поставку Windows и часто остающийся не удаленным владельцами машины. Вот этим-то мы и воспользуемся. Сразу оговорюсь, что все описанное ниже требует для своего понимания значительного упорства, однако, открывает большие практические возможности. Вы сможете, например, поставить на диск парольную защиту, зашифровать несколько секторов, внести вирус или разрушающую программу и все это с помощью «подручных» средств, которые наверняка окажутся в вашем распоряжении.

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

Поэтому все нижеописанное разрешается проделывать только над своим собственным компьютером или с разрешения его владельца. Если вы соглашаетесь с данными требованиями, то приступим.

СТРУКТУРА КОМАНД INTEL 80x86

Потому ты и опасен, что овладел своими страстями…

Ф. Херберт. «Мессия Дюны»

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

Для начала разберемся с форматом инструкций архитектуры Intel (рис. 1).


Книгаго: Тонкости дизассемблирования. Иллюстрация № 1
Заметим, что кроме поля кода операции все остальные поля являются необязательными, т.е. в одних командах могут присутствовать, а в других нет.

Само поле кода занимает восемь бит и часто (но не всегда) имеет следующий формат (рис. 2):


Книгаго: Тонкости дизассемблирования. Иллюстрация № 2
Поле размера равно нулю, если операнды имеют размер один байт. Единичное значение указывает на слово (двойное слово в 32-битном или с префиксом 0х66 в 16-битном режиме).

Направление обозначает операнд-приемник. Нулевое значение присваивает результат правому операнду, а единица левому. Рассмотрим это на примере инструкции mov bx,dx:


Книгаго: Тонкости дизассемблирования. Иллюстрация № 3
Если теперь флаг направления установить в единицу, то произойдет следующие:


Книгаго: Тонкости дизассемблирования. Иллюстрация № 4
Не правда ли, как по мановению волшебной палочки мы можем поменять местами операнды, изменив всего один бит? Однако, давайте задумаемся, как это поле будет вести себя, когда один из операндов непосредственное значение? Разумеется, что оно не может быть приемником и независимо от содержимого этого бита будет только источником. Инженеры Intel учили такую ситуацию и нашли оригинальное применение, часто экономящее в лучшем случае целых три байта. Рассмотрим ситуацию, когда операнду размером слово или двойное слово присваивается непосредственное значение по модулю меньшее 0100h. Ясно, что значащим является только младший байт, а --">

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


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