Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Предложите задачу   Найти похожие ветки 

 
Копир ©   (2010-04-08 18:01) [80]

>Игорь Шевченко ©   (08.04.10 17:43) [78] :

I will


 
Копир ©   (2010-04-08 18:10) [81]

>TUser ©   (08.04.10 17:54) [79] :

>Вот другой пример: набор возможных картин 1000х1000 пикселей, очевидно,
    ограничен, но где вы видели сайт с такой галереей искусства?

Не понятно, причём тут сайт?

Если победа Deep Blue покоилась на понимании, на запоминании, на контроле
всех известных шахматных партий - то это не победа над человеческим шахматистом.
Это победа отличника в школе, который не думает, а лишь зубрит.
Программисты запихнули архив в память, а глупый автомат выбирает.

Память книжного шкафа во много раз превосходит (в байтах) память его (шкафа)
владельца. Но ещё ни одному книжному шкафу не удалось придумать новую сказку.


 
TUser ©   (2010-04-08 18:14) [82]

Вы понимаете разницу между утверждениями:

некое множество конечно

и

указанное множество известно человечеству, вычислено его компьютерами и доступно в Интернете

?


 
Копир ©   (2010-04-08 18:18) [83]

>TUser ©   (08.04.10 18:14) [82] :

>Вы понимаете разницу между утверждениями:
некое множество конечно и указанное множество известно человечеству, вычислено его
компьютерами и доступно в Интернете


Нет.
Объясните разницу, пожалуйста?


 
Копир ©   (2010-04-08 18:31) [84]

Старый, старый анекдот времён Windows 3.11:

Программа обыграла юзера в шахматы.
Юзер: Опять Windows глючит :)


 
Наиль ©   (2010-04-09 20:44) [85]

> [73] xayam ©   (08.04.10 13:29)
> а названия переменных/функций/процедур можно заменять до
> выполнения eval на другие, нечто вроде обфускации

Направление мысли правильное, но правильное решение всё-таки:

> [43] McSimm ©   (01.04.10 13:53)
> Гораздо проще просто запустить внешний компилятор и выполнить
> исполняемый код.

Если подменить в системных библиотеках паскаля функции обращения к диску своими функциями, которые будут перенаправлять все операции в песочницу, то откомпилированная программа будет в полной уверености, что работает с реальной файловой системой.
Например, песочница - большой файл с информацией о каталогах, файлах и их содержимом. FindFirst, FindNext будут получать информацию о файлах из песочницы, а Read, Write считывать и записывать в файлы песочницы.
Но! Поддельные функции обращения к файлам будут использовать реальные функции которые нужны для работы с файлом песочницы. При некоторой сноровке можно узнать адрес реальных функций и вызывать их по адресу.
Поэтому нужно фильтровать исходный код пользователя на наличие @func выражений.
И всё равно злоумышленик может обратиться к реальному дисковому пространству.
Помешаем ему, удалением из его кода функций inline и ASM-вставок.
Попробуйте догадатся, как ещё он может подобраться к содержимому сервера?
Да легко, элементарным вызовом из своей программы внешних программ.
Поэтому, нужно подменить все функции которые могут вызвать постороние программы, так что бы они направлялись в песочницу.
Вся эта защита не спасает, всё равно у программы есть возможность выскочить из песочницы.
Чтобы избежать этого используем последний рубеж защиты.
Откомпилированная программа должна запускаться под специальным пользователем, которому доступен лишь один файл - файл песочницы. В этом случае все нехорошие действия программы будут натыкаться на сопротивление операционной системы.
Самое гланое, что для этого не нужен ни Yacc ни PHP, а лишь знание Паскаля и правильная настройка прав доступа.


 
Копир ©   (2010-04-09 20:56) [86]

>Наиль ©   (09.04.10 20:44) [85] :

>Помешаем ему, удалением из его кода функций inline и ASM-вставок.

А как помешать-то?
Способствовать хакерам?

Это их методы.

ASM - это добровольный способ от Борланда вставлять асс. коды.
Каждому по способностям.

Запрещать. Нам не дано. И слава Богу.

А то, тут всё запрещаем, запрещаем.
И никуда Россия не движется.
Запрещяя.


 
TUser ©   (2010-04-09 21:16) [87]


> Нет.
> Объясните разницу, пожалуйста?

Это может только педагог уровня макаренки - не я, короче.


 
Nickloa2   (2010-04-09 22:01) [88]

>xayam ©   (31.03.10 20:57)  
подумай длям начала, а почему ты сидишь без работы и тебе нечем заняться?
Могу пояснить ситуацию. С форумом и участниками данного ворума я знаком давно, но..., к сожалению на всех поинтовках мне с ними не о чем было разговаривать, потому что они все на голову, а то и на десяток выше меня. Но в этом форуме нужно задавать только адекватные вопросы, именно - каков вопрос, таков ответ.
Отдельное здрасте Юрию Швченко (НЛП помним:))


 
KSergey ©   (2010-04-09 22:55) [89]

Я так вижу задача найдена, любимая.
Языками почесать ни о чем.
Да уж, эт мы горазды.


 
Nickola2 ©   (2010-04-09 23:00) [90]

KSergey ©   (09.04.10 22:55) [89]

Ок. Простая задача: согласовать SPI - интерфейс микроконроллера на ядре ARM 32 с приложением на компьютере для проверки источников элекропитания.


 
xayam ©   (2010-04-09 23:13) [91]


> Наиль ©   (09.04.10 20:44) [85]
> Самое гланое, что для этого не нужен ни Yacc ни PHP, а лишь
> знание Паскаля и правильная настройка прав доступа.

Максим вроде имел ввиду реализацию именно на php, иначе не интересно

> Nickloa2   (09.04.10 22:01) [88]
> >xayam ©   (31.03.10 20:57)  
> подумай длям начала, а почему ты сидишь без работы и тебе
> нечем заняться?

да работа есть, я два через два работаю, вот два выходных такой ерундой занимаюсь.
PS Юрия зовут Игорь :)


 
Nickola2 ©   (2010-04-09 23:18) [92]

>xayam ©   (09.04.10 23:13) [91]
Прошу прощения, немного пьян. Действительно Игорь Шевчнеко, но вспомнил Юрия Зотова :)(спасибо ему за его уроки). По Subject: когда не чем занаяться, подумай, а может то, что ты сделал можно улучшить? Иногда помогает:)


 
xayam ©   (2010-04-09 23:24) [93]


> Nickola2 ©   (09.04.10 23:18) [92]
> Subject: когда не чем занаяться, подумай, а может то, что ты сделал можно улучшить?

да ничего особенного еще не сделано :)


 
Nickola2 ©   (2010-04-09 23:28) [94]

>xayam ©   (09.04.10 23:24) [93]
Тогда подумай чего хочется сделать. Могу привести в пример себя (прошу простить за нескромность) - разарботаль схемотехнику источника элекропитпния с КПД не менее 95%, жду оформления патента. Но нет пердела совершенству :)


 
McSimm ©   (2010-04-10 00:25) [95]


>
> Если подменить в системных библиотеках паскаля функции обращения
> к диску своими функциями, которые будут перенаправлять все
> операции в песочницу, то откомпилированная программа будет
> в полной уверености, что работает с реальной файловой системой.
>

Этого мало.
Реальный компилятор позволяет слишком много. Сколько ни ставь заглушек - программист найдет лазейку. Взять хотя бы возможности адресной арифметики.
Настоящая песочница это не прикрытие потенциально опасных возможностей, это окружение делается принципиально безопасным (кроме ошибок реализации).

Вспомнилось.
Давно когда-то была долгая и активная дискуссия о том, как сделать подобие песочницы для самого PHP, чтобы позволить посетителям вводить код скрипта и выполнять, хотя бы ограниченное подмножество. Разумеется, хотелось использовать реальный транслятор, "благо" возможностей для "обезопасивания" в нем, на первый взгляд, просто уйма (ограничение рабочей папки, запрет фунций, и пр.). Сколько ни предлагалось вариантов - всегда находился новый подход обойти запреты и напакостить. Как резюме все участники сошлись, что идея не реализуема.


 
McSimm ©   (2010-04-10 00:27) [96]


> Максим вроде имел ввиду реализацию именно на php, иначе
> не интересно

Нет, вопрос изначально стоял про PHP. И в такой постановке лично мне задача кажется весьма интересной.


 
Наиль ©   (2010-04-10 10:59) [97]

> [96] McSimm ©   (10.04.10 00:27)
> Нет, вопрос изначально стоял про PHP. И в такой постановке
> лично мне задача кажется весьма интересной.

