Ru-Board.club
← Вернуться в раздел «Программы»

» Oracle VM VirtualBox (часть 2)

Автор: CaptainFlint
Дата сообщения: 24.01.2016 23:43
Aleksandr N
Да, добавление в доверенные я, разумеется, попробовал первым делом.

Не знаю, смогу ли я решить эту проблему. Конечно, ещё покопаюсь, погуглю, но пока что выглядит, как ограничение самой винды. Если так, то единственным решением будет покупка сертификата и подписывание им. Но, во-первых, сертификаты стоят весьма ощутимых денег (да ещё и не одноразово, а требуют регулярного продления), а во-вторых, у меня нет уверенности, что после публикации заведомо уязвимой программы, подписанной этим сертификатом, он не будет тут же отозван с внесением в чёрный список и потерей уплаченных за него денег.
Автор: Aleksandr N
Дата сообщения: 25.01.2016 01:56
CaptainFlint
То что сертификат стоит больших денег я знаю. Но не думаю что это ограничение винды. Даже без сертификатов программы успешно работают. Хотя бокс специфическая программа. Возможно что-то ещё зашито в исходниках. Тем более странно что на 64-битке как-бы всё работает, а на 32 нет. Будем надеяться что проблема решиться, многие на это надеются. Главное попробовать.
Автор: Sisin
Дата сообщения: 25.01.2016 13:56
Подскажите, пожалуйста, как избавиться от процесса VirtualBox.exe, который остается висеть в трее после выхода из портабельной сборки VirtualBox 5.0.14 r105127???
Автор: KismetT_old
Дата сообщения: 25.01.2016 20:09

Цитата:
как избавиться от процесса VirtualBox.exe

Делаешь батник со следующим содержимым:

Код: TASKKILL /F /IM VirtualBox.exe /T
Автор: Sisin
Дата сообщения: 25.01.2016 22:52

Цитата:
Делаешь батник со следующим содержимым:


Спасибо, конечно, но это не решение проблемы. Меня интересует какого черта он вообще там остается висеть, если я нажал на выход из лаунчера.
Автор: KismetT_old
Дата сообщения: 25.01.2016 23:00

Цитата:
но это не решение проблемы.

Судя по всему, решение проблемы будет не слишком скорым, а этот костыль сэкономит время.
Автор: CaptainFlint
Дата сообщения: 25.01.2016 23:11
Aleksandr N
Источник проблемы найден: если использовать подпись (любую, даже тестовую), сборочные скрипты автоматом выставляют в исполняемых файлах флаг принудительной проверки этой подписи (каковую самоподписанный сертификат, разумеется, пройти не может). Проявляется это и в 32-, и в 64-битной винде. А не обнаружил я это лишь потому, что в 64-битке я даже не пытался запускать самоподписанную программу в нормальном режиме, зная, что драйверы всё равно не загрузятся.

В качестве временного решения я собрал неподписанный дистрибутив: в 32-битке он работает, в 64-битке не проверял, но, теоретически, должен работать лишь в режиме отключённой проверки драйверных подписей (через F8), тестовый режим тут уже не подойдёт (собственно, только из-за этого я добавлял тестовый сертификат, чтобы можно было раз и навсегда выставить тестовый режим через bcdedit, а не жать F8 при каждой загрузке компа).

Ссылка на неподписанный вариант: https://yadi.sk/d/tyXXV7_KnjQ5g

Дальше я буду ковырять сборочные скрипты, чтобы избавиться от этого флага даже при наличии подписи.
Автор: sundraw
Дата сообщения: 26.01.2016 09:49
Возможно ли как-то вынести файл подкачки из виртуальной машины на хост? К примеру, есть несколько виртуалок, каждая имеет свой файл подкачки pagefile.sys, эти файлы грузят и фрагментируют систему. Кроме этого у хоста есть свой pagefile.sys Нужно убрать pagefile.sys из виртуалок и сбросить их на отдельный физический диск, пусть там и фрагментируются. Если pagefile.sys убрать полностью, то некоторые программы не запускаются, либо жалуются на нехватку памяти. Файл подкачки хоста я сбросил на отдельный SSD, хотелось бы туда сбросить и файлы подкачки виртуальных машин. Есть вариант подключить к виртуалкам по второму виртуальному диску, на которые бросить pagefile.sys, а эти диски разместить на отдельном физ. диске. Но не будет ли этот вариант ещё больше грузить систему? У кого-нибудь есть опыт?
Автор: Aleksandr N
Дата сообщения: 26.01.2016 11:04
CaptainFlint
Ага... Спасибо. Вечером проверю как вариант установки, так и портативный вариант. Но думаю должно работать. Конечно в портативном варианте, по моему мнению и на 64 битке всё будет работать и без сертификата, хотя могу ошибаться. Если у тебя всё получится в решении проблем с сертификатом, то попробую 64-битку протестировать так как в основном использую её.
Автор: CaptainFlint
Дата сообщения: 26.01.2016 11:55
Aleksandr N

Цитата:
Конечно в портативном варианте, по моему мнению и на 64 битке всё будет работать и без сертификата, хотя могу ошибаться.

В 64-битке система попросту откажется загружать неподписанный драйвер, хоть портативка, хоть не портативка.


Цитата:
Если у тебя всё получится в решении проблем с сертификатом, то попробую 64-битку протестировать так как в основном использую её.

Боюсь, что ты неправильно понял мою мотивацию в подписывании тестовым сертификатом. Распишу ситуацию в 64-битке подробнее. В ней возможны лишь следующие варианты:
1. Драйвер вообще ничем не подписан. Тогда загрузить его (хоть установленный, хоть загруженный в рантайме портативкой) получится только при выборе специального пункта загрузочного меню F8 при старте компа. Этот пункт невозможно сохранить для постоянного использования, каждый раз при загрузке надо жать F8 и снова выбирать этот пункт.
2. Драйвер подписан тестовым сертификатом (который не имеет цепочки кросс-подписей, или эта цепочка не дотягивается до сертификата "Microsoft Code Verification Root"). Такой драйвер можно загрузить в двух режимах: в том же F8 и в тестовом режиме. Тестовый режим уже можно включить на постоянное использование утилитой bcdedit, тогда при загрузке ничего выбирать вручную не придётся. При этом в системе блокируются некоторые функции (связанные с DRM) и висит текстовая пометка в углу рабочего стола, но большинству пользователей это некритично. В нормальном режиме загрузить такой драйвер нельзя вообще никак, добавление сертификата в доверенные не поможет (потому что всё равно не будет нужной цепочки).
3. Драйвер подписан полноценным платным сертификатом с использованием кросс-сертификата (при просмотре свойств путь будет показан только до владельца корневого сертификата, но утилитой signtool можно проверить всю цепочку). Такой драйвер загружается в любом режиме.

Очевидно, что эти варианты располагаются также в порядке удобства использования. Поскольку бинарники, подписанные полноценным сертификатом, я выложить в любом случае не имею возможности, то из оставшихся двух вариантов выбираю второй, который более удобен отсутствием необходимости каждый раз жать F8. 32-битка же просто случайно попала под удар из-за того, что я использую единый набор параметров для сборки всего комплекта и из-за того, что я не знал про тот дурацкий флаг. Вполне можно было бы, скажем, сначала собрать 64-битку с тестовой подписью, потом вырубить подпись вообще и дособрать 32-битку неподписанной: тогда 64-битчики могли бы использовать bcdedit, а 32-битчики получили бы изначально рабочую программу. Но так собирать не очень удобно, да и чисто эстетически подписанные файлы выглядят как бы солиднее.
Автор: Aleksandr N
Дата сообщения: 26.01.2016 16:53
CaptainFlint
Диагноз:
При установке на машину, бокс успешно запускается.
При использовании портативки, при запуске ругается на отсутствующий ssleay32.dll (как на моей картинке выше), но при этом успешно запускается и всё работает. При копировании библиотек OpenSSL в System32, ругани нет и всё работает.
Полную работу образов не проверял, типа сети, флешек и т.д.
На 64-битке пока нет возможности проверить ни один вариант.
Советы:
Проверь в исходниках указания на пути библиотек. Считаю что не нужно боксу их искать в System32.
Ты упомянул что при подписании файлов компилятор выставляет флаг какой-то... Погоди, а зачем в компиляторе указывать что после компиляции нужно подписать файлы??? Пускай при компиляции ничего не подписывается и флаг никакой не выставится. А потом уж ручками каждый файл подписать. Муторно конечно каждый подписывать, но для уверенности выявления проблемы можно попробовать.
На счёт сертификатов я всё понимаю... Остаётся только ждать от тебя результатов.

Жалко что у меня сейчас нет под рукой инструментов подписания, а то попробовал-бы подписать своим сертификатом файлы из последнего дистрибутива...
Автор: Gredsaz
Дата сообщения: 26.01.2016 18:33
У меня стационарная версия никак не хочет работать, какие я версии только не пробовал, а вот портативная версия от AppZ работает как надо (ОС Win 10 x64, ноутбук Леново).
Скачать:
Oracle VM VirtualBox 5.0.14 Build 105127 PortableAppZ + Extension Pack - с Облако@MAIL.RU (216 МБ)
Автор: Aleksandr N
Дата сообщения: 26.01.2016 19:22
Gredsaz
К стати, ценно. Лично мне нравятся портативки от PortableApp. Надо пощупать. Только вот дистрибутив распаковывать не сможет, а обновлять перекидыванием файлов в отдельные папки.
Автор: CaptainFlint
Дата сообщения: 26.01.2016 20:52
Aleksandr N

Цитата:
При использовании портативки, при запуске ругается на отсутствующий ssleay32.dll (как на моей картинке выше), но при этом успешно запускается и всё работает. При копировании библиотек OpenSSL в System32, ругани нет и всё работает.

В заголовке окна с ошибкой я вижу AutoIt. Судя по всему, ругается именно скрипт, пытающийся сделать VB портативным, а не сам VB. Раз установленная версия работает (и уж тем более, раз несмотря на ошибку, портативный VB всй равно запускается), то все вопросы исключительно к авторам скрипта.


Цитата:
Проверь в исходниках указания на пути библиотек. Считаю что не нужно боксу их искать в System32.

Путь библиотек почти никто почти никогда под виндами не указывает. Windows при запуске любой программы по умолчанию ищет библиотеки сначала в каталоге с программой (где они у меня и лежат), потом в PATH.


Цитата:
Ты упомянул что при подписании файлов компилятор выставляет флаг какой-то... Погоди, а зачем в компиляторе указывать что после компиляции нужно подписать файлы??? Пускай при компиляции ничего не подписывается и флаг никакой не выставится. А потом уж ручками каждый файл подписать. Муторно конечно каждый подписывать, но для уверенности выявления проблемы можно попробовать.

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

Что касается флага: он выставляется не при подписывании, а заодно с подписыванием. И не компилятором. Для тех файлов, которые компилируются из исходников, этот флаг ставится линковщиком. А для файлов, которые просто берутся в готовом виде (msvc*, OpenSSL и пр.), этот флаг выставляется утилитой editbin. Установка или неустановка этого флага зависит от выбранного режима подписывания, от включения/выключения харденинга и от ещё некоторых дополнительных условий. Так что я не могу просто взять и отключить этот флаг. Вернее, могу, но тогда перестанет корректно работать сборка с включённым харденингом и/или с полноценной подписью, и значит, я не смогу такую модификацию предложить в Oracle (чтобы не проделывать одну и ту же работу при выходе каждой новой версии). Кроме того, в MSDN говорится, что этот флаг в 64-битных драйверах обязан быть включённым. Что будет, если его выключить, не уточняется, то есть мне ещё и с этой особенностью придётся досконально разобраться, прежде чем модифицировать сборочные правила…
Автор: Aleksandr N
Дата сообщения: 26.01.2016 22:38

Цитата:
Судя по всему, ругается именно скрипт, пытающийся сделать VB портативным

Да, возможно это так, хотя в скрипте нет списка подгружаемях файлов. Но и в оригинальном дистрибутиве нет библиотек OpenSSL.

Цитата:
Windows при запуске любой программы по умолчанию ищет библиотеки сначала в каталоге с программой (где они у меня и лежат), потом в PATH.

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

В общем будем ждать когда скажешь что всё готово для тестов.
Автор: CaptainFlint
Дата сообщения: 26.01.2016 23:19
Aleksandr N

Цитата:
Да, возможно это так, хотя в скрипте нет списка подгружаемях файлов. Но и в оригинальном дистрибутиве нет библиотек OpenSSL.

Возможно, какие-то неявные завязки имеются. Я ж не знаю, что это за скрипт и что он делает.
В оригинальном дистрибутиве — да, OpenSSL вкомпилен статически. Но у меня не получилось сделать статическую версию, а при отлично работающей (в нормальных условиях) динамической я счёл излишним тратить кучу времени ещё и на эту особенность.


Цитата:
Это всем известный факт, но эти библиотеки лежат рядом, так что возможно в исходниках прописан относительный путь.

Не понял мысль. Если Windows и без того будет подгружать библиотеки из каталога VB, то какой смысл отдельно прописывать в исходниках точно такое же поведение, но уже явным образом?
Автор: Aleksandr N
Дата сообщения: 27.01.2016 16:39
CaptainFlint
Я не знаю... Сегодня подписал файлы из твоей последней сборки своим сертификатом выданный мне мной-же. Бокс замечательно запускается и работает... Но скрипт портативки всё так-же материться на отсутствие библиотеки OpenSSL...

Добавлено:
Может у тебя гранаты, ой, сертификат не той системы? Помнится когда я делал свой сертификат, выставлял в нём возможность подписания ПО. (Подписывание кода (1.3.6.1.5.5.7.3.3)) А в твоём сертификате я такой строки не нашёл...
Автор: CaptainFlint
Дата сообщения: 27.01.2016 21:26
Aleksandr N

Цитата:
Сегодня подписал файлы из твоей последней сборки своим сертификатом выданный мне мной-же. Бокс замечательно запускается и работает...

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


Цитата:
Может у тебя гранаты, ой, сертификат не той системы? Помнится когда я делал свой сертификат, выставлял в нём возможность подписания ПО. (Подписывание кода (1.3.6.1.5.5.7.3.3)) А в твоём сертификате я такой строки не нашёл...

Во-первых, я генерировал универсальный сертификат, без указания областей применения. В этом случае они не перечисляются явно, а просто все разрешены.
Во-вторых, на самом деле, это не имеет ни малейшего значения. 64-битная винда в нормальном режиме не примет такой сертификат, хоть разрешено в нём подписывание кода, хоть запрещено. 64-битная винда в тестовом режиме и 32-битная винда примут этот сертификат, опять-таки, независимо от наличия в нём этого разрешения. Разрешения играют роль лишь для полноценных сертификатов.
Автор: Aleksandr N
Дата сообщения: 27.01.2016 21:58
CaptainFlint
Насчёт принятия сертификата точно не могу сказать, не приходилось проверять. Возможно я тебя раньше не так понял... По-моему ответ на проблему создания дистрибутива очевиден. Сертификат нормальный не купить ибо дорого. Компилировать файлы с автоподписыванием бессмысленно ибо вообще ничего не работает, остаётся подписывать после ручками хоть и муторно...
Что дальше тебе делать сложно подсказать. Лично у меня 32-битный портативный вариант работает как подписанный так и не подписанный, что есть гуд. А главное запускается и нет защиты. Про 64-битный вариант не могу сказать.
Я-бы посоветовал выпускать эту сборку с появлением новых официальных версий так как они без защиты. А кому нужно будет, тот воспользуется твоей сборкой.
Автор: CaptainFlint
Дата сообщения: 27.01.2016 22:18
Aleksandr N

Цитата:
Компилировать файлы с автоподписыванием бессмысленно ибо вообще ничего не работает

В точности наоборот: компилировать с автоподписыванием — это единственный осмысленный вариант. Вот любой другой делать как раз бессмысленно: неподписанным пользоваться на 64-битках будет фактически невозможно, а подписывать ручками я точно не буду.
Поэтому я буду разбираться с флагом проверки подписи, выяснять, для чего он нужен на 64-битных системах и править сборочные скрипты, чтобы он выставлялся не всегда, а только тогда, когда действительно необходим.

На текущий момент, пока я с этим не разобрался, у нас есть два дистрибутива: кто пользуется 32-битной виндой, пусть берёт неподписанный (если хочет, сможет подписать сам, это на работоспособность абсолютно никак не повлияет — ни в лучшую, ни в худшую сторону); кто сидит на 64-битке, пусть берёт подписанный дистрибутив (выложенный на geektimes) и включает тестовый режим. В будущем, когда я разберусь с флагом, будет единый дистрибутив, объединяющий преимущества этих двух. Никакой другой меня не устроит.
Автор: Aleksandr N
Дата сообщения: 28.01.2016 07:29
CaptainFlint
Ладно, будем ждать от тебя готовый вариант. А вообще, спасибо за труды.
Автор: Sisin
Дата сообщения: 28.01.2016 20:30

Цитата:
Подскажите, пожалуйста, как избавиться от процесса VirtualBox.exe, который остается висеть в трее после выхода из портабельной сборки VirtualBox 5.0.14 r105127???


Цитата:
Делаешь батник со следующим содержимым: Код: TASKKILL /F /IM VirtualBox.exe /T и запускаешь от админа, а может и без админа прибъёт, не знаю с какими привилегиями он работает.


Решил проблему с помощью bat-файла, который кладется в папку с приложением:

Код: @echo off
setlocal ENABLEDELAYEDEXPANSION
Set Process=virtualbox
tasklist | Find /i "%Process%.exe" || (goto Else)
:THEN
TASKKILL /F /IM virtualbox.exe /T
Exit
Goto end
:ELSE
"%windir%\system32\cmd.exe" /C start /B /D .\ .\virtualbox.exe
Exit
Автор: Alex_Piggy
Дата сообщения: 30.01.2016 05:26
Доброе время
Aleksandr N
1. Посмотрите в depends http://www.dependencywalker.com/ что именно требует эти библиотеки. Если они нужны скрипту, то и лежать должны возле скрипта.
2. Если для VBox, то не надо копировать в системную папку! А тем более удалять. Попробуйте через переменную PATH после определения arch.

Код:
EnvSet ( "PATH" , @ScriptDir & ";" & @ScriptDir & "\" & $arch & ";" & EnvGet ("PATH") )
EnvUpdate()
Автор: unreal666
Дата сообщения: 30.01.2016 05:48
Sisin

Цитата:
Exit
Goto end

куда goto, если end нет? Тем более после exit.
Автор: CaptainFlint
Дата сообщения: 30.01.2016 12:50
Alex_Piggy
Сборка там смешанная, MSVC+MinGW, но конкретно эта часть собирается через MSVC. При статической сборке проблема вылезла не из-за нехватки чего-либо, а из-за конфликтов: OpenSSL сначала была влинкована в один из компонентов VB, а потом этот компонент совместно с тем же OpenSSL использовался для линковки чего-то ещё, и шла ругань на конфликты между одинаковыми символами. Наверное, это как-то решается, раз Oracle собирает статически, но у меня не было желания разбираться детальнее, чем это необходимо. Сам VB отлично работает, а что могло не понравиться какому-то там скрипту — вопрос десятый.
Автор: agasssy
Дата сообщения: 01.02.2016 22:26
Ребята, подскажите, такая проблема, увеличил размер диска гостевой винды, а в самой винде никакого нового пространства не появилось, даже не размеченного, что можно сделать?
Автор: Polo
Дата сообщения: 01.02.2016 23:57
agasssy, VirtualBox увеличиваем размер дисков

Автор: sundraw
Дата сообщения: 07.02.2016 10:52
Всем доброго времени суток!
Столкнулся с непонятной ситуацией. Обновляю VB 4.3.12 до 4.3.20. Установка идёт нормально, в конце идёт откат и выдаёт ошибку:

Требует обновления системы. Раньше такого не было. Сижу на надёжной Win 7 x64, обновляться нет желания. Это что-то новенькое от VirtualBox или что-то другое? Есть ли способ обойти? Дело в том, что VB после этого уже никакая не устанавливается.
Автор: thejustsoul
Дата сообщения: 07.02.2016 15:10
sundraw
Снести начисто (забекапив виртуалки (не обязательно, но на всякий) и конфиги) и снова поставить пробовали? Ошибка какая-то есть в логах? Или будем гадать на кофейной гуще? Почему именно древняя 4.3.20? Сейчас актуальная 5.0.14.
Автор: sundraw
Дата сообщения: 07.02.2016 18:59
thejustsoul
Да уже сносил с чисткой компа и реестра, не ставится. Грешил на обновления Windows, но когда поставил акронисом старый образ системы до обновлений, то же самое. Не думаю, что ошибка из-за переноса оси с HDD на SSD, но до этого всё нормально было, может что-то другое. Возможно, что-то в службах включил, что раньше было выключено. Попробовал ось поставить с нуля, всё нормально, без проблем, заморачиваться уже не буду с багами. Почему 4.3.20? Посмотрел в шапке, у неё нет проблем с NAT, в рабочей 4.3.12 иногда, не часто, сеть подвисает, но зато очень надёжная в остальном. На заре поработал с 5.0.2, совсем нехорошие впечатления. Здесь я уже писал об этом. Не хочется переделывать множество рабочих батников под новые команды, почему не оставить прежние, не понимаю.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499

Предыдущая тема: Программы для разработки, тестирования, оптических систем


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.