Декодирование маш.кода в ASM

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
Слава
«математик»
Posts: 232
Joined: Sat 22 Apr, 2006 17:12

Декодирование маш.кода в ASM

Post by Слава »

Подскажите, есть ли шансы попользоваться в будущем декодированием машин. кода в Ассемблер (как это делается в NecromancerDosNavigator) при просмотре ?
Если это ужо обсуждалось - пните меня в соотв.ветку, плиз.
Иначе - вроде бы не очень сложно и конечно полезно. Или Plugin уже есть? Или Ассемблер сверхредко кому нужен ?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Post by DrKnS »

Hiew?
Слава
«математик»
Posts: 232
Joined: Sat 22 Apr, 2006 17:12

Post by Слава »

Знаю я про Hiew. Но почему не сделать при просмотре на F4 режимы Текст-Код-ASM ? Размер far.exe увеличится на 10 Кб, да и только! Это ж мигом и просто. А так вечно ищи эти разные программы, да ставь Plugin'ы... :cry:
User avatar
t-rex
Страшный и ужасный
Posts: 4910
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 8 times
Contact:

Post by t-rex »

Слава wrote:А так вечно ищи эти разные программы, да ставь Plugin'ы... :cry:
Это ж мигом и просто.
Helen
Posts: 2
Joined: Sun 06 Aug, 2006 13:36

Post by Helen »

А по-моему, было бы забавно - задавать шаблон поиска в ассемблерных командах (int 13h :D ). Правда, не совсем понятно, кому это нужно в 2007-ом году... :oops:
User avatar
zg
zero-gravity
Posts: 6037
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Post by zg »

Helen wrote:А по-моему, было бы забавно - задавать шаблон поиска в ассемблерных командах (int 13h :D ). Правда, не совсем понятно, кому это нужно в 2007-ом году... :oops:
в 2007 году модно искать ldmfd sp!, {r4, r5, r6, lr}?
Слава
«математик»
Posts: 232
Joined: Sat 22 Apr, 2006 17:12

Post by Слава »

Простите, что выгляжу надоедающим, но...
Раз уж к 1.8 версии всё идёт, давайте сделаем её ещё на шажок универсальнее и мощнее?!
Плагинописатели и разработчики!
:idea: Сделайте код при просмотре, кой на повторное F4 переходит в просмотр ASM-кода. И сам просмотрщик такого вида :
A) если байт нечётный, то команда занимает три байта
Б) иначе - два байта
B) если команда D6..D9, то занимает 4 байта
Вот! :)
Далее, я, пролистав ваш алгоритм, вмонтирую свой, настоящий!
1.Это ж вам нетрудно
2.У меня всё работает сверхбыстро. Мегабайт декодируется за секунду на AMD 1400.
Спасибо за внимание.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Копать надо не в сторону внедрения этого кода в ФАР, а... разработка нормального АПИ для плагинов для фильтрации вывода во вьювер.
На Мантисе есть запись про это.
Тогда сможешь написать свой "шажок" в виде плагина.
User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower »

Слава wrote:Простите, что выгляжу надоедающим, но...
Раз уж к 1.8 версии всё идёт, давайте сделаем её ещё на шажок универсальнее и мощнее?!
Плагинописатели и разработчики!
:idea: Сделайте код при просмотре, кой на повторное F4 переходит в просмотр ASM-кода. И сам просмотрщик такого вида :
A) если байт нечётный, то команда занимает три байта
Б) иначе - два байта
B) если команда D6..D9, то занимает 4 байта
Вот! :)
Далее, я, пролистав ваш алгоритм, вмонтирую свой, настоящий!
1.Это ж вам нетрудно
2.У меня всё работает сверхбыстро. Мегабайт декодируется за секунду на AMD 1400.
Спасибо за внимание.
Это не правельная структура такой идеи, просто ужас... Если делать нечто подобное, то надо делать правильно. А это как минимум два полноценных дизассемблера, для 16 и 32 бит, а в идеале ещё и третий, для х64-86. И это только PC платформы. А насчёт байт чётный\нечётный - ничего оно так работать не будет, разве что очень маленького диапазона комманд. Это проэкт для команды из 2-3 человек минимум на год с отладкой. Проще и правильный на альтернативный просомтерщик (или глобально на встроенный) HIEW повесить. Хотя, если Вы реалтзуете нечто подобное быстро и просто, милости просим. Будет ОЧЕНЬ интересно на это посмотреть.
User avatar
techie
Posts: 795
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 35 times
Been thanked: 6 times

Post by techie »

Типа бинарного парсера/лексера? По идее не должно быть сложно, т.к. контекстные зависимости в ассемблерном коде простые. За счёт этого даже автодетект будет работать при вставках данных между кодом. Можно даже ограничения на систему команд задавать. Надо только таблица соответствия кода инструкциям.
Слава
«математик»
Posts: 232
Joined: Sat 22 Apr, 2006 17:12

Post by Слава »

Garthower'у скажу, что либо я не понял, либо он... Это не два и не три диз-ASMа, а один сложный. Причём тут чёт/нечёт ? Это ж я для просмотра (как это в исходниках будет) попросил! Кто-то путается...
И всё уже реализовано и работаeт! Я просто запускаю свой EXE-шник с параметром(путь до др. файла) и он создает файл ИмяEXE.asm уже весь дизассемблированный. Причём банально шпарит в stdout, если там парам. один с 1 на 0 заменить.
У techie'а спрошу : причём тут бин. парсер? Как это сделано? Да, конечно БИН-парсер. Все таблицы в каком то смысле есть. Т.е. их нету, для придания бешеной скорости.
Skirda, я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.

x64 находится в разработке, но это просто, ибо там мало что сделали полезного... Увы, и жаль...
User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower »

techie wrote:Типа бинарного парсера/лексера? По идее не должно быть сложно, т.к. контекстные зависимости в ассемблерном коде простые. За счёт этого даже автодетект будет работать при вставках данных между кодом. Можно даже ограничения на систему команд задавать. Надо только таблица соответствия кода инструкциям.
Верно. Всего ничего - набить таблицы, а как я уже раньше писал, для разлиного режима адресации они разные, написать движок, который это всё будет хавать, отладить. Написать плагин, прикрутить, опять отладить. Всего ничего ;) Я вообще-то и не говорил, что это так уж сложно, но не надо и упрощять задачу. В своё время по работе мне нужно было написать 32-битный дизассемблер в очень быстром темпе с ноля, работая по по 10-12 часов 6 дней в неделю у меня с отладкой это заняло около месяца.
User avatar
Garthower
Posts: 159
Joined: Mon 31 Jul, 2006 10:24
Location: Украина, Киев
Contact:

Post by Garthower »

Слава
Да, вполне возможно, что мы друг друга просто не поняли. Сори, если с собой запутал ещё кого-то. Спать надо по чаще и по дольше...
Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.
Чувствую, этот момент ключевой.
Если можно сделать плагином, пусть уж будет плагин. Особенно, если такая несверхнеобходимая вещь.
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Post by Skirda »

Слава wrote:Skirda, я принципиально против плагинов и хочу чтобы как можно большe возможностей было в ядре. Поэтому и прошу набросать схематично каркас в ядре, а я уж приклею к нему имеющийся код.
...а так же в ядре нужны: Тетрис, Калькулятор, Веббраузер.
Опять же, для нормальной разработки IDE включить в ядро плагин TrueTemplate (и еже с ним).
Что там у нас осталось для ядра... а, ну да, PictureView, 3 плагина-поисковика (и еще 500 наименований)...

Слава, тебе рассказать историю с колорером?
Post Reply

Return to “Предложения и идеи”