Document
 
 
 
 

Реклама на сайте  

косметология спб
чистка лица спб
массаж лица спб
смас лифтинг цена спб
клиника косметологии спб
смас лифтинг спб
smas лифтинг спб
чистка лица спб цены
лечебный массаж спины спб
массаж лица спб цены
косметология санкт петербург
фотоэпиляция спб
плазмолифтинг спб
чистка лица санкт петербург
плазмолифтинг цена спб
биоревитализация спб
студия массажа лица спб
контурная пластика спб
биоревитализация лица спб
клиника косметологии санкт петербург
рф лифтинг спб цены
rf лифтинг санкт петербург
рф лифтинг спб
биоревитализация спб цена
массаж лица санкт петербург
лечебный массаж спины спб цены
удаление пигментных пятен спб
криомассаж лица цена спб
удаление татуажа спб
смас лифтинг санкт петербург
криомассаж лица спб
rf-лифтинг спб
rf лифтинг спб
снять квартиру в сочи
снять квартиру в адлере
снять квартиру в хосте
снять квартиру в дагомысе
снять квартиру в сочи
снять квартиру в адлере
снять квартиру в хосте
снять квартиру в дагомысе
снять квартиру в москве
купить квартиру в москве
заказать продвижение сайта
как заработать деньги в интернете
пилинг спб

 
 
 
 

Видно, что поле 'mod' по-прежнему выражает длину следующего поля — смещения, разве что с учетом 32-битного режима, где все слова расширяются до 32 бит.

Напомним, что с помощью префикса 0x67 можно и в 16-битном режиме использовать 32-битный режимы адресации, и наоборот. Однако, при этом мы сталкиваемся с интересным моментом — разрядность индексных регистров остается 32-битной и в 16-битном режиме!

В реальном режиме, где нет понятия границ сегментов, это действительно будет работать так, как выглядит, и мы сможем адресовать первые 4 мегабайта памяти (32 бита), что позволит преодолеть печально известное ограничение размера сегмента 8086 процессоров в 64К. Но такие приложения окажутся нежизнеспособными в защищенном или V86 режиме. Попытка вылезти за границу 64К сегмента вызовет исключение 0Dh, что приведет к автоматическому закрытию приложения, скажем, под управлением Windows. Аналогично поступают и отладчики (в том числе и многие эмуляторы, включая cuр386).

Сегодня актуальность этого приема, конечно, значительно снизилась, поскольку «голый DOS» практически уже не встречается, а режим его эмуляции Windows крайне неудобен для пользователей.


Тонкости дизассемблирования - any2fbimgloader20.jpeg

Изучив эту таблицу, можно прийти к заключению, что система адресации 32-битного режима крайне скудная, и ни на что серьезное ее не хватит. Однако, это не так. В 386+ появился новый байт SIB, который расшифровывается 'Scale-Index Base'.

Процессор будет ждать его вслед за R/M всякий раз, когда последний равен 100b. Эти поля отмечены в таблице как '[-]'. SIB хорошо документирован, и назначения его полей показаны на рисунке 6. Нет совершенно никакой необходимости зазубривать таблицу адресаций.



Тонкости дизассемблирования - any2fbimgloader21.jpeg

'Base' это базовый регистр, 'Index' — индексный, а два байта 'Scale' — это степень двойки для масштабирования. Поясним введенные термины. Ну, что такое индексный регистр, понятно всем. Например SI. Теперь же в качестве индексного можно использовать любой регистр. За исключением, правда, SР; впрочем, можно выбирать и его, но об этом позже.

Базовый регистр, это тот, который суммируется с индексным, например, [BР+SI]. Аналогично, базовым теперь может быть любой регистр. При этом есть возможность в качестве базового выбрать SР. Заметим, что если мы выберем этот регистр в качестве индексного, то вместо 'SР' получим — «никакой»: в этом случае адресацией будет управлять только базовый регистр.


Тонкости дизассемблирования - any2fbimgloader22.jpeg

Ну и, наконец, масштабирование — это уникальная возможность умножать индексный регистр на 1,2,4,8 (т.е. степень двойки, которая задается в поле Scale). Это очень удобно для доступа к различным структурам данных. При этом индексный регистр, являющийся одновременно и счетчиком цикла, будет указывать на следующий элемент структуры даже при единичном шаге цикла (что чаще всего и встречается). В таблице 4 показаны все возможные варианты значений байта 'SIB'.

Если при этом в качестве базового регистра будет выбран EBР, то полученный режим адресации будет зависеть от поля MOD предыдущего байта. Возможны следующие варианты:


Тонкости дизассемблирования - any2fbimgloader23.jpeg

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

За это время, надеюсь, у вас разовьются достаточные навыки для ассемблиро-вания/дизассемблирования в уме. Впрочем, есть множество эффективных приемов, позволяющих облегчить сей труд. Ниже я покажу некоторые из них. Попробуем без дизассемблера взломать crackme01.com. Для этого даже не обязательно помнить коды всех команд!


Тонкости дизассемблирования - any2fbimgloader24.jpeg

Итак, для начала поищем, кто выводит текст 'Crack me… Туре password:'. В самом файле начало текста расположено со смещением 77h. Следовательно, учитывая, что com файлы загружаются, начиная со смещения 100h, эффективное смещение, равняется 100h+77h=177h. Учитывая обратное расположение старших и младших байт, ищем в файле последовательность 77h 01h.


Тонкости дизассемблирования - any2fbimgloader25.jpeg