Как вполне адекватный программист, который должен получить РЕЗУЛЬТАТ (соответствующий ТЗ) за наименьшее время, я вижу, что для создания Sandbox Pascal изменение системных библиотек паскаля даст более быстрый результат, чем создатние преобразователя Паскаль-кода на языке PHP, на сколько бы интересным это не было. Главное, что из PHP можно вызвать паскалевский компилятор, который приготовит исполняемый файл в нужном виде.
> [95] McSimm ©   (10.04.10 00:25)
> Реальный компилятор позволяет слишком много. Сколько ни
> ставь заглушек - программист найдет лазейку. Взять хотя
> бы возможности адресной арифметики.

Имено это я подразумевал под
> [85] Наиль ©   (09.04.10 20:44)
> Вся эта защита не спасает, всё равно у программы есть возможность
> выскочить из песочницы.

Правда, не подумал в контексте компилятора, а ведь компилятор тожно можно подправить и это решит все остальные проблемы. Естественно, это тоже не простая задача, но по объём работы, значительно меньше, чем для PHP-варианта.
Я так считаю, потому что как раз сейчас разбираюсь с Harbour (http://www.harbour-project.org/). Harbour конвертирует клиперовские программы в байт-код, который интегрируется в си-программу. Полученая программа исполняет байт-код используя виртуальную машину. Другими словами, Pascal Sanbox это тот же Harbour, только вместо паскаля Клипер, а вместо Си PHP.
Проекту Harbour 10 лет, и лишь 2 последних года он не только развивается, а используется по назначению.
Поэтому если есть 8 сводных лет на создание Pascal sandbox PHP based, то это действительно разумно.


 
xayam ©   (2010-04-12 12:02) [98]


> Поэтому если есть 8 сводных лет на создание Pascal sandbox
> PHP based, то это действительно разумно.

это время можно значительно сократить во времена генераторов анализаторов :) Не?


 
Наиль ©   (2010-04-12 17:40) [99]

> это время можно значительно сократить во времена генераторов
> анализаторов :) Не?

Возможно, но Харбор как раз построен на гераторах и анализаторах, bison и Flex.
Без них было бы дольше.


 
xayam ©   (2010-04-12 17:49) [100]


> Наиль ©   (12.04.10 17:40) [99]
> Возможно, но Харбор как раз построен на гераторах и анализаторах,
>  bison и Flex.

думаю с этим будет быстрее http://www.antlr.org   Только грамматику написать паскаля и немного кода


 
xayam ©   (2010-04-13 01:01) [101]


> http://www.antlr.org

прикольная штука, лексер сгенирировался, а парсер не хочет. Кто-нибудь работал с этими грамматиками для antlr? http://www.delphimaster.net/pascal.txt


 
xayam ©   (2010-04-13 14:45) [102]

народ, помогайте для Вас делаю :) Что может быть с этой грамматикой не так?


 
xayam ©   (2010-04-16 11:48) [103]

up


 
xayam ©   (2010-04-20 12:59) [104]

Немного переделал

http://www.delphimaster.net/pascal.txt

Стало почти не осталось ошибок, но по-прежнему генерится только лексер и стали выдаваться две ошибки:
1) internal error: no such group file AST.stg
2) internal error: no such group file ASTParser.stg

Проверил - таких файлов действительно нет, а они видимо используются для генерации парсера, в папке пакета org\antlr\codegen\templates\Php есть только файл Php.stg

На официальном сайте про это написано только то что можно установить опцию output=template но с такой опцией выдается другие две ошибки:
1) AST operator with non-AST output option: template
2) internal error: no such group file ST.stg
Первое я не понял, второе - файла действительно нет в папке org\antlr\codegen\templates\Php

Что я делаю не так? Как создать эти файлы AST.stg ASTParser.stg ST.stg?


 
КаПиБаРа   (2010-04-20 18:11) [105]

http://webproxy.2s.ru/?proxyreferer=86474707a3f2f296d6164723031303e29716e6465687e22757f227563757c64737 &page=/datasets



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.66 MB
Время: 0.06 c
2-1266841096
darts116
2010-02-22 15:18
2010.08.27
Рисуем в Delphi


15-1273548240
Учащийся
2010-05-11 07:24
2010.08.27
Схемы хранения матриц.


8-1203951832
NaRuTo
2008-02-25 18:03
2010.08.27
DirectX or OpenGl


15-1264632229
Германн
2010-01-28 01:43
2010.08.27
RDTSC и её использование в VB 2008 Express Edition


2-1265974282
Егорка
2010-02-12 14:31
2010.08.27
Дерево в памяти + Listview





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский