Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 23:05

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Дизассемблирование VFX
СообщениеДобавлено: Пт дек 14, 2012 20:24 
Не в сети
Moderator
Moderator

Зарегистрирован: Ср май 10, 2006 15:37
Сообщения: 1132
Откуда: Chelyabinsk ( Ural)
Благодарил (а): 0 раз.
Поблагодарили: 9 раз.
Попробовал простенько средствами 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


Вложение:
readme.f [2.04 Кб]
Скачиваний: 1745
(приведённый выше скрипт в кодировке 1251)

И некоторые собранные результаты после использования данного выше скрипта
Вложение:
VFXBase.zip [367.83 Кб]
Скачиваний: 1752


P.S. Наверное, при желании, можно "как то" получить код для обратной сборки VFX:)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Пт дек 14, 2012 21:27 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
хм.... через IDA быстрее будет )))


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Пн авг 06, 2018 11:43 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
diver писал(а):
хм.... через IDA быстрее будет )))

С Идой ещё как то нужно подружиться. :)
пока получен такой асм листинг для VFX некоторое время назад (через самопальную систему дизассемблирования - без оптимизации технологии и "ручного" труда на SPF4)
для Lite версий VFX (MSP430 и ARM) полученные файлы примерно такого же наполнения.
Что с этим дальше делать пока неясно (т.к. результат ещё не окончательный и обратная сборка VFX не сделана, и ещё остались некоторые "тёмные" места в асм листинге).

P.S. Если будет кому то интересно, то распишу как такой результат был получен без использования IDA (хотя это и скучно :)
Без оптимизации алгоритма время выполнения "тупого скрипта" у меня составляет ~5мин (или 10мин на Atom процессоре с 30% загрузкой CPU)
перезалил другой - более правильный файл.


Последний раз редактировалось KPG Пн авг 06, 2018 23:57, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Пн авг 06, 2018 23:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Процесс прикосновения к великому?... :D


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Пн авг 06, 2018 23:53 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
Процесс прикосновения к великому?... :D

Кто как это видит :))
Интересно было сделать такое и да добавить недостающие "опции" в "урезанный" вариант Форт системы,
но это уже больше интересно для lite версий под контроллеры.

P.S. Кто и какой смысл найдёт сего действия, это уже его понимание. :)
А так это ещё одна "демонстрация" применения Форт и к таким задачам, если есть потребность и возможно в чём то полезный асмовский листинг рабочей Форт системы. IDA вообще по дефолту что то невнятное выдала. Можно и iForth также "ковырнуть".
Судя по количеству скачиваний начальных файлов интерес к теме или к полученным результатам какой то существует.
Рабочим инструментом служит SPF4, если это не ясно было обозначено в предыдущем сообщении.

Для сравнения добавил 2-а лог файла для Lite VFX - ARM и MSP430


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Вт авг 07, 2018 09:26 
Не в сети

Зарегистрирован: Чт янв 07, 2016 19:14
Сообщения: 1288
Благодарил (а): 3 раз.
Поблагодарили: 18 раз.
KPG писал(а):
IDA вообще по дефолту что то невнятное выдала. Можно и iForth также "ковырнуть".


Так она же не знает где код и где данные.
Это надо ручками поднастраивать в лиситнге

_________________
Цель: сделать 64-битную Нову под Винду


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Вт авг 07, 2018 15:25 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Ср дек 06, 2006 09:23
Сообщения: 660
Благодарил (а): 7 раз.
Поблагодарили: 25 раз.
Victor__v писал(а):
KPG писал(а):
IDA вообще по дефолту что то невнятное выдала. Можно и iForth также "ковырнуть".


Так она же не знает где код и где данные.
Это надо ручками поднастраивать в лиситнге


В случае, например с SwiftX - там подпрограммный шитый код, с полями имени и всем прочим, там приходится реально руками указывать код/данные )

вероятно и в случае vfx та же штука

(в их форте для контроллеров lpc2xxx так же было)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Вт авг 07, 2018 22:14 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Victor__v писал(а):
Так она же не знает где код и где данные.
Это надо ручками поднастраивать в лиситнге

Поняв сначала как обрабатывается тот или иной кусок данных в программе и где его границы,
а потом уже ввести эту исполнимую-метаинформацию в скрипт дизассемблера, который будет срабатывать при распознании запускающего условия
Например по адресу взятому из call вызова программы работающей с соответствующими данными. (процесс "осветления" данных, но код при этом тоже должен походить на правду)

P.S. В Иде, наверное, запускается симуляция выполнения кода которая должна служить цели получения метаинформации о данных в автоматичеком режиме,
и по идее снимающей часть таких ньюансов. Radare2 тоже какую то такую схему работы должен иметь.
Способ формирования Форт кода в виде того или иного шитого кода - это тоже уже предполагаемая априори метаинформация.
Использоание Форта в этом процессе позволяет гибко сшивать "ткань" кодо-файла в предполагаемый листинг. :)

P.P.S. Интересный момент, в Radare2 для промежуточного представления ассемблерных команд используется Форт подобный язык ESIL по которому с помощью утилиты radeco строится графичесое представление кода и по нему же симулируется код.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Вт мар 03, 2020 17:33 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Для изучения:
(Удалено администратором) - community edition с сайта MPE (могут, наверное, потребовать удалить)

P.S. Для ARM (и Cortex) и X86. (Linux, Windows) можно пересобрать. :)



За это сообщение автора KPG поблагодарил: Ilya
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Вт мар 03, 2020 23:02 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Конечно, могут. Я же не так давно писал, что они устроили скандал и травлю фортера из Бразилии за размещенные материалы. Вот зачем это "даркнетовское" поведение, а? Кому-то нравится подбирать объедки за "просвещенным западом"? Нормальному разработчику этот мусор и даром не нужен - можно же свое написать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Чт мар 05, 2020 00:59 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
Конечно, могут. Я же не так давно писал, что они устроили скандал и травлю фортера из Бразилии за размещенные материалы. Вот зачем это "даркнетовское" поведение, а? Кому-то нравится подбирать объедки за "просвещенным западом"? Нормальному разработчику этот мусор и даром не нужен - можно же свое написать.

Причём тут это?
VFX Forth Community editions ссылка на сайт MPE, (так правильнее?)

P.S. В чём мусор, если кто то предоставляет свои разработки в открытый доступ?
Там же на странице приведена и лицензия связанная с этим программным кодом (может её обсудить?)
Кстати, в лицензии не увидел запрета на реверс-инжиниринг данной Форт-системы. :)
(хотя бы для того, чтобы узнать есть ли в бинарном коде какие то "закладки")


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Чт мар 05, 2020 18:36 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
В чём мусор, если кто то предоставляет свои разработки в открытый доступ?

В этом и мусор. Интернет полон таких разработок, и толку чуть. Надежда на то, что на такие проекты будут набрасываться сотни программистов? Ну с проектами Фортов с открытым кодом уже видно, что это не работает. Нужны архитектурные решения и прикладные проекты, а не затравки кода с лицензиями и списками последователей.

KPG писал(а):
Там же на странице приведена и лицензия связанная с этим программным кодом (может её обсудить?)

Ну если нервов не жалко :)) MPE же скандал устроит, просто чтобы внимание к себе привлечь.

KPG писал(а):
Кстати, в лицензии не увидел запрета на реверс-инжиниринг данной Форт-системы.

Его и в российском законодательстве нет. А вот для MPE замечательный повод обратить на себя внимание с небольшим скандальчиком вида "злобные и тупые русские воруют наши замечательные технологии".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Чт мар 05, 2020 19:29 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
Ну с проектами Фортов с открытым кодом уже видно, что это не работает.

А, почему не работает и на каких Форт проектах?
Теже открытые Форт-системы для контроллеров (amForth, Mecrisp ...), вполне демонстрируют востребованность.
не рассматривая даже системы типа SPF4 ... :)
Есть ощущение, что свободное развитие Форт-систем и "напрягло" MPE где они не хотят конкуренции и даже в лицензии этот момент отобразили.
Hishnik писал(а):
Нужны архитектурные решения и прикладные проекты, а не затравки кода с лицензиями и списками последователей.

Кому нужны? Они есть, но, зачастую, не образуют базу консолидации сообщества.

Hishnik писал(а):
Его и в российском законодательстве нет. А вот для MPE замечательный повод обратить на себя внимание с небольшим скандальчиком вида "злобные и тупые русские воруют наши замечательные технологии".

Неужели санкции последуют? :))

P.S. Спрошу здесь.
Есть проект Лазерная установка для засветки фоторезиста от AlphaCrow (автор этого проекта есть и на местном форуме, но не заходил на форум с середины 2018г.)
Имеются предпоследние Форт исходники для ПК (0.17 co страница 300 данной темы) собираемые в авторской версии Форт-системы. (на С-Keil для контроллера установки для STM32)
Кому то интересно дальнейшее развитие данного проекта и в каком варианте (пока автор проекта AlphaCrow недоступен)


Последний раз редактировалось KPG Чт мар 05, 2020 20:26, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Чт мар 05, 2020 20:26 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
KPG писал(а):
А, почему не работает и на каких Форт проектах?

Да нигде это не работает. Кто может написать - спокойно пишет, а кто не может - пытается найти, к кому присоединиться, но так, чтобы его заметили и оценили. Стандартная ситуация.

KPG писал(а):
Теже открытые Форт-системы для контроллеров (amForth, Mecrisp ...), вполне демонстрируют востребованность.
не рассматривая даже системы типа SPF4 ...

Кому и чего они там демонстрируют? Когда энтузиаст тратит время на запуск домашней поделки - это не востребованность, это упрямство и культивирование синдрома белой вороны. Вероятнее всего, тот же энтузиаст на работе возьмет что-то другое для проекта на МК, а Форт будет использовать, чтобы показывать окружающим, что он "не такой, как все".

KPG писал(а):
Кому нужны? Они есть, но, зачастую, не образуют базу консолидации сообщества.

Они и не должны никакой базы образовывать сами по себе. Это движение снизу вверх, когда консолидация происходит естественным путем, просто потому, что специалистам становятся непонятны конкретные моменты, и они начинают делиться опытом. Написать умозрительный стандарт и заранее бороться за места в иерархии - это мертворожденная деятельность, она ничего не способна дать в принципе, кроме дележа эфемерной власти и влияния.

KPG писал(а):
Неужели санкции последуют?

Нет, последует скандал и очередной виток надувания пузыря "MPE - крутая компания, но непонятая и обиженная". Им уже прямым текстом пишут, что они пытаются создать пузырь на пустом месте, а на деле ни одна компания просто не имеет ресурсов, чтобы что-то там в Форте "направлять". Совершенно явный признак неправильной деятельности - позиция "ну зачем все пишут Форт, мы же уже написали, покупайте у нас, подключайтесь к нашему проекту" и т.д. Неописуемо наивная попытка подгрести под себя всех возможных конкурентов.

KPG писал(а):
Кому то интересно дальнейшее развитие данного проекта и в каком варианте (пока автор проекта AlphaCrow недоступен)

Рама + шаговые движки. Таких проектов очень много начиная с Ардуино. Проекты мини-станка с ЧПУ, 3D-принтера и прочего, конечно, интересны. Вот только Форт "имени кого-то" никак не может считаться здесь ключевой технологией, от которой все и зависит. Тут наоборот, хороший повод написать собственный движок Форта, отталкиваясь хотя бы от платы с Ардуино, которой по UART передаются команды. Для начала байтовые. (Ну не перекомпилировать же весь проект под каждое движение инструмента). Потом от байтовых команд можно будет разбирать строки по пробелам, превращая их в последовательности команд с запуском по switch. Потом добавится обработка чисел. Потом вместо switch в Ардуино образуется структура, связывающая имена и запускаемые функции. Ну и все, это уже практически Форт. Только выращенный самостоятельно под конкретную задачу и учитывающий ее особенности (например, если передано что-то непонятное, то не просто exception, а аккуратный останов двигателей и отключение всего что можно). А искать, к кому бы присоединиться, можно хоть всю жизнь.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Дизассемблирование VFX
СообщениеДобавлено: Чт мар 05, 2020 20:35 
Не в сети

Зарегистрирован: Пн янв 07, 2013 22:40
Сообщения: 2141
Благодарил (а): 8 раз.
Поблагодарили: 74 раз.
Hishnik писал(а):
Рама + шаговые движки. Таких проектов очень много начиная с Ардуино.

Не шаговые движки, а ПИД регулировние обычного движкa на высоких скоростях по энкодерной ленте и управление лазером для засветки фоторезиста. (шаговый по оси Y для перемещения платы) + привязка по реперам с веб камеры при работе с Гербер файлами. (интерфейс с контроллером установки по USB и Уарт). При этом результирующий файл программы ~120Кб.

Hishnik писал(а):
А искать, к кому бы присоединиться, можно хоть всю жизнь.

Так о том и речь, что высказана выше мысль в необходимости Форт-проектов, но присоединяться к ним не имеет смысла из вышесказанного Хищник. :)
(смахивает на очередную демагогию)


Последний раз редактировалось KPG Чт мар 05, 2020 21:08, всего редактировалось 1 раз.

Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB