Декодирование маш.кода в ASM
Декодирование маш.кода в ASM
Подскажите, есть ли шансы попользоваться в будущем декодированием машин. кода в Ассемблер (как это делается в NecromancerDosNavigator) при просмотре ?
Если это ужо обсуждалось - пните меня в соотв.ветку, плиз.
Иначе - вроде бы не очень сложно и конечно полезно. Или Plugin уже есть? Или Ассемблер сверхредко кому нужен ?
Если это ужо обсуждалось - пните меня в соотв.ветку, плиз.
Иначе - вроде бы не очень сложно и конечно полезно. Или Plugin уже есть? Или Ассемблер сверхредко кому нужен ?
Простите, что выгляжу надоедающим, но...
Раз уж к 1.8 версии всё идёт, давайте сделаем её ещё на шажок универсальнее и мощнее?!
Плагинописатели и разработчики!
Сделайте код при просмотре, кой на повторное F4 переходит в просмотр ASM-кода. И сам просмотрщик такого вида :
A) если байт нечётный, то команда занимает три байта
Б) иначе - два байта
B) если команда D6..D9, то занимает 4 байта
Вот!
Далее, я, пролистав ваш алгоритм, вмонтирую свой, настоящий!
1.Это ж вам нетрудно
2.У меня всё работает сверхбыстро. Мегабайт декодируется за секунду на AMD 1400.
Спасибо за внимание.
Раз уж к 1.8 версии всё идёт, давайте сделаем её ещё на шажок универсальнее и мощнее?!
Плагинописатели и разработчики!
Сделайте код при просмотре, кой на повторное F4 переходит в просмотр ASM-кода. И сам просмотрщик такого вида :
A) если байт нечётный, то команда занимает три байта
Б) иначе - два байта
B) если команда D6..D9, то занимает 4 байта
Вот!
Далее, я, пролистав ваш алгоритм, вмонтирую свой, настоящий!
1.Это ж вам нетрудно
2.У меня всё работает сверхбыстро. Мегабайт декодируется за секунду на AMD 1400.
Спасибо за внимание.
Это не правельная структура такой идеи, просто ужас... Если делать нечто подобное, то надо делать правильно. А это как минимум два полноценных дизассемблера, для 16 и 32 бит, а в идеале ещё и третий, для х64-86. И это только PC платформы. А насчёт байт чётный\нечётный - ничего оно так работать не будет, разве что очень маленького диапазона комманд. Это проэкт для команды из 2-3 человек минимум на год с отладкой. Проще и правильный на альтернативный просомтерщик (или глобально на встроенный) HIEW повесить. Хотя, если Вы реалтзуете нечто подобное быстро и просто, милости просим. Будет ОЧЕНЬ интересно на это посмотреть.Слава wrote:Простите, что выгляжу надоедающим, но...
Раз уж к 1.8 версии всё идёт, давайте сделаем её ещё на шажок универсальнее и мощнее?!
Плагинописатели и разработчики!
Сделайте код при просмотре, кой на повторное F4 переходит в просмотр ASM-кода. И сам просмотрщик такого вида :
A) если байт нечётный, то команда занимает три байта
Б) иначе - два байта
B) если команда D6..D9, то занимает 4 байта
Вот!
Далее, я, пролистав ваш алгоритм, вмонтирую свой, настоящий!
1.Это ж вам нетрудно
2.У меня всё работает сверхбыстро. Мегабайт декодируется за секунду на AMD 1400.
Спасибо за внимание.
Типа бинарного парсера/лексера? По идее не должно быть сложно, т.к. контекстные зависимости в ассемблерном коде простые. За счёт этого даже автодетект будет работать при вставках данных между кодом. Можно даже ограничения на систему команд задавать. Надо только таблица соответствия кода инструкциям.
Garthower'у скажу, что либо я не понял, либо он... Это не два и не три диз-ASMа, а один сложный. Причём тут чёт/нечёт ? Это ж я для просмотра (как это в исходниках будет) попросил! Кто-то путается...
И всё уже реализовано и работаeт! Я просто запускаю свой EXE-шник с параметром(путь до др. файла) и он создает файл ИмяEXE.asm уже весь дизассемблированный. Причём банально шпарит в stdout, если там парам. один с 1 на 0 заменить.
У techie'а спрошу : причём тут бин. парсер? Как это сделано? Да, конечно БИН-парсер. Все таблицы в каком то смысле есть. Т.е. их нету, для придания бешеной скорости.
Skirda, я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.
x64 находится в разработке, но это просто, ибо там мало что сделали полезного... Увы, и жаль...
И всё уже реализовано и работаeт! Я просто запускаю свой EXE-шник с параметром(путь до др. файла) и он создает файл ИмяEXE.asm уже весь дизассемблированный. Причём банально шпарит в stdout, если там парам. один с 1 на 0 заменить.
У techie'а спрошу : причём тут бин. парсер? Как это сделано? Да, конечно БИН-парсер. Все таблицы в каком то смысле есть. Т.е. их нету, для придания бешеной скорости.
Skirda, я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.
x64 находится в разработке, но это просто, ибо там мало что сделали полезного... Увы, и жаль...
Верно. Всего ничего - набить таблицы, а как я уже раньше писал, для разлиного режима адресации они разные, написать движок, который это всё будет хавать, отладить. Написать плагин, прикрутить, опять отладить. Всего ничего Я вообще-то и не говорил, что это так уж сложно, но не надо и упрощять задачу. В своё время по работе мне нужно было написать 32-битный дизассемблер в очень быстром темпе с ноля, работая по по 10-12 часов 6 дней в неделю у меня с отладкой это заняло около месяца.techie wrote:Типа бинарного парсера/лексера? По идее не должно быть сложно, т.к. контекстные зависимости в ассемблерном коде простые. За счёт этого даже автодетект будет работать при вставках данных между кодом. Можно даже ограничения на систему команд задавать. Надо только таблица соответствия кода инструкциям.
-
- Posts: 1515
- Joined: Wed 16 Mar, 2005 06:26
- Location: Новосибирск
- Been thanked: 1 time
- Contact:
Чувствую, этот момент ключевой.я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.
Если можно сделать плагином, пусть уж будет плагин. Особенно, если такая несверхнеобходимая вещь.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.
xmpp:kildor@jabber.ru
...а так же в ядре нужны: Тетрис, Калькулятор, Веббраузер.Слава wrote:Skirda, я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.
Опять же, для нормальной разработки IDE включить в ядро плагин TrueTemplate (и еже с ним).
Что там у нас осталось для ядра... а, ну да, PictureView, 3 плагина-поисковика (и еще 500 наименований)...
Слава, тебе рассказать историю с колорером?