OSDev

для всех
Текущее время: 30 апр 2024, 07:29

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Дизассемблирование кода
СообщениеДобавлено: 26 дек 2010, 03:04 

Зарегистрирован: 30 янв 2010, 19:44
Сообщения: 63
Нашел статью и перевел ее. Она выглядит как вводная в архитектуру команд процессора x86. Если кому интересно то прочесть ее можно тут http://qeos.ru/?page=disassemblirovanie_koda&nav=1

Так же меня интересует: кто-нибудь уже делал дизассемблировал? Например для дебага из консоли при написании ОС.. Поделитесь толковыми ссылками и опытом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дизассемблирование кода
СообщениеДобавлено: 26 дек 2010, 12:26 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
В "тупом" дизассемблировании (просто перевод машинного кода в мнемоники команд, имена регистров, адреса и константы в шестнадцатеричном или каком другом удобочитаемом виде) абсолютно ничего сложного нет; даже для такой идиотской системы кодирования команд, как на ИА-32, достаточно лишь внимательно изучить это самое кодирование. Вот интеллектуальные дизассемблеры типа ИДА Про -- это действительно сложно, но для отладки они и не нужны.

Пы.Сы. А в статье отсутствуют сведения о 64-разрядном режиме; по 16-разрядному, кажется, тоже нет. В своё время формат команды ИА-32 я расписал на вике, опираясь на интеловский мануал.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дизассемблирование кода
СообщениеДобавлено: 06 янв 2011, 06:05 

Зарегистрирован: 30 янв 2010, 19:44
Сообщения: 63
SII писал(а):
В "тупом" дизассемблировании (просто перевод машинного кода в мнемоники команд, имена регистров, адреса и константы в шестнадцатеричном или каком другом удобочитаемом виде) абсолютно ничего сложного нет; даже для такой идиотской системы кодирования команд, как на ИА-32, достаточно лишь внимательно изучить это самое кодирование. Вот интеллектуальные дизассемблеры типа ИДА Про -- это действительно сложно, но для отладки они и не нужны.

Пы.Сы. А в статье отсутствуют сведения о 64-разрядном режиме; по 16-разрядному, кажется, тоже нет. В своё время формат команды ИА-32 я расписал на вике, опираясь на интеловский мануал.


народ говорит IA32 не самое уродское..

статья нужна была просто для общего понимания. сейчас пишу чтото типо отладчика, возникает много других вопросов. например, я эмулирую полностью процессор х86, но если с командами нашел достаточно простой алгоритм, то для установки соответствующих флагов приходится делать обычный перебор вариантов установки (выглядит не эстетично:). или, например, чтото не пойму пока как процессор знает какое значение у тебя в регистре, signed или unsigned..

про х64 еще не разбирался но судя по документации интела не очень будет отличаться. ситуация, видимо, аналогична режиму процессора 16/32. т.е. если проц в режиме 32 бит то команда "mov eax, 0", а если в 16 то "mov ax, 0". код команды один и тотже..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Дизассемблирование кода
СообщениеДобавлено: 06 янв 2011, 06:32 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Плохо двоичную арифметику знаете, так что сначала с ней досконально разберитесь, а потом уж глубоко копайте. Для сложения-вычитания нет абсолютно никакой разницы, знаковые числа или беззнаковые. Разница есть для умножения и деления, но там и команды различные.

С 64-разр сложнее, чем при переходе с 16- на 32-разрядную архитектуру. Ну а по уродству... Я долгое время был убеждён, что большего идиотизма, чем 8086 и его развития в виде ИА-32, в природе не существует, но недавно столкнулся с 16-разрядными ПИКами и понял, что глубоко заблуждался.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB