Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация дисассемблера 
V
    Опции темы
Ak47black
  Дата 15.9.2009, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Здравствуйте.
У меня следующая ситуация. Мне нужно написать дисассамблер на tasm (16 битный) и так как некогда его ранее не писал, то столкнулся с некоторыми трудностями в написании, точнее не хватает знаний поэтому хотелбы спросить.

Дошел до момента когда я перебираю байты кода и незнаю как тут правильнее поступить.
Ну к примеру возьмём что код начинается с байта $33, тгда беру 6 бит с права и получаю 33h что по таблице соответствует команде xor.
Теперь что мне непонятно тут:
1. Как установить что вся команда занимает 1 байт? (нужно-ли это определять по заранее заданой какойнибудь структуре.)
2. Где я могу найти хорошую таблицу oпкодов?
3. Как лучше всего сделать реализацию, существует-ли какаяето известная реализация/алгоритм. (Чтобы не изобретать так называемых "велосипедов", так как времени у меня мало, но хотелбы взять не готовый код, а сам написать)

Добавлено @ 18:35
Тут с определение сколько именно команда занимает байт, то мне както туго понять  smile 

Это сообщение отредактировал(а) Ak47black - 15.9.2009, 18:36
PM MAIL   Вверх
Mikl_
Дата 16.9.2009, 03:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 8
Всего: 14



Ak47black, 
Для начала я бы проверял не префикс ли это, их не так много 
Operand-size override prefix (66h) Address-size override prefix (67h)
Префиксы повторения "rep", "repe"/"repz" F2 и "repne"/"repnz" F3
0F FF префиксы многобайтовых команд
Префикс переопределения сегмента cs:(2Eh),ds:(3Eh),fs(64h):,gs:(65h),es:(26h),ss:(36h)
префиксы команд FPU Кодировка всех команд блока FPU начинается с 11011xxx (с 0D8h по 0DFh) (ESC1-ESC7 «ESC-коды»)
если не префикс то пытаешься расшифровать команду
очень хорошо о дешифровке команд написано здесь
Лично я бы распотрошил какой-нибудь дизассемблер (несколько дизассемблеров) и не изобретал велосипед
Во вложении таблица с опкодами


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  coder32.rar 30,11 Kb
PM MAIL   Вверх
Mikl_
Дата 16.9.2009, 05:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 537
Регистрация: 9.11.2007

Репутация: 8
Всего: 14



Ak47black, 
Посмотри внимательно эту ветку -- лучше и не скажешь smile

Добавлено @ 06:02
Ak47black, 
а вот рабочая ссылка на дизассемблер с открытым исходным кодом. По уверениям автора, специально разработан для тех случаев, когда дело приходится иметь с какой-нибудь гадостью, которая специально калечит опкода. Обычные дизасмы на таком просто падают. Свободен для некоммерческого использования. CADT 1.1 by Ms. Rem  А на WASM.RU есть целый раздел ИНСТРУМЕНТЫ > Дизассемблеры Есть из чего выбрать  smile Да и по другим сайтам можно походить Во вложении дизассемблер от ollydbg -- раскурочь его  smile и будет тебе счастье!


Это сообщение отредактировал(а) Mikl_ - 16.9.2009, 06:06

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  disasm.zip 57,71 Kb
PM MAIL   Вверх
Ak47black
Дата 16.9.2009, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: нет
Всего: 0



Благодарю за большое желание помочь. +
Ну чтож буду пробовать углубятся.  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0425 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.