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

...
Google Search
Forth-FAQ Spy Grafic

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




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - С чего начать?
Автор Сообщение
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Ethereal писал(а):
Просто я рассуждал про два совершенно отдельных вопроса
- можно ли написать Форт для Ява-машины
- можно ли хакнуть Ява-машину.
Второе бывает нужно, но не в связи с первым.

Раз уж Java обеспечивает переносимость, то интересно и написать такую штуку, которая не использовала бы хаки, чтобы переносить между платформами, не заботясь о нативном коде. Иначе получится, что минусы все равно остались, а важным плюсом пользоваться нельзя из-за хака, который его полностью нивелирует.
Сообщение Добавлено: Пн янв 23, 2017 03:08
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Ethereal писал(а):
...
Понятно. Правда, на мой вкус правильнее не "FORTH на Java-машине", а "FORTH на машине, на которой стоит Java-машина".
Сообщение Добавлено: Вс янв 22, 2017 13:12
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Просто я рассуждал про два совершенно отдельных вопроса
- можно ли написать Форт для Ява-машины
- можно ли хакнуть Ява-машину.
Второе бывает нужно, но не в связи с первым.
Сообщение Добавлено: Вс янв 22, 2017 12:40
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Ethereal писал(а):
Да, именно так. Как в цепях окованный не Форт написать, а хакнуть эту Ява-машину.
А нафига? Есть хорошая машина Java+конкретное железо. Вычленяем из текущей задачи немодифицируемые куски. Пишем их на Java и объявляем FORTH-словами. Организуем на машине канал, по которому можно передавать параметры и сами слова... Обычно задача заканчивается раньше, чем программист докапывается до необходимости ломать Java.
Сообщение Добавлено: Вс янв 22, 2017 12:27
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Да, именно так. Как в цепях окованный не Форт написать, а хакнуть эту Ява-машину. Так ее задурить, чтобы управление слетело на нативный код. Так вот ее трудно задурить. Каждые данные сопровождаются описанием их типа и эти типы проверяются. Всесто указателя целое не подсунуть. Указатель не сложить с константой. Не передать вместо указателя на массив указатель на что попало.

В конце концов я на своей платформе Яву таки хакнул. Нашлась в данной реализации Ява-машины уязвимость. Разумеется специфичная только для данной реализации. Но даже назвать ее и сказать как боюсь. Ибо дыру же прикроют. Как только дыру засвечивают ее сразу патчят.

Victor__v писал(а):
Хакерство, так сказать

Вот я понял это как речь о хакерстве. Кстати, в документахе я прочитал что-то смутное, что методы в Ява-апплете могут быть написаны в нативном коде. Видимо у метода должен стоять какой-то признак, что он закодирован не байт-кодом, а в машинных кодах. И видимо формат хранения этого признака отдан на откуп реализации. Во всяком случае глазами я такие методы не видел. То есть как подсунуть этой Жабе апплетку с нативным кодом не знаю.

А в общем сценарий хака теоретически могу озвучить.
Есть команды baload и bastore чтения и записи байт в массив. Когда они ссылаются на массив в заголовке массива хранится его размер. И за пределы массива не записать. Но если найти способ пакостить указатель, то можно подсунуть этим командам указатель на что-попало. И тогда размер массива выйдет каким попало. Если он выйдет большим, то командой baload можно будет читать в широком диапазоне памяти, а bastore туда писать. И задача сводится уже к тому, чтобы подпортить что-то в памяти так, чтобы управление выкинуло на твой машинный код, подсунутый Ява-машине под видом данных. Причвм, возможность решения этой задачи также зависит от везения. Может статься, что нелегально писать ты можешь много куда, но ничего полезного из этого не выжать.
Сообщение Добавлено: Вс янв 22, 2017 12:14
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Ethereal писал(а):
А где было написано, что чего-то не хватает для честной реализации ?

Ethereal писал(а):
Я с ним поковырялся и чувствовал себя как в цепях окованный.
Сообщение Добавлено: Вс янв 22, 2017 12:07
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
gudleifr писал(а):
FORTH идет на ЛЮБОЙ машине. Если вам чего-то не хватает "для честной реализации", значит вы еще не фортер.
А где было написано, что чего-то не хватает для честной реализации ?

Но тут встрял Задавака. Как всегда не в тему. (Из одного из гоблинских переводов фильмов).

Я слова Виктора понял, как речь о том, чтобы нарисовать такой Ява-байт-код, чтобы ИМ провалиться в нативный. Это крайне нечестное хакерство и далеко не всегда возможное. Надуть виртуальную машину Явы, так сказать.
А про честную работу с Ява-байт-кодом я написал, что подпрограммный шитый код там построить можно. Так-что без проблем.
Сообщение Добавлено: Вс янв 22, 2017 12:01
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
P.S. Добавил в "ОБЩИЕ МЕСТА" своих FORTH-заметок замечание о необходимости вывешивания ПОТОКА (как уровне-образующей сущности) до начала изобретения FORTH-системы. Может, дойдет до микро-фортеров. (Или правильнее по самоназванию их вожака - микро-гоблинов).
Сообщение Добавлено: Сб янв 21, 2017 16:05
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Ethereal писал(а):
...
Victor__v писал(а):
...
FORTH идет на ЛЮБОЙ машине. Если вам чего-то не хватает "для честной реализации", значит вы еще не фортер.
Сообщение Добавлено: Сб янв 21, 2017 12:06
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Цитата:
Я с ним поковырялся

Что ж, вам виднее. Но, раз с джавой надо танцевать танцы с бубнами по несерьёзным вопросам,то и указатель где-то мог затеряться.
А на счёт цепей у меня такое чувство все языки программирования вызывают. Кроме форта и ассемблера
Сообщение Добавлено: Сб янв 21, 2017 02:47
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
@vikt
Да если есть Ява, то есть и Ява-байт-код. И для него есть ассемблер JASMIN. И шитый код на нем построить можно, но кажется только подпрограммный.

@Viktor_v
Подправить Ява-байт-код чтобы вызывать этим машинный код можно только используя дыры в конкретной реализации Ява-машины, если такие есть. Там жесткая типизация повсюду и шаг влево, шаг вправо карается. Я с ним поковырялся и чувствовал себя как в цепях окованный. Даже к адресу единицу не прибавить. Низзя. Тип указатель с типом целый складывать низзя.
Сообщение Добавлено: Сб янв 21, 2017 01:51
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
А как вариант покопаться в байт-коде джавы. Подправить там. А потом вызвать код родной для архитектуры?
Хакерство, так сказать
Сообщение Добавлено: Пт янв 20, 2017 22:54
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
vikt писал(а):
хочеться програмировать скрипты на форте, а не чем то фортоподобном.
1) FORTH сам фортоподобен. Настолько, что ни один стандарт не приживается;
2) переписывание непонравившегося FORTH на более правильный занимает две недели без отрыва от работы.
И, повторяю, сначала создайте (можете даже не создавать, но продумать откуда и куда он будет вести и через что реализовываться) канал символьного ввода - через который можно будет запихивать скрипты в работающую программу. Остальное гораздо проще.
Сообщение Добавлено: Пт янв 20, 2017 21:07
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
В ьольшинстве мобильных платформ. а только такие меня интересуют,
нет возможности писать ни на чем, кроме java.
Соответственно, ни ассемблера, ни шитого кода организовать не возможно.
Технологии, создающие из программы на форте исполняемый java файл не интересуют
тоже. Нужны простые, однородные (то есть по возможности не меняющиеся от программы к программе). средства создания скриптов внутри программы.
Это избавит программу от гигантского кол-ва кнопок и экранов, которые вдобавок
плохо видно на солнце. Опыт создания таких систем у меня имеется, просто хочеться
програмировать скрипты на форте, а не чем то фортоподобном.
Сообщение Добавлено: Пт янв 20, 2017 20:54
  Заголовок сообщения:  Re: С чего начать?  Ответить с цитатой
Ethereal писал(а):
Где выигрыш от абстрактной машины ?
Реализации FORTH не как затычки для не умеющих писать нормальные компиляторы, а как средства создания проблемно-ориентированных языков для любой машины.
Сообщение Добавлено: Пт янв 20, 2017 20:28

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


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