FE23 LOOCH DISASMДИЗАССЕМБЛЕР
|
Главная | Загрузка | Инструкция | Команды x86 | Карта сайта |
ТЕКУЩЕЕ СОСТОЯНИЕ РАЗРАБОТКИНовости сайта и программы
12 июня 2011Справочник по командам процессоров x86Сегодня выкладываю на сайт страницы справочника по командам процессоров x86. На сайте программы FE23 этот справочник будет в качестве приложения. Надеюсь, что полезного приложения. Материалы для такого справочника стали у меня появляться по мере разработки дизассемблера. Вот и возникла идея оформить все материалы в виде HTML текстов и таблиц, чтобы удобнее было пользоваться. Однако, это самое "оформление" оказалось намного более трудоемким, чем сначала ожидалось. Работа весьма затянулась. И пока не все задуманное приготовлено. Не все страницы, которые хотелось бы видеть в подобном справочнике. Но и этих страниц уже вполне достаточно, чтобы можно было их показывать. А другие страницы, надеюсь, тоже вскоре подоспеют. Пожалуй, такой справочник пригодится прежде всего тем людям, которые занимаются исследованием программ, а не тем, которые сами программируют на языке ассемблера. Хотя наверное, это одни и те же люди делают и то и другое. Основные большие таблицы справочника 22 января 2011История появления программы FE23Уже давно пообещал на одном форуме, что расскажу про историю появления моей программы FE23. И вот теперь собрался, наконец, это сделать. Прежде всего мне потребовалось заглянуть в свои записи, чтобы найти там дату начала моего "проекта 23". Но нашел там не только дату. В "журнале проекта", в самом его начале, я тогда записал, что побудило меня создать этот новый проект. Пожалуй, воспроизведу здесь ту запись, которая была сделана 13 октября 2007 года. Копирую сюда этот кусок, в нем почти не нужно ничего поправлять:
Итак, программа FE23 начиналась с четырех маленьких файлов на языке "C", взятых с сайта OllyDbg. http://www.ollydbg.de/ К этим файлам добавились еще несколько файлов, маленьких и больших, взятых из других моих проектов. Прежде всего, это довольно большая кухня вывода результатов в протокол. Затем нужно было писать новые куски кода, чтобы все это вместе соединить ... А дальше, после того, как это объединение из нескольких исходных файлов совместно заработало, нужно было думать, как реализовывать ту основную идею, ради которой все это и было затеяно. Это идея дизассемблирования по лучам.
Было два пути для продолжения. Либо существенно переделывать исходный код дизассемблера OllyDbg, либо делать полностью свой дизассемблер. Был выбран второй путь. Свой дизассемблер делался "с нуля". Основная таблица дизассемблера OllyDbg мне не понравилась. Так как там для каждой обрабатываемой инструкции выполняется поиск простым перебором по этой большой таблице. А это слишком медленно. Поэтому сразу стал делать все по-своему. Получилось только с третьей попытки, первые два варианта я забраковал. Но это уже отдельный разговор ... В программе FE23 сохранена возможность использования дизассемблера OllyDbg в качестве вспомогательного, например, для отладки основного дизассемблера. И можно получать ассемблерный текст (асм. текст) через любой из двух дизассемблеров. Или даже печатать для каждой инструкции две строчки асм. текста через разные дизассемблеры. Однако, в опубликованной версии программы FE23 в EXE файле отсутствуют коды OllyDbg, так как мне не хочется нарушать лицензию GPL. 15 мая 2010Режим: 16 бит / 32 бита
Разговор про эту настройку дизасма мы пока отложим.
Сделаем вид, что программа FE23 как будто бы может работать
только в режиме
На самом деле в программе все сделано также и для режима
А возможность переключения режима - 20 апреля 2010Дизассемблер программы FE23Работа над проектом FE23 была начата в октябре 2007 года. По состоянию на апрель 2010 года в программе FE23 еще не сделано многое из того, что было задумано. Однако, программа уже давно дошла до такого уровня, когда ее пора показывать - "выпускать в свет". Несмотря на многие оставшиеся недоделки. Основная "недоделка" в том, что дизассемблер "знает" еще не все команды процессора. В таблицы дизасма внесены еще не все команды даже из набора i386. Новые команды добавлялись в таблицы по мере того, как эти команды требовались для исследования конкретных файлов. В таблицах пока нет привилегированных команд, поскольку соответствующие программы пока ни разу не исследовались. И нет команд сопроцессора (работа с плавающей запятой). А тажке не попали пока в таблицы редко используемые команды. Если при первом проходе дизасма встретится такая команда, которая еще не включена в таблицы, то дизассемблер фиксирует ошибку и считает, что луч в этом месте закончился. В протоколе печатается сообщение об ошибке. Критерием пригодности дизассемблера для исследования данного конкретного файла может служить такая проверка - удается ли или нет выполнить полностью (пройти до конца) первый проход дизасма. Все страницы инструкцииПриложение
|
|||
Главная | Загрузка | Инструкция | Команды x86 | Карта сайта |