Forth http://fforum.winglion.ru/ |
|
Дизассемблирование VFX http://fforum.winglion.ru/viewtopic.php?f=40&t=2904 |
Страница 1 из 2 |
Автор: | Kopa [ Пт дек 14, 2012 20:24 ] |
Заголовок сообщения: | Дизассемблирование VFX |
Попробовал простенько средствами VFХ вывести дизассемблированный код системы Код: \ Предварительно \ 1. Используя слово VOCS выводим список доступных в системе словариков \ 2. Исполняя слово названия словарика делаем его контекстным Например SYSTEM \ (изменение контекста поиска можно узнать выполнив слово ORDER) \ 3. Исполняем слово WORDS для вывода в косоль слов текущего словарика. \ 4. Копируем в буфер напечатанные слова для вставки в данный файл после \ слова view? для получения листинга дизасемблированных слов. \ 5. Загружаем данный файл в VFXForth (меню FILE->Compile) \ (в консоль выведется ListLines дизассемблированных строк. \ т.к. буфер консоли не безграничен, то ставим ограничение ListLines \ на количество строк вывода листинга в консоль, например 20000) \ Выведенные строки выделяем и копируем в буфер обмена и далее из него \ в результирующий текстовый файл. \ 6. Смотрим какое слово дизассемблировалось последним и удалем слова прошедшие \ через дизассемблер. \ 7. Повторно запускаем файл с осташимися не дизассемблированными словами. \ P.S. Примерно так. (для примера в данном файле после view? оставлены \ строки с небольшим количеством слов. 20000 CONSTANT ListLines : vvv ( -- ) BEGIN BL WORD DUP C@ WHILE FIND 0= IF COUNT TYPE ." NOT-FOUND" CR ELSE (DIS) THEN REPEAT DROP ; : view? CR 0 BEGIN REFILL WHILE vvv \ SOURCE TYPE CR DUP 1+ ListLines = IF EXIT THEN REPEAT ; view? FORTH DUP DROP SWAP OVER + - * / RSHIFT UCMOVE> UCMOVE CMOVE> CMOVE FILL SCAN SKIP S= COMPARE MOVE FM/MOD SM/REM M/ */ */MOD DU> DU< RELLVS MAKELVS LV LV@ LV! !JUMP !CALL GETCALLDEST SKIPCALL PATCHCALL DOLAYABSCALL (LOOP) (+LOOP) (BYE) EXITCODE TO-CALLBACK Вложение: (приведённый выше скрипт в кодировке 1251)И некоторые собранные результаты после использования данного выше скрипта Вложение: P.S. Наверное, при желании, можно "как то" получить код для обратной сборки VFX:) |
Автор: | diver [ Пт дек 14, 2012 21:27 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
хм.... через IDA быстрее будет ))) |
Автор: | KPG [ Пн авг 06, 2018 11:43 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
diver писал(а): хм.... через IDA быстрее будет ))) С Идой ещё как то нужно подружиться. пока получен такой асм листинг для VFX некоторое время назад (через самопальную систему дизассемблирования - без оптимизации технологии и "ручного" труда на SPF4) для Lite версий VFX (MSP430 и ARM) полученные файлы примерно такого же наполнения. Что с этим дальше делать пока неясно (т.к. результат ещё не окончательный и обратная сборка VFX не сделана, и ещё остались некоторые "тёмные" места в асм листинге). P.S. Если будет кому то интересно, то распишу как такой результат был получен без использования IDA (хотя это и скучно Без оптимизации алгоритма время выполнения "тупого скрипта" у меня составляет ~5мин (или 10мин на Atom процессоре с 30% загрузкой CPU) перезалил другой - более правильный файл. |
Автор: | Hishnik [ Пн авг 06, 2018 23:31 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Процесс прикосновения к великому?... |
Автор: | KPG [ Пн авг 06, 2018 23:53 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Hishnik писал(а): Процесс прикосновения к великому?... Кто как это видит Интересно было сделать такое и да добавить недостающие "опции" в "урезанный" вариант Форт системы, но это уже больше интересно для lite версий под контроллеры. P.S. Кто и какой смысл найдёт сего действия, это уже его понимание. А так это ещё одна "демонстрация" применения Форт и к таким задачам, если есть потребность и возможно в чём то полезный асмовский листинг рабочей Форт системы. IDA вообще по дефолту что то невнятное выдала. Можно и iForth также "ковырнуть". Судя по количеству скачиваний начальных файлов интерес к теме или к полученным результатам какой то существует. Рабочим инструментом служит SPF4, если это не ясно было обозначено в предыдущем сообщении. Для сравнения добавил 2-а лог файла для Lite VFX - ARM и MSP430 |
Автор: | Victor__v [ Вт авг 07, 2018 09:26 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
KPG писал(а): IDA вообще по дефолту что то невнятное выдала. Можно и iForth также "ковырнуть". Так она же не знает где код и где данные. Это надо ручками поднастраивать в лиситнге |
Автор: | diver [ Вт авг 07, 2018 15:25 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Victor__v писал(а): KPG писал(а): IDA вообще по дефолту что то невнятное выдала. Можно и iForth также "ковырнуть". Так она же не знает где код и где данные. Это надо ручками поднастраивать в лиситнге В случае, например с SwiftX - там подпрограммный шитый код, с полями имени и всем прочим, там приходится реально руками указывать код/данные ) вероятно и в случае vfx та же штука (в их форте для контроллеров lpc2xxx так же было) |
Автор: | KPG [ Вт авг 07, 2018 22:14 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Victor__v писал(а): Так она же не знает где код и где данные. Это надо ручками поднастраивать в лиситнге Поняв сначала как обрабатывается тот или иной кусок данных в программе и где его границы, а потом уже ввести эту исполнимую-метаинформацию в скрипт дизассемблера, который будет срабатывать при распознании запускающего условия Например по адресу взятому из call вызова программы работающей с соответствующими данными. (процесс "осветления" данных, но код при этом тоже должен походить на правду) P.S. В Иде, наверное, запускается симуляция выполнения кода которая должна служить цели получения метаинформации о данных в автоматичеком режиме, и по идее снимающей часть таких ньюансов. Radare2 тоже какую то такую схему работы должен иметь. Способ формирования Форт кода в виде того или иного шитого кода - это тоже уже предполагаемая априори метаинформация. Использоание Форта в этом процессе позволяет гибко сшивать "ткань" кодо-файла в предполагаемый листинг. P.P.S. Интересный момент, в Radare2 для промежуточного представления ассемблерных команд используется Форт подобный язык ESIL по которому с помощью утилиты radeco строится графичесое представление кода и по нему же симулируется код. |
Автор: | KPG [ Вт мар 03, 2020 17:33 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Для изучения: (Удалено администратором) - community edition с сайта MPE (могут, наверное, потребовать удалить) P.S. Для ARM (и Cortex) и X86. (Linux, Windows) можно пересобрать. |
Автор: | Hishnik [ Вт мар 03, 2020 23:02 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Конечно, могут. Я же не так давно писал, что они устроили скандал и травлю фортера из Бразилии за размещенные материалы. Вот зачем это "даркнетовское" поведение, а? Кому-то нравится подбирать объедки за "просвещенным западом"? Нормальному разработчику этот мусор и даром не нужен - можно же свое написать. |
Автор: | KPG [ Чт мар 05, 2020 00:59 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Hishnik писал(а): Конечно, могут. Я же не так давно писал, что они устроили скандал и травлю фортера из Бразилии за размещенные материалы. Вот зачем это "даркнетовское" поведение, а? Кому-то нравится подбирать объедки за "просвещенным западом"? Нормальному разработчику этот мусор и даром не нужен - можно же свое написать. Причём тут это? VFX Forth Community editions ссылка на сайт MPE, (так правильнее?) P.S. В чём мусор, если кто то предоставляет свои разработки в открытый доступ? Там же на странице приведена и лицензия связанная с этим программным кодом (может её обсудить?) Кстати, в лицензии не увидел запрета на реверс-инжиниринг данной Форт-системы. (хотя бы для того, чтобы узнать есть ли в бинарном коде какие то "закладки") |
Автор: | Hishnik [ Чт мар 05, 2020 18:36 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
KPG писал(а): В чём мусор, если кто то предоставляет свои разработки в открытый доступ? В этом и мусор. Интернет полон таких разработок, и толку чуть. Надежда на то, что на такие проекты будут набрасываться сотни программистов? Ну с проектами Фортов с открытым кодом уже видно, что это не работает. Нужны архитектурные решения и прикладные проекты, а не затравки кода с лицензиями и списками последователей. KPG писал(а): Там же на странице приведена и лицензия связанная с этим программным кодом (может её обсудить?) Ну если нервов не жалко MPE же скандал устроит, просто чтобы внимание к себе привлечь. KPG писал(а): Кстати, в лицензии не увидел запрета на реверс-инжиниринг данной Форт-системы. Его и в российском законодательстве нет. А вот для MPE замечательный повод обратить на себя внимание с небольшим скандальчиком вида "злобные и тупые русские воруют наши замечательные технологии". |
Автор: | KPG [ Чт мар 05, 2020 19:29 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Hishnik писал(а): Ну с проектами Фортов с открытым кодом уже видно, что это не работает. А, почему не работает и на каких Форт проектах? Теже открытые Форт-системы для контроллеров (amForth, Mecrisp ...), вполне демонстрируют востребованность. не рассматривая даже системы типа SPF4 ... Есть ощущение, что свободное развитие Форт-систем и "напрягло" MPE где они не хотят конкуренции и даже в лицензии этот момент отобразили. Hishnik писал(а): Нужны архитектурные решения и прикладные проекты, а не затравки кода с лицензиями и списками последователей. Кому нужны? Они есть, но, зачастую, не образуют базу консолидации сообщества. Hishnik писал(а): Его и в российском законодательстве нет. А вот для MPE замечательный повод обратить на себя внимание с небольшим скандальчиком вида "злобные и тупые русские воруют наши замечательные технологии". Неужели санкции последуют? P.S. Спрошу здесь. Есть проект Лазерная установка для засветки фоторезиста от AlphaCrow (автор этого проекта есть и на местном форуме, но не заходил на форум с середины 2018г.) Имеются предпоследние Форт исходники для ПК (0.17 co страница 300 данной темы) собираемые в авторской версии Форт-системы. (на С-Keil для контроллера установки для STM32) Кому то интересно дальнейшее развитие данного проекта и в каком варианте (пока автор проекта AlphaCrow недоступен) |
Автор: | Hishnik [ Чт мар 05, 2020 20:26 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
KPG писал(а): А, почему не работает и на каких Форт проектах? Да нигде это не работает. Кто может написать - спокойно пишет, а кто не может - пытается найти, к кому присоединиться, но так, чтобы его заметили и оценили. Стандартная ситуация. KPG писал(а): Теже открытые Форт-системы для контроллеров (amForth, Mecrisp ...), вполне демонстрируют востребованность. не рассматривая даже системы типа SPF4 ... Кому и чего они там демонстрируют? Когда энтузиаст тратит время на запуск домашней поделки - это не востребованность, это упрямство и культивирование синдрома белой вороны. Вероятнее всего, тот же энтузиаст на работе возьмет что-то другое для проекта на МК, а Форт будет использовать, чтобы показывать окружающим, что он "не такой, как все". KPG писал(а): Кому нужны? Они есть, но, зачастую, не образуют базу консолидации сообщества. Они и не должны никакой базы образовывать сами по себе. Это движение снизу вверх, когда консолидация происходит естественным путем, просто потому, что специалистам становятся непонятны конкретные моменты, и они начинают делиться опытом. Написать умозрительный стандарт и заранее бороться за места в иерархии - это мертворожденная деятельность, она ничего не способна дать в принципе, кроме дележа эфемерной власти и влияния. KPG писал(а): Неужели санкции последуют? Нет, последует скандал и очередной виток надувания пузыря "MPE - крутая компания, но непонятая и обиженная". Им уже прямым текстом пишут, что они пытаются создать пузырь на пустом месте, а на деле ни одна компания просто не имеет ресурсов, чтобы что-то там в Форте "направлять". Совершенно явный признак неправильной деятельности - позиция "ну зачем все пишут Форт, мы же уже написали, покупайте у нас, подключайтесь к нашему проекту" и т.д. Неописуемо наивная попытка подгрести под себя всех возможных конкурентов. KPG писал(а): Кому то интересно дальнейшее развитие данного проекта и в каком варианте (пока автор проекта AlphaCrow недоступен) Рама + шаговые движки. Таких проектов очень много начиная с Ардуино. Проекты мини-станка с ЧПУ, 3D-принтера и прочего, конечно, интересны. Вот только Форт "имени кого-то" никак не может считаться здесь ключевой технологией, от которой все и зависит. Тут наоборот, хороший повод написать собственный движок Форта, отталкиваясь хотя бы от платы с Ардуино, которой по UART передаются команды. Для начала байтовые. (Ну не перекомпилировать же весь проект под каждое движение инструмента). Потом от байтовых команд можно будет разбирать строки по пробелам, превращая их в последовательности команд с запуском по switch. Потом добавится обработка чисел. Потом вместо switch в Ардуино образуется структура, связывающая имена и запускаемые функции. Ну и все, это уже практически Форт. Только выращенный самостоятельно под конкретную задачу и учитывающий ее особенности (например, если передано что-то непонятное, то не просто exception, а аккуратный останов двигателей и отключение всего что можно). А искать, к кому бы присоединиться, можно хоть всю жизнь. |
Автор: | KPG [ Чт мар 05, 2020 20:35 ] |
Заголовок сообщения: | Re: Дизассемблирование VFX |
Hishnik писал(а): Рама + шаговые движки. Таких проектов очень много начиная с Ардуино. Не шаговые движки, а ПИД регулировние обычного движкa на высоких скоростях по энкодерной ленте и управление лазером для засветки фоторезиста. (шаговый по оси Y для перемещения платы) + привязка по реперам с веб камеры при работе с Гербер файлами. (интерфейс с контроллером установки по USB и Уарт). При этом результирующий файл программы ~120Кб. Hishnik писал(а): А искать, к кому бы присоединиться, можно хоть всю жизнь. Так о том и речь, что высказана выше мысль в необходимости Форт-проектов, но присоединяться к ним не имеет смысла из вышесказанного Хищник. (смахивает на очередную демагогию) |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |