Forth http://fforum.winglion.ru/ |
|
SPF Сохранить образ программы http://fforum.winglion.ru/viewtopic.php?f=18&t=2966 |
Страница 1 из 1 |
Автор: | VoidVolker [ Вт сен 17, 2013 08:28 ] |
Заголовок сообщения: | SPF Сохранить образ программы |
Как сохранить образ программы для последующей его загрузки непосредственно в СПФ? Не в исполняемый файл, а только определенный код. Например: запускаем программу, меняем какие-то переменные и сохраняем образ - после загрузки все нужные переменные будут уже проинициализированы нужными значениями. |
Автор: | Mihail [ Вт сен 17, 2013 10:53 ] |
Заголовок сообщения: | Re: SPF Собхранить образ программы |
VoidVolker писал(а): Как сохранить образ программы для последующей его загрузки непосредственно в СПФ? Не в исполняемый файл, а только определенный код. Типа объектного файла? Принципиальных проблем нет. Только геморрой. Чем это лучше исходного кода? |
Автор: | VoidVolker [ Вт сен 17, 2013 11:16 ] |
Заголовок сообщения: | Re: SPF Собхранить образ программы |
Mihail писал(а): VoidVolker писал(а): Как сохранить образ программы для последующей его загрузки непосредственно в СПФ? Не в исполняемый файл, а только определенный код. Типа объектного файла? Принципиальных проблем нет. Только геморрой. Чем это лучше исходного кода? Да, что-то типа такого. А лучше исходного кода тем, что это не исходный код, а бинарный файл. И можно использовать такие образы например как плагины к программе. Или вот например работает программа-сервис, перезапускать нельзя, а код обновить надо - как быть? Самый простой вариант: Код: FORGET SomeMarker INCLUDE source.f Но если там будет исходник - это большая дыра в безопасности. А вот бинарный файл несколько сложнее расковырять. |
Автор: | Mihail [ Вт сен 17, 2013 12:05 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
VoidVolker писал(а): лучше исходного кода тем, что это не исходный код Это масло масленое. Я вижу 2-е причины: 1 повысить скорость загрузки. 2 скрыть информацию от конкурентов. По мне, обе причины не актуальны. VoidVolker писал(а): И можно использовать такие образы например как плагины к программе. Встроенный линковщик не будет проще встроенной форт-системы. VoidVolker писал(а): это большая дыра в безопасности. А вот бинарный файл несколько сложнее расковырять. Если программа передана пользователю, то но в праве с ней делать все что хочет. Если предоставляется удаленный доступ к программе, то здесь вообще нельзя допускать возможности запуска нотивного кода. Я предоставляю доступ к виртуальной форт-машине telnet 93.100.60.208 8880 |
Автор: | VoidVolker [ Вт сен 17, 2013 15:14 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
Mihail писал(а): Это масло масленое. Я вижу 2-е причины: 1 повысить скорость загрузки. 2 скрыть информацию от конкурентов. По мне, обе причины не актуальны. 2. Актуально - при наличии исходного кода изменить приложение или взломать его не составляет никакого труда, в отличии от уже скомпилированного бинарного файла. 3. Закрытый исходный код. 4. Безопасность. 5. Простой способ изменения кода программы или её обновления без перезапуска. В общем, на эту тему можно дискутировать вечно. Но к решению задачи это не приближает. |
Автор: | KPG [ Вт сен 17, 2013 15:46 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
VoidVolker писал(а): В общем, на эту тему можно дискутировать вечно. Но к решению задачи это не приближает. ? В рамках SPF запустить симулятор (интерпритатор) кода "уникального" процессора (на Форте, на выбор) и на этом процессоре реализованный вариант Форт системы, из под которой загружать ещё что-нибудь и "ещё" несколько таких рекурсий пока будет хватать производительности процессора для требуемого функционала:) А инициализировать, кроме требуемых переменных, можно и кучу всякой туфты не затрагивающую логику программы явно. А использовать оверлей разве не срастётся? P.S. Шабронов, например, для того чтобы иметь возможность править исходные тексты программы - "самоупаковывает" вcё что нужно, включая SPF в один исполняемый файл. А при необходимости правки исходников они "самораспаковываются". |
Автор: | Mihail [ Вт сен 17, 2013 16:11 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
VoidVolker писал(а): к решению задачи это не приближает. 1. Я бы предложил мой генератор ассемблерного представления. https://github.com/VoidVolker/spf64/blob/master/spf64/spf/_mak/djgpp/gdis.f преобразовать в генератор форт-представления. Своего рода HEX файл - последовательность чисел подающихся на вход "C," . 2. Взять исходники ассемблера (умеющего генерить объектники) и линковщика и перевести их на форт. 3. Как предлагает KPG, завести внутри приложения виртуальную машину (можно не одну) и загружать в память этой машины специфические программы используя виртуальное адресное пространство и каналы связи с базовой программой. |
Автор: | mgw [ Вт сен 17, 2013 16:19 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
Mihail - я попробовал твою виртуальную машину с Linux telnet. Что вообще в ней есть? Какие библиотеки и вообще какова концепция? |
Автор: | VoidVolker [ Вт сен 17, 2013 17:02 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
Mihail писал(а): 1. Я бы предложил мой генератор ассемблерного представления. https://github.com/VoidVolker/spf64/blob/master/spf64/spf/_mak/djgpp/gdis.f преобразовать в генератор форт-представления. Своего рода HEX файл - последовательность чисел подающихся на вход "C," . 2. Взять исходники ассемблера (умеющего генерить объектники) и линковщика и перевести их на форт. 3. Как предлагает KPG, завести внутри приложения виртуальную машину (можно не одну) и загружать в память этой машины специфические программы используя виртуальное адресное пространство и каналы связи с базовой программой. Омг, зачем такие сложности? Есть же SAVE - я просто не копал его глубоко, но он же сохраняет систему как-то? Думаю, после некоторой доработки можно сохранить часть системы. |
Автор: | Mihail [ Вт сен 17, 2013 23:57 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
VoidVolker писал(а): Есть же SAVE - я просто не копал его глубоко, но он же сохраняет систему как-то? Думаю, после некоторой доработки можно сохранить часть системы. Не представляю как эту задачу решить доработкой SAVE. Могу предложить еще с помощью моего генератора ассемблерного представления и внешнего Си сделать dll или so файл. mgw писал(а): я попробовал твою виртуальную машину с Linux telnet. Что вообще в ней есть? Какие библиотеки и вообще какова концепция? Это в отдельной теме http://fforum.winglion.ru/viewtopic.php?f=22&t=2922 |
Автор: | mOleg [ Сб сен 21, 2013 18:32 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
VoidVolker писал(а): Не в исполняемый файл, а только определенный код. ну, скажем, убираем заголовок exe-файла, а бинарник отдаем, потом только склеить заголовок и бинарник, подправив в заголовке размеры блоков? |
Автор: | VoidVolker [ Сб сен 21, 2013 20:09 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
mOleg писал(а): VoidVolker писал(а): Не в исполняемый файл, а только определенный код. ну, скажем, убираем заголовок exe-файла, а бинарник отдаем, потом только склеить заголовок и бинарник, подправив в заголовке размеры блоков? Ага, ага, что-то типа такого я и имел в виду: сначала сохранить неизменную часть программы, затем скомпилировать оставшуюся часть, сохранить её, а затем просто отрезать кусок и загружать его в первой программе. |
Автор: | mOleg [ Сб сен 21, 2013 20:41 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
Кстати, в SMAL32 были уже подгружаемые бинарные модули... |
Автор: | Ethereal [ Пт сен 27, 2013 17:14 ] |
Заголовок сообщения: | Re: SPF Сохранить образ программы |
Код: REQUIRE MARKER lib/include/core-ext.f
VARIABLE OVERLAY-ADDRESS VARIABLE OVERLAY-LENGTH VARIABLE OVERLAY-ENTRY : LOAD-OVERLAY S" overlay.bin" R/O OPEN-FILE IF ." Overlay missed" CR BYE THEN >R OVERLAY-ADDRESS @ OVERLAY-LENGTH @ TUCK R@ READ-FILE IF ." Error loading overlay" CR BYE THEN <> IF ." Overlay wrong length" CR BYE THEN R> CLOSE-FILE DROP OVERLAY-ENTRY @ >R ; HERE OVERLAY-ADDRESS ! MARKER PURGE : MAIN ." Hello world !" CR \ Твоя программа ; FALSE TO SPF-INIT? ' NOOP MAINX ! ' LOAD-OVERLAY TO <MAIN> HERE OVERLAY-ADDRESS @ - OVERLAY-LENGTH ! ' MAIN OVERLAY-ENTRY ! S" overlay.bin" R/W CREATE-FILE DROP DUP OVERLAY-ADDRESS @ OVERLAY-LENGTH @ ROT WRITE-FILE CLOSE-FILE DROP PURGE S" program.exe" SAVE BYE |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |