OberonCore
https://forum.oberoncore.ru/

Архив+Песочница=?
https://forum.oberoncore.ru/viewtopic.php?f=1&t=2740
Страница 1 из 1

Автор:  id_ler [ Понедельник, 19 Июль, 2010 07:58 ]
Заголовок сообщения:  Архив+Песочница=?

Для передачи модулей ВВ через Интернет по умолчанию используется Encode/Decode. Этот процесс многоступенчатый неудобный. Не каждый разработчик захочет раскрывать свой код, а простому пользователю совсем не нужно видеть листинг исходника. Кроме того, кодированный документ увеличивается в размере.

Как мне кажется, удобно было бы раскрывать документ со справкой о запускаемом модуле и коммандером запуска. Для этого можно передавать Code-файл и Docu-файл в самораспаковывающемся архиве. Но тут снова возникает проблема с размером архива.

Кроме этого, среда должна быть готова запустить модуль. И запуск должен быть безопасным. А тут появляется необходимость в «песочнице».

Автор:  id_ler [ Вторник, 20 Июль, 2010 11:21 ]
Заголовок сообщения:  Re: Архив+Песочница=?

Заглянул в раздел http://oberoncore.ru/weblinks и обнаружил
Цитата:
Component-Pascal Resources На сайте представлен ряд интересных подсистем для BlackBox: асинхронные TCP-потоки, HTTP Client&Server, средства работы с графами, клиент/сервер для удаленной компиляции по HTTP.
В таком случае ВВ можно дополнить подсистемами сжатия модулей с http://www.zinnamturm.eu/
CpcCompressors
Pac
TboxCoderList
TboxCompFile

Полагаю, что для создания «песочницы» нужно из подсистемы Win удалить все функции, предоставляющие доступ к ресурсам компьютера и не относящиеся к обмену данными по сети. Но как быть с dll-ками, которые использует ВВ при запуске?

PS. Поправил ссылку на коллекцию Цинна.

Автор:  id_ler [ Вторник, 26 Октябрь, 2010 09:27 ]
Заголовок сообщения:  Re: Архив+Песочница=?

Выделил для «песочницы» список необходимых процедур и функций.
Цитата:
ADVAPI32

RegQueryValue
RegEnumKey
RegDeleteKey
RegCreateKey
RegSetValue
RegOpenKey
RegCloseKey

ole32

CoCreateInstance
CoUninitialize
CoInitialize
SysAllocString
VariantClear
SysFreeString

KERNEL32

UnhandledExceptionFilter
GetCommandLine
lstrlenW
MultiByteToWideChar
CreateEvent
GetCurrentThreadId
lstrcatA
lstrlenA
lstrcmpiA
lstrcpyA
GetModuleFileName
FreeLibrary
GetProcAddress
LoadLibrary
GetVersion
UnmapViewOfFile
CloseHandle
ReleaseMutex
SetEvent
WaitForSingleObject
CreateProcess
lstrcpynA
GetCurrentProcessId
DuplicateHandle
GetCurrentProcess
CreateMutex
MapViewOfFile
CreateFileMapping
WaitForMultipleObjects
GetModuleFileNameW
OpenProcess
GetLastError
SetUnhandledExceptionFilter
LocalFree
LocalAlloc
GetModuleHandle
ExitThread
GetStartupInfo
SetErrorMode
TerminateProcess
QueryPerformanceCounter
GetTickCount
GetSystemTimeAsFileTime
CompareString
GetShortPathName
HeapFree
HeapAlloc
GetProcessHeap
SetFileAttributes
GetFileTime
GetTempPath
GetFileSize
FormatMessage
CreateFile
lstrcmpA
MoveFile

USER32

GetShellWindow
GetClassName
SendMessage
PeekMessage
MsgWaitForMultipleObjects
DestroyWindow
TranslateMessage
DispatchMessage
LoadString
DefWindowProc
RegisterClass
CreateMenu
CreateWindow
ShowWindow
GetForegroundWindow
wsprintfA
MessageBox
Будут ли изменения и дополнения?

Автор:  Иван Денисов [ Вторник, 26 Октябрь, 2010 17:39 ]
Заголовок сообщения:  Re: Архив+Песочница=?

А случаем такое распространение без исходных кодов не противоречит лицензионному соглашению? Или Вы купили лицензию? Просто для себя интересно, на будущее.

Автор:  id_ler [ Среда, 27 Октябрь, 2010 04:42 ]
Заголовок сообщения:  Re: Архив+Песочница=?

По задумке, присутствие исходников определяющего значения не имеет. Важно то, как скомпилирован интерфейсный модуль во время работы. Если он не содержит определения потенциально опасных функций, тогда непроверенный модуль не сможет обращаться к ним. Практически, не всё так ясно, ведь dll’ка загружается полностью. В общем, надо экспериментировать.

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/