Вот она! Но что представляет собой код 0BAh? Попробуем определить это по трем младшим битам. Они принадлежат регистру DL(DX). А 0B4h 09h — это *AH,9. Теперь нетрудно догадаться, что оригинальный код выглядел как:


Тонкости дизассемблирования - any2fbimgloader26.jpeg

И это при том, что не требуется помнить код команды MOV! (Хотя это очень распространенная команда и запомнить ее код все же не помешает).

Вызов 21-го прерывания 0CDh 21h легко отыскать, если запомнить его символьное представление '=!' в правом окне дампа. Как нетрудно видеть, следующий вызов INT21h лежит чуть правее по адресу 0Ch. При этом DX указывает на 0156h. Это соответствует смещению 056h в файле. Наверняка эта функция читает пароль. Что ж, уже теплее. Остается выяснить, кто и как к нему обращается. Ждать придется недолго.


Тонкости дизассемблирования - any2fbimgloader27.jpeg

При разборе байта 0Eh не забудьте, что адресации [BР] не существует в природе. Вместо этого мы получим [offset16]. На размер регистра и приемник результата указывают два младших бита байта 08Ah. Они равны 10b. Следовательно, мы имеем дело с регистром CL, в который записывается содержимое ячейки [0156h].

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

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


Тонкости дизассемблирования - any2fbimgloader28.jpeg

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

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

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


Тонкости дизассемблирования - any2fbimgloader29.jpeg

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



<< < 2 3 4 5 >

   
Document
   
© читать онлайн,читать онлайн бесплатно
Document

косметология спб
чистка лица спб
массаж лица спб
смас лифтинг цена спб
клиника косметологии спб
смас лифтинг спб
smas лифтинг спб
чистка лица спб цены
лечебный массаж спины спб
массаж лица спб цены
косметология санкт петербург
фотоэпиляция спб
плазмолифтинг спб
чистка лица санкт петербург
плазмолифтинг цена спб
биоревитализация спб
студия массажа лица спб
контурная пластика спб
биоревитализация лица спб
клиника косметологии санкт петербург
рф лифтинг спб цены
rf лифтинг санкт петербург
рф лифтинг спб
биоревитализация спб цена
массаж лица санкт петербург
лечебный массаж спины спб цены
удаление пигментных пятен спб
криомассаж лица цена спб
удаление татуажа спб
смас лифтинг санкт петербург
криомассаж лица спб
rf-лифтинг спб
rf лифтинг спб
пилинг спб ремонт телевизоров москва
ремонт пылесосов москва
ремонт кофемашин москва
ремонт самсунг москва
ремонт микроволновки москва
ремонт samsung москва
ремонт парогенераторов москва
ремонт насосных станций москва
ремонт борк москва
ремонт delonghi москва
Ремонт dyson москва
ремонт пылесосов dyson москва
ремонт дайсон москва
ремонт бытовой техники
ремонт бытовой техники москва
ремонт телевизоров москва
ремонт пылесосов москва
ремонт кофемашин москва
ремонт самсунг москва
ремонт микроволновки москва
ремонт samsung москва
ремонт парогенераторов москва
ремонт насосных станций москва
ремонт борк москва
ремонт delonghi москва
Ремонт dyson москва
ремонт пылесосов dyson москва
ремонт дайсон москва
ремонт бытовой техники
ремонт бытовой техники москва
ремонт телевизоров москва
ремонт пылесосов москва
ремонт кофемашин москва
ремонт самсунг москва
ремонт микроволновки москва
ремонт samsung москва
ремонт парогенераторов москва
ремонт насосных станций москва
ремонт борк москва
ремонт delonghi москва
Ремонт dyson москва
ремонт пылесосов dyson москва
ремонт дайсон москва
ремонт бытовой техники
ремонт бытовой техники москва
ремонт телевизоров москва
ремонт пылесосов москва
ремонт кофемашин москва
ремонт самсунг москва
ремонт микроволновки москва
ремонт samsung москва
ремонт парогенераторов москва
ремонт насосных станций москва
ремонт борк москва
ремонт delonghi москва
Ремонт dyson москва
ремонт пылесосов dyson москва
ремонт дайсон москва
ремонт бытовой техники
ремонт бытовой техники москва
маникюр
педикюр
маникюр краснодар
педикюр краснодар
нейл сервис
ногтевой сервис
салон красоты
салон красоты краснодар
коррекция бровей краснодар
маникюр
педикюр
маникюр краснодар
педикюр краснодар
нейл сервис
ногтевой сервис
салон красоты
салон красоты краснодар
коррекция бровей краснодар
маникюр
педикюр
маникюр краснодар
педикюр краснодар
нейл сервис
ногтевой сервис
салон красоты
салон красоты краснодар
коррекция бровей краснодар
заказ пиццы выборг
суши выборг на заказ
суши wok
заказать пиццу в выборге
заказать пиццу в выборге с доставкой
суши выборг телефон
суши бар в выборге
пицца выборг телефон
рис и рыба суши выборг
рис и суши выборг
заказать суши в выборге
суши роллы выборг
суши выборг
прессотерапия
прессотерапия красноярск
миостимуляция
миостимуляция красноярск
pet cet омоложение
pet cet омоложение красноярск
роликовый массаж сферами
аппаратный массаж красноярск
аппаратный массаж
ваккумно роликовый массаж
lpg массаж
коррекция фигуры
коррекция фигуры красноярск
рф лифтинг
rf лифтинг