Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм дизассемблирования 
:(
    Опции темы
zss
Дата 23.8.2004, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Может кто когда-нибудь пытался написать небольшой дизассемблер ?

Есть описание форматов инструкций, опкодов и т.д.

Хотелось бы узнать сам алгоритм (вопрос также относится к быстродействию и определению защиты от дизассемблировани).

Может также у кого-нибудь есть готовые структуры данных для облегчения ?

З.Ы. Если есть, то можно ссылочку на разбор алгоритма и т.п.

Спасибо
PM MAIL ICQ   Вверх
gepard
Дата 23.8.2004, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Я этим не занимался, но считаю что надо начинать с разборки машинного языка.


--------------------
Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным!
© Я, Берсерк, что значит - Неистовый. 
PM MAIL WWW ICQ   Вверх
YAA
Дата 25.8.2004, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 18.7.2004
Где: Russia< Kuzbas s->Kemerovo.

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



Привет, ZSS!
На тему дизассемблеров: в инете много всяких исходников.
Можно попытаться дизассемблировать Sourcer hehe.gif

p.s.
Можеш кинуть на мыло ([email protected]) описание опкодов?
PM MAIL ICQ   Вверх
zss
Дата 26.8.2004, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



YAA, в каком смысле. Тебе нужны опкоды ?
PM MAIL ICQ   Вверх
Akina
Дата 26.8.2004, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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



Собсно говоря самое сложное при дизассемблировании - определение границ кода и блоков данных. Т.е. - имеем поток байтов. С какого ни начни - по-любому его можно интерпретировать как код (я, кстати, писАл программы, в которых один и тот же код исполнялся 2 раза с разных точек - его дизассемблировать корректно вообще невозможно, скажем тот же Сорсер выдавал дизассемблированный текст в виде пачки DB). Но основной принцип решения этой задачи - поиск точек однозначного выполнения и поиск несуществующих инструкций, это дает возможность однозначно определить границы инструкций. Блоки данных ищутся по адресам, содержащимся в операндах инструкций - впрочем и тут бывает динамическое изменение кода, что мешает автоматическому дизассемблированию. В файлах EXE-формата нужно также ориентироваться на положения релокейшнов - это либо адреса, либо мусор, либо изменяемый код.

А переварить отдельную инструкцию в ее АСМовский вид - занятие для первоклассника...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
YAA
Дата 26.8.2004, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 18.7.2004
Где: Russia< Kuzbas s->Kemerovo.

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



ZSS, мне нужны опкоды и краткие описания комманд (у меня только 80x86 ;) ).

Это сообщение отредактировал(а) YAA - 26.8.2004, 14:38
PM MAIL ICQ   Вверх
Akina
Дата 26.8.2004, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


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

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





--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
YAA
Дата 26.8.2004, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 18.7.2004
Где: Russia< Kuzbas s->Kemerovo.

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



Спасибо за ссылки, Akina!
Правда в сумме около 10мб.....

PM MAIL ICQ   Вверх
Jin X
Дата 26.8.2004, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вообще, можешь ещё попробовать доки по NASM'у, там всё есть (в т.ч. и недокументированные). Весит гораздо меньше smile.gif
Ссылка есть в Полезных ссылках ;)

Выглядит это так:
Код
      TEST r/m8,reg8              ; 84 /r                [8086]
      TEST r/m16,reg16            ; o16 85 /r            [8086]
      TEST r/m32,reg32            ; o32 85 /r            [386]
Про расположение и кодирование битов (типа o16) тоже что-то написано. По идее, этого долно быть достаточно %)

Это сообщение отредактировал(а) Jin X - 26.8.2004, 22:38
--------------------
Бойся своей мечты, ибо она осуществима!
PM MAIL   Вверх
YAA
Дата 27.8.2004, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 89
Регистрация: 18.7.2004
Где: Russia< Kuzbas s->Kemerovo.

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



Точно! NBASM - New Basic Assembler - попробуй и его (open-source), хотя это ассемблирование, но опкоды-то есть. ;)
PM MAIL ICQ   Вверх
Jin X
Дата 27.8.2004, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нет, не NBASM, а NASM - Netwide Assembler smile.gif
Это разные вещи. NBASM - это кто-то решил написать свой ассемблер, а потом он каким-то чудесным образом стал попадать в разные списки ассемблеров (вместе с FASM, NASM, GoAsm, SpAsm и т.д) smile.gif. Я с ним особо не разбирался, но вроде как в нём нет ничего особенного. А вот на счёт OpenSource - это для меня новость smile.gif

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

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

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


 




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


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

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