Бесплатная библиотека, читать онлайн, скачать книги txt

БОЛЬШАЯ БЕСПЛАТНАЯ БИБЛИОТЕКА

МЕЧТА ЛЮБОГО КНИГОЛЮБА

Воскресенье, 19 мая, 10:25

Авторизация    Регистрация
Дамы и господа! Электронные книги в библиотеке бесплатны. Вы можете их читать онлайн или же бесплатно скачать в любом из выбранных форматов: txt, jar и zip. Обратите внимание, что качественные электронные и бумажные книги можно приобрести в специализированных электронных библиотеках и книжных магазинах (Litres, Read.ru и т.д.).

ПОСЛЕДНИЕ ОТЗЫВЫ О КНИГАХ

Михаил (19.04.2017 - 06:11:11)
книге:  Петля и камень на зелёной траве

Потрясающая книга. Не понравится только нацистам.

Антихрист666 (18.04.2017 - 21:05:58)
книге:  Дом чудовищ (Подвал)

Классное чтиво!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Ладно, теперь поспешили вы... (18.04.2017 - 20:50:34)
книге:  Физики шутят

"Не для сайта!" – это не имя. Я пытался завершить нашу затянувшуюся неудачную переписку, оставшуюся за окном сайта, а вы вын... >>

Роман (18.04.2017 - 18:12:26)
книге:  Если хочешь быть богатым и счастливым не ходи в школу?

Прочитал все его книги! Великий человек, кардинально изменил мою жизнь.

АНДРЕЙ (18.04.2017 - 16:42:55)
книге:  Технология власти

ПОЛЕЗНАЯ КНИГА. Жаль, что мало в России тех, кто прочитал...

Читать все отзывы о книгах

Обои для рабочего стола

СЛУЧАЙНОЕ ПРОИЗВЕДЕНИЕ

Не надо так. Зачем? Всё изменилось.
Ни в чём не виноваты наши сны.
А счастье... Сколь могло оно - продлилось.
Пусть и не дольше, чем дожди весны.

Поверь. Никто из нас не идеален.
Мечты всегда реальности милей.
Но мы всего лишь мы. И будем нами.
Нам ни к чему ходить за семь морей.... >>

01.07.10 - 09:48
Нина

Читать онлайн произведения


Хотите чтобы ваше произведение или ваш любимый стишок появились здесь? добавьте его!

Поделись ссылкой

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

Страница: 8 из 9
 
Неплохо для начала? Мы уже дизассемблировали часть файла и при этом нам не потребовалось знание ни одного кода операции, за исключением, быть может, 0CDh, соответствующего команде 'INT.

Вряд ли мы скажем, о чем говорит код 087h. (Впрочем, обращая внимание на его близость к операции NOP , являющейся псевдонимом ' XCHG AX , AX ', можно догадаться, что 087h — это код операции XCHG ). Обратим внимание на связанный с ним байт 0F2h:

Как не трудно догадаться, эта команда заносит в SI смещение пароля, содержащиеся в DX. Этот вывод мы делаем, только исходя из смыслового значения регистров, полностью игнорируя код команды. К сожалению, этого нельзя сказать о следующем байте — 0ACh. Это код операции LODSB , и его придется просто запомнить.

0x02 — это код ADD , а следующий за ним байт — это AH , AL (не буду больше повторять, как это было получено).

0xE2 — это код операции LOOP , а следующий за ним байт — это знаковое относительное смещение перехода.

Чтобы превратить его в знаковое целое, необходимо дополнить его до нуля, (операция NEG , которую большинство калькуляторов не поддерживают). Тот же самый результат мы получим, если отнимем от 0100h указанное значение (в том случае, если разговор идет о байте). В нашем примере это равно пяти. Отсчитаем пять байт влево от начала следующей команды . Если все сделать правильно, то вычисленный переход должен указывать на байт 0ACh (команда LODSB ), впрочем, последнее было ясно и без вычислений, ибо других вариантов, по-видимому, не существует.

Почему? Да просто данная процедура подсчета контрольной суммы (или точнее хеш-суммы) очень типична. Впрочем, не стоит всегда полагаться на свою интуицию и «угадывать» код, хотя это все же сильно ускоряет анализ.

С другой стороны, хакер без интуиции — это не хакер. Давайте применим нашу интуицию, чтобы «вычислить», что представляет собой код следующей команды. Вспомним, что 0B4h (10110100b) — это MOV AH , imm 8 .

0BEh очень близко к этому значению, следовательно, это операция MOV. Осталось определить регистр-приемник. Рассмотрим обе команды в двоичном виде:

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

Обратим внимание, что это, строго говоря, частный случай, и все могло оказаться иначе. Так, например, четвертый справа бит по аналогии должен быть флагом направления или знакового расширения, но увы — таковым в данном случае не является. Четыре левые бита это код операции ' mov reg , imm '. Запомнить его легко — это «13» в восьмеричном представлении.

Итак, 0BEh 03Bh 001h — это MOV SI ,013 Bh . Скорее всего, 013bh — это смещение, и за этой командой последует расшифровщик очередного фрагмента кода. А может быть и нет — это действительно смелое предположение. Однако, байты 030h 024h это подтверждают. Хакеры обычно так часто сталкиваются с функций xor , что чисто механически запоминают значение ее кода.

Не трудно будет установить, что эта последовательность дизассемблируется как XOR [ SI ], AH . Следующий байт 046h уже нетрудно «угадать» — INC SI . Кстати, посмотрим, что же интересного в этом коде:

Третий бит равен нулю! Выходит команда должна выглядеть как INC AH ! (Что кстати, выглядит непротиворечиво смысле дешифровщика). Однако, все же это INC SI . Почему мы решили, что третий бит — флаг размера? Ведь Intel этого никак не гарантировала! А команда ' INC byte ' вообще выражается через дополнительный код, что на байт длиннее.

Выходит, что как ни полезно знать архитектуру инструкций, все же таблицу кодов команд хотя бы местами надо просто выучить.

1<<789


В тексте попалась красивая цитата? Добавьте её в коллекцию цитат!
Колесо войныВасилий Сахаров69,90 руб.
Невеста воина, или Месть по расписаниюЕлена Звёздная69,90 руб.
Пятьдесят оттенков свободыЭ. Л. Джеймс149,90 руб.
Завещание рождественской уткиДарья Донцова89,90 руб.


copyright © Бесплатная библиотека,    контакты: [email protected]