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

» VMware ThinApp (formerly Thinstall) 3

Автор: gvozdik
Дата сообщения: 26.10.2015 12:02
Proshaa
Не всё так однозначно, как кажется на первый взгляд. Возьмите любую программу от Akvis и попробуйте запретить ей обращение к временным ключам реестра, она просто не запустится.
Любая программа обращающаяся к какому-либо ключу и не находящая его, будет стремиться или создать этот ключ или найти его в системе, в противном случае просто не запустится.
Автор: NickOnToluca
Дата сообщения: 26.10.2015 12:02
Proshaa
Но надо проверить, как софтина отреагирует, если она даже создать запись не может.
Если ее это не беспокоит, то норм. Если беспокоит, то уж лучше удалять при выходе.
Автор: Proshaa
Дата сообщения: 26.10.2015 12:59
gvozdik
а вам удалось запустить аквисы под ThinApp?
я не пробовал старые, но последние с офсайта запакованы, и запускаться не хотят.
NickOnToluca
проверить, конечно, надо. и, возможно, для некоторых это не сработает. но уверен - в большинстве случаев такого приёма будет вполне достаточно.

UPD
увы, должен признать - с реестром работает не так, как ожидалось
нужно ещё проверить работу с файлами, позже отпишусь по результатам

UPD-2
AVanti473
http://forum.ru-board.com/topic.cgi?forum=55&topic=11671&start=3460#12
это решение - калька с блога Peter Bjork, опубликованного им в 2013 году )))
собственно, у Бьёрка я и нашёл deleted и ещё кое-какие вкусняшки.

с офисными монстрами проблема в их привязке к железу, а ни по вашей ссылке, ни у Бьюрка, ни на хомяке решения нет, т.к. предполагается легальная регистрация.
Автор: gvozdik
Дата сообщения: 26.10.2015 15:47
Proshaa
Я речь вёл именно о старых версиях. Много чего перепробовал, но остановился на подмене даты запуска. Все игры с изоляцией ветвей реестра, никакого положительного результата не давали.
Автор: AVanti473
Дата сообщения: 26.10.2015 15:54
Proshaa

Цитата:
с офисными монстрами проблема в их привязке к железу


Это возможно уже всем известно.


Цитата:
т.к. предполагается легальная регистрация.


Так там вроде регистрация через локальный виртуальный сервер... Другой вопрос в том, что как раз некоторые ключи офиса автор отвязывает параметром delete. Вполне возможно, что это и есть та самая отвязка от железа...
Автор: Proshaa
Дата сообщения: 26.10.2015 17:25
gvozdik
киньте в меня какой-нибудь аквис без упаковки - посмотрю, что можно сделать.
для версий 2012 в общем-то у меня есть КГ, но интересно попробовать побороть именно средствами ThinApp.

AVanti473
конечно, всем давно известо, что мелкомягкие всеми силами стараются привязаться к железу, и последнее, что было практически не привязано - это Win-98. с каждым разом они делают привязку всё изощрённее ))
"там" регистрация через официальный KMS-сервер

Цитата:
For KMS licensing activation:

<Setting Id="KMSSERVICENAME" Value="kmsserver.domain.com" />

вопрос об отвязке от железа вообще не стоит, т.к. "там" ThinApp используют по прямому назначению, т.е. это решение для корпоративной сети.

Цитата:
Вполне возможно, что это и есть та самая отвязка от железа...
бурная же у вас фантазия. или вы наивно полагаете, что Microsoft сейчас на уровне Alawar-2006, когда "триальность" игр определялась парой ключей в реестре?

для чего был придуман параметр "deleted" я писал выше. объясню ещё раз: вместо того, чтобы удалять (и потом, если понадобится, снова прописывать кучу ключей в разделе реестра) - достаточно прописать deleted на корень ветки. это быстрый способ закомментировать раздел.
isolation_full для этого не годится, т.к. если существует подключ он будет использовать свою, а родительская будет распостраняться только на родителя.
Автор: gvozdik
Дата сообщения: 26.10.2015 18:21
Proshaa
Давно всё на свалке.
У меня портабелизированная версия 4.5, но она грамотно взломана и оригинального дистрибутива нет.
Автор: Proshaa
Дата сообщения: 26.10.2015 23:59
ещё один недокументированный префикс реестра isolation_sb_only
какая от него польза? а никакой. это ран-тайм ключ, он появляется, если вы (или сама программа) удалите значение в реестре во время работы программы.
ну, и зачем я всё это пишу? а затем, что при декомпиляции .tvr он вполне может попасть в сборку.

все эти недокументированные ключики, фичи и т.д. кому-нибудь полезны-интересны? или?
Автор: AVanti473
Дата сообщения: 27.10.2015 00:04
Proshaa

Цитата:
все эти недокументированные ключики, фичи и т.д. кому-нибудь полезны-интересны? или?


Полезны? Не знаю. Интересны - однозначно! Не были бы интересны, не переспрашивали бы и не уточняли!
Автор: AVanti473
Дата сообщения: 29.10.2015 12:20
Proshaa
По поводу того самого deleted, скажите, вы пробовали его в ThinApp v5.1.1 Build 2722044 ?
Спрашиваю потому, что у меня, при тесте на WinXP, на виртуальной машине, самой сборке было наплевать на значение deleted, и триальный ключик прекрасно создавался с необходимым значением, хотя необходимая ветка имела значение deleted...
P.S. В процессе сборки никаких ошибок по синтаксису ThinApp не обнаружила.
Автор: Proshaa
Дата сообщения: 29.10.2015 18:51
AVanti473
я уже писал об этом

Цитата:

UPD
увы, должен признать - с реестром работает не так, как ожидалось
нужно ещё проверить работу с файлами, позже отпишусь по результатам

т.е. на самом деле этот ключ работает только на этапе компиляции: ключ, помеченный deleted изначально в сборке отсутствует, но никаких препятствий программе для его создания нет. более того, если на ветку с этим ключом не настроена родительская изоляция - "выйдет" в реал.

убедиться в этом несложно: закоментируйте в Package.ini disabled для regedit и загляните в реестр до запуска основной программы или после удаления песочницы - deleted-ключа там не будет.
так что, увы - с триалом придётся бороться другими методами. самый простой, но далеко не самый "умный" - удаление песочницы. имхо, красивей и грамотней - удалять триальные ключи скриптом при старте или завершении. это несложно.
Автор: freedaw
Дата сообщения: 29.10.2015 20:37
AVanti473

Цитата:
триальный ключик прекрасно создавался с необходимым значением, хотя необходимая ветка имела значение deleted...

Сейчас тоже попробовал и таки да, ключ из реального реестра при значении deleted сборка не видит, но сама его создать у себя в виртуале может.
Получается, что разница между full и deleted в следующем:
1) при изоляции full системный ключ будет не виден для сборки, но ключ с таким именем всё равно будет присутствовать в виртуале сборки (либо пустой, либо с другими параметрами - смотря как пропишите его в ini-шнике);
2) при параметре ключа deleted системный ключ также будет не виден для сборки, но ключа с таким именем изначально уже не будет в виртуале сборки, хотя он может быть создан впоследствие самой сборкой, если она того пожелает.
Иногда, по каким-либо причинам, вариант 2 может оказаться необходим.

Также параметр deleted можно использовать для скрытия файлов реальной системы.
Основной механизм изоляции файловой системы в ThinApp оперирует сразу целыми папками, а что делать если нужен другой (более жёсткий) режим изоляции только для некоторых файлов в папке реальной системы, а всё остальное содержимое чтоб оставалось доступным для чтения или даже записи?
Вот тут и поможет параметр deleted применительно к конкретным файлам. Фактически, как я понял, он позволяет применить аналог изоляции full к выбранным файлам в папке реальной системы, изоляция которой в проекте задана как WriteCopy или Merged.
При этом поведение сборки аналогично как и для ключей реестра, а именно:
- файл реальной системы, помеченный как deleted, сборка не видит, но создать сама файл с таким же именем может и есть два варианта событий: 1) если изоляция всей папки WriteCopy, то файл создаётся в виртуале и сборка его видит; 2) если изоляция всей папки Merged, то файл создаётся в реальной папке системы, но сборка его, по-прежнему, не видит (вот такой парадокс).
Резюмируя всё вышеизложенное, параметр deleted помогает скрыть от сборки существующие в реале файлы и ключи, но не спасает от их создания в реале или виртуале самой сборкой.
Испытывал всё вышеизложенное на версии 4.7.3 в Win7x64 - возможно, в более новых или старых будут свои нюансы (или глюки).
Автор: Proshaa
Дата сообщения: 29.10.2015 21:56
freedaw
пара уточнений:

Цитата:
2) при параметре ключа deleted системный ключ также будет не виден для сборки

на самом деле, ключ просто не будет создан при сборке. но если в процессе работы сборка такой ключ создаст - она его прекрасно увидит.

Цитата:
- файл реальной системы, помеченный как deleted, сборка не видит

тут имеет значение, где прописано это самое deleted. если в реестре (deleted HKEY_LOCAL_MACHINE\FS\....) тогда всё так, как вы описываете.
Автор: AVanti473
Дата сообщения: 29.10.2015 21:57
freedaw

Цитата:
при параметре ключа deleted системный ключ также будет не виден для сборки, но ключа с таким именем изначально уже не будет в виртуале сборки.......... Иногда, по каким-либо причинам, вариант 2 может оказаться необходим.
Также параметр deleted можно использовать для скрытия файлов реальной системы.


Пожалуй, мой скромный опыт мне подсказывает, что так оно и есть. Proshaa, freedaw, благодарю Вас, что прояснили ситуацию в этом вопросе. Теперь я понял суть одного сообщения в сети на инглише. Похоже там была не оговорка, либо не точный перевод, а имелось в виду то, что я процитировал выше. Запутано всё, но, разобраться можно... Суть сводилась к тому, что автор сначала использовал изоляцию full с разъяснениями, а затем применил для ветки Тулбара Internet Explorer значение deleted, но при этом пояснил, что виртуальный Internet Explorer будет видеть значение этой ветки в реальной системе...
Автор: Proshaa
Дата сообщения: 29.10.2015 22:11
AVanti473
вот это? [more]
Ignoring Local System Registry Keys

For local system registry entries, it's back to basics as we really just need to either set the appropriate isolation on the registry entries in most cases. In some cases, though, we may not want the registry keys or entries to be present inside the Virtual Environment whether or not they exist on the physical.

This is easy done for whole Registry Keys and all of their subvalues and can do this one of two ways:

Create the Registry Key and Fully Isolate it.

Backup the appropriate project registry hive text file.

Create the registry key in the appropriate registry hive text file within the project

Do not create any subvalues

Set isolation on the registry key in step 1 to FULL

As an example (below), I'll use Internet Explorer again, only this time I want to ensure the "virtual" copy doesn't load any toolbars which may reside in the physical Windows environment.

isolation_full HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Toolbar

Save the registry hive text file.

Rebuild your project and test.



Mark the Registry Key as Deleted

Backup the appropriate project registry hive text file.

Create a line entry in the appropriate registry hive text file within the project.

Do not create any subvalues.

Do not set isolation on the registry key in step 1 – rather set the value "deleted" in front of the registry key (see example).

As an example (below), I'll use Internet Explorer again, only for this example, I wish to have the "virtual" Internet Explorer load the local system's Toolbars from the physical Windows envrironment.

deleted HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Toolbar

Save the registry hive text file.

Rebuild your project and test.
[/more]

здесь суть сводится к тому, что эффект одинаковый в обоих случаях
Автор: AVanti473
Дата сообщения: 29.10.2015 23:03
Друзья, скажите, кто в курсе, почему ThinApp упорно виртуалит следующие (ну или соответствующие) ветки реестра, независимо от их режима изоляции в проекте? :


Код: [HKEY_LOCAL_MACHINE\Software]

[HKEY_LOCAL_MACHINE\Software\Thinstall]

[HKEY_LOCAL_MACHINE\Software\Thinstall\ProcessList]
"1604"="C:\\WINDOWS\\system32\\svchost.exe"

[HKEY_LOCAL_MACHINE\Software\Thinstall\RuntimeObjects]

[HKEY_LOCAL_MACHINE\Software\Thinstall\RuntimeObjects\Notifications]

[HKEY_LOCAL_MACHINE\Software\Thinstall\StubProcessList]

[HKEY_LOCAL_MACHINE\Software\Thinstall\SxS]
"Platform"=dword:0a280105

[HKEY_LOCAL_MACHINE\Software\Thinstall\VirtualObjectNamespace]
Автор: Proshaa
Дата сообщения: 29.10.2015 23:43
AVanti473
во-первых не виртуалит, а это рабочие ключи оболочки, сюда он записывает "для себя" - чего запустила и другую служебную информацию.
изоляции реестра тут вообще без разницы. зачем там merged? прога работает с реестром?
если нет - достаточно writecopy.
единственное, что имеет смысл проверить, это отсутствие в HKEY_LOCAL_MACHINE.txt веток, связанных с HKEY_LOCAL_MACHINE\SYSTEM\ControlSet*** и HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, в частности - подветок ...\Tcpip\Parameters.

если этого будет недостаточно, попробуйте запускать ехе с параметром /s

P.S. отключение DHSP-клиента не сработает, если инет идёт например через модем, а не через лан. или IP жёстко прописан в настройках сетевухи.
Автор: AVanti473
Дата сообщения: 30.10.2015 06:41
Proshaa

Цитата:
отключение DHSP-клиента не сработает, если инет идёт например через модем, а не через лан


Работает. Проверял на сетке, потом на буке вырубал так инет (который через) WiFi, и, через USB модем 4G тоже вырубается за милую душу. Таким образом, делаю вывод, что это, хоть и полумера, но работает. Во всяком случае, ничего гиблого во временном отключении службы DHSP-клиента не вижу.

А вот останавливать, казалось бы логичные службы:
Сетевые подключения
Рабочая станция
Служба сведений о подключённых сетях
Вспомогательная служба IP
DNS-клиент

оказалось бесполезным и бессмысленным. В самом лучшем случае просто исчезнет инфа о сетях из центра управления сетями, но инет останется. Или, если даже инет вырубится, то, при первом же запросе сетевого адреса, автоматом полключится. А менять режимы запуска этих служб, дело ещё более тупиковое.
Казалось бы можно вырубить службу:
Служба интерфейса сохранения сети
Но, без отрубания DHSP-клиента и всех выше перечисленных, её всё равно не остановить.

Так что, логичный выход - DHSP-клиент.


Цитата:
это рабочие ключи оболочки


Да, это всё понятно... Как сделать так, чтобы они не виртуалились, а попадали бы в реальную ОС? Хотя бы:
HKEY_LOCAL_MACHINE\Software\Thinstall\ProcessList
и
HKEY_LOCAL_MACHINE\Software\Thinstall\SxS

----------

Хотя бог с ним, кажется придумал решение... Эти езешники, включающие и выключающие службу, надо вынести в реальную ОСь, и стартовать их не напрямую, а тоже сторонним исполнительным файлом из сборки. Получится, что вроде бы как будет запуск дочернего процесса, который по настройкам Package.ini произойдёт в реале. Таким образом, видимо, всё должно получиться, так как непосредственно сама сборка, запускать службы не будет...
Автор: Proshaa
Дата сообщения: 30.10.2015 11:59

Цитата:
Да, это всё понятно... Как сделать так, чтобы они не виртуалились, а попадали бы в реальную ОС?

так понятно или как сделать?
никак они не попадут в реальную ось. да и не нужны они там. это всего лишь внутренние переменные, не имеющие ничего общего с реальным реестром.

Цитата:
Так что, логичный выход - DHSP-клиент.

насчёт логичности - спорить не буду, т.к. не знаю, что за программа и зачем ей такие изыски с сетью. несколько удивляет другое: вы столько внимания уделили постскриптуму, при этом слона-то и не заметили ))
Автор: jiko
Дата сообщения: 31.10.2015 03:41
Подскажите пожалуйста степень сжатия как можно увеличить до масимум .
В изоляции тоже какой командой так что система чистая была .
Спосибо .

Стоить следующее ...
[Compression]
CompressionType=Fast

[Isolation]
DirectoryIsolationMode=Merged
Автор: inok_ZP
Дата сообщения: 31.10.2015 09:41
jiko
Версия для печати Ctrl+F OptimizeFor=Disk

Похоже мануал ты не читал.
Автор: Evgenii724
Дата сообщения: 31.10.2015 19:40

Цитата:
Стоить следующее ...
[Compression]
CompressionType=Fast


Попроще обьясню, добавь OptimizeFor=Disk, что бы выглядело так:
[Compression]
CompressionType=Fast
OptimizeFor=Disk

Если посоветуют вписать еще BlockSize=256k или 512k и 1m то выигрыша в сжатии почти не будет а только приведут к проблемам.
Автор: jiko
Дата сообщения: 01.11.2015 01:17
Просто интересный момент открытый снимок сделанный ThinApp 5.1 пакую Winrar 5 / 7-Zip 9.20 занимает на 15-20% меньше чем готовый упакованный в ThinApp 5.1 ?
Где здесь фишка ...
Автор: Proshaa
Дата сообщения: 01.11.2015 10:30
jiko
а ничего, что ThinApp - это не архиватор, а виртуальная машина с собственной средой?
Автор: Vsevolod
Дата сообщения: 03.11.2015 15:44
Просветите меня, решил сделать свой первый проект, так что везде всё по умолчанию.
Взял диск с установочной програмой, сделал прескан, установил программу, запустил программу, постскан, создал портативку (2 файла exe и dat).
Удалил программу и запустил портативку, программа выдаёт, что не может создать папку и вылетает. Что я сделал не так?
Автор: Satanachia
Дата сообщения: 03.11.2015 16:17
Vsevolod
Скорее всего не читали справочную информацию для начинающих, по виртуализации приложений.
Папка песочница стремится в пользовательский раздел, а там видимо нет разрешения, вот и все.
Автор: Vsevolod
Дата сообщения: 03.11.2015 16:30
А что в шапке называется справочной информацией для начинающих?

Добавлено:
Руководство пользователя я смотрел, но бегло.

Добавлено:
Режим изоляции Merged меня спасёт?
Автор: Satanachia
Дата сообщения: 03.11.2015 16:49

Цитата:
Режим изоляции Merged меня спасёт?

Вас спасет не беглое ознакомление с мануалами.
Начните отсюда FAQ, статьи, обзоры: Далее [?]( шапка.)
Автор: Vsevolod
Дата сообщения: 05.11.2015 15:26
Перелопатил мануалы, перепробовал по-разному. Ничего не выходит.

Цитата:
Папка песочница стремится в пользовательский раздел, а там видимо нет разрешения, вот и все.

Это же собственная папка пользователя, как же нет доступа-то?


Цитата:
Начните отсюда FAQ, статьи, обзоры: Далее( шапка.)

Начал, даже взял несколько частей темы назад перечитал. Явно чего-то упускаю, но не могу понять чего. Намекните
Автор: bumburbia
Дата сообщения: 05.11.2015 16:17
Vsevolod
Цитата:
Намекните

Это к ясновидящим, вы бы лучше сообщили, что за программа, может с её портабелизацией не всё просто.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149

Предыдущая тема: Проблемы с закачкой


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