![]() |
|
|
![]()
|
|
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
Может кто когда-нибудь пытался написать небольшой дизассемблер ?
Есть описание форматов инструкций, опкодов и т.д. Хотелось бы узнать сам алгоритм (вопрос также относится к быстродействию и определению защиты от дизассемблировани). Может также у кого-нибудь есть готовые структуры данных для облегчения ? З.Ы. Если есть, то можно ссылочку на разбор алгоритма и т.п. Спасибо |
|||
|
||||
| gepard |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2477 Регистрация: 29.2.2004 Репутация: нет Всего: 40 |
Я этим не занимался, но считаю что надо начинать с разборки машинного языка.
-------------------- Когда начинаются цифровые войны, а траффик разносит моё сознание по бесконечным просторам инета, подобно ветру, разносящему листву по полям, тогда и только тогда я чувствую себя свободным! © Я, Берсерк, что значит - Неистовый. |
|||
|
||||
| YAA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 18.7.2004 Где: Russia< Kuzbas s->Kemerovo. Репутация: нет Всего: нет |
Привет, ZSS!
На тему дизассемблеров: в инете много всяких исходников. Можно попытаться дизассемблировать Sourcer p.s. Можеш кинуть на мыло ([email protected]) описание опкодов? |
|||
|
||||
| zss |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 708 Регистрация: 17.6.2004 Репутация: нет Всего: 2 |
YAA, в каком смысле. Тебе нужны опкоды ?
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Собсно говоря самое сложное при дизассемблировании - определение границ кода и блоков данных. Т.е. - имеем поток байтов. С какого ни начни - по-любому его можно интерпретировать как код (я, кстати, писАл программы, в которых один и тот же код исполнялся 2 раза с разных точек - его дизассемблировать корректно вообще невозможно, скажем тот же Сорсер выдавал дизассемблированный текст в виде пачки DB). Но основной принцип решения этой задачи - поиск точек однозначного выполнения и поиск несуществующих инструкций, это дает возможность однозначно определить границы инструкций. Блоки данных ищутся по адресам, содержащимся в операндах инструкций - впрочем и тут бывает динамическое изменение кода, что мешает автоматическому дизассемблированию. В файлах EXE-формата нужно также ориентироваться на положения релокейшнов - это либо адреса, либо мусор, либо изменяемый код.
А переварить отдельную инструкцию в ее АСМовский вид - занятие для первоклассника... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| YAA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 18.7.2004 Где: Russia< Kuzbas s->Kemerovo. Репутация: нет Всего: нет |
ZSS, мне нужны опкоды и краткие описания комманд (у меня только 80x86 ;) ).
Это сообщение отредактировал(а) YAA - 26.8.2004, 14:38 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
http://developer.intel.com/design/pentium4...s/index_new.htm
http://www.swansontec.com/sintel.htm И вообще поиск рулит... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| YAA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 18.7.2004 Где: Russia< Kuzbas s->Kemerovo. Репутация: нет Всего: нет |
Спасибо за ссылки, Akina!
Правда в сумме около 10мб..... |
|||
|
||||
| Jin X |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 5.3.2004 Репутация: 1 Всего: 1 |
Вообще, можешь ещё попробовать доки по NASM'у, там всё есть (в т.ч. и недокументированные). Весит гораздо меньше
Ссылка есть в Полезных ссылках ;) Выглядит это так:
Это сообщение отредактировал(а) Jin X - 26.8.2004, 22:38 --------------------
Бойся своей мечты, ибо она осуществима! |
|||
|
||||
| YAA |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 18.7.2004 Где: Russia< Kuzbas s->Kemerovo. Репутация: нет Всего: нет |
Точно! NBASM - New Basic Assembler - попробуй и его (open-source), хотя это ассемблирование, но опкоды-то есть. ;)
|
|||
|
||||
| Jin X |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 157 Регистрация: 5.3.2004 Репутация: 1 Всего: 1 |
Нет, не NBASM, а NASM - Netwide Assembler
Это разные вещи. NBASM - это кто-то решил написать свой ассемблер, а потом он каким-то чудесным образом стал попадать в разные списки ассемблеров (вместе с FASM, NASM, GoAsm, SpAsm и т.д) Это сообщение отредактировал(а) Jin X - 27.8.2004, 19:02 --------------------
Бойся своей мечты, ибо она осуществима! |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |