Bug 10457

Summary: Починить установку Гарант 7.09.1.019-local в winevanilla wine-1.7.38
Product: [Сторонние программы (Other programs)] Гарант Reporter: Danil Michailov <danil>
Component: ПрочееAssignee: Dmitry Timoshkov <dtimoshkov>
Status: CLOSED FIXED QA Contact: Danil Michailov <danil>
Severity: minor    
Priority: P4 CC: akv, dtimoshkov, lav
Version: не указана   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 10157    
Attachments: MovePathName

Description Danil Michailov 2015-03-11 16:22:17 MSK
Воспроизвести можно тут: 
1) Зайти в бутылку
swine --ssh -h winevanilla garant/7.09.1.019-local-2015
 wine --version
wine-1.7.37

2) Начать установку, далее, далее, ошибка:
<wine@winevanilla bottle garant/7.09.1.019-local-2015>$ wine f1setup.exe 
err:msi:ITERATE_Actions Execution halted, action L"CALLENTRY_Move.Main.Settings.To.Temp.Location.OnDeferred" returned 1603
err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1603

Установка заканчивается ошибкой "Установка завершена преждевременно".

Гарант тут:
/var/ftp/pvt/Windows/garant/7.09.1.019/local

Базы тут:
/var/ftp/pvt/Windows/Правовые/Гарант/7.09.0.130/new_big_base_29_08_2014/partner.garant.ru/distrib/GARANT/DATA
Comment 1 Dmitry Timoshkov 2015-03-11 16:50:51 MSK
По идее разработчику (т.е. мне) с этой задачей делать нечего, это чисто
механический поиск регрессии: http://wiki.winehq.org/RegressionTesting
Comment 2 Dmitry Timoshkov 2015-03-13 14:01:35 MSK
Для контекста привожу копию своего комментария к задаче 10157:
http://bugs.etersoft.ru/show_bug.cgi?id=10157#c18
============================================================================
(Ответ Danil Michailov на комментарий16)
> > Если установка работала в одной из предыдущих версий wine, то нужно провести
> > поиск регресси. Инструкции здесь: http://wiki.winehq.org/RegressionTesting
> 
> У меня нет информации работала ли когда-то Гарант под wine-vanilla
> Нашел только в сомнительном источнике что с нашим хаком работал не известный
> Гарант на wine-vanilla 1.0.10
> http://reatlat.blogspot.ru/2009/08/wine-etersoft.html

Этот "сомнительный источник" напрямую цитирует комментарии из
http://bugs.etersoft.ru/show_bug.cgi?id=156

При исследовании гарантовского установщика под официальным wine, выяснилось,
что при использовании +relay установщик начинает сообщать о совершенно другой
ошибке, на этот раз об отсутсвии необходимого языкового пакета установщика.
При этом +profile показывает, что без +relay GetPrivateProfile* спокойно
читает настройки из файла f1setup.ini (в котором видимо должны находиться
языковые настройки установщика), а с +relay GetPrivateProfile* не находят
этого файла. При чем файл f1setup.ini не существует в принципе. Его просто
нет. После многочисленных попыток выяснить причину этого поведения оказалось,
что установщик обернут в старый добрый Молебокс, который уже столько убил
времени и нервов при исследовании проблем с самим Гарантом. Видимо Молебокс
"виртуализирует" доступ к файлу f1setup.ini. Отключение трассировки в +relay
ntdll.* позволило обойти проблему с f1setup.ini.

Причина по которой установщик прерывает свою дальнейшую работу в том, что
он получает ошибку от SHFileOperation. Багзилла etersoft просто кишит багами
о Гаранте + SHFileOperation. При этом практически ни одина из этих багов не
содержит исчерпывающего описания проблемы, хотя большинство из этих задач
отмечены как решенные либо как дубликаты других решенных задач. Одна из
задач в которой есть хоть какая-то информация - это задача 1074. Хотя git
ветки eter-2.1 содержит несколько вариантов патчей для решения задачи 1074,
с этими патчами творится полный хаос: есть и реверты, есть и новые хаки.
Зато нет ни одного теста или попытки отправить исправления в официальный wine.

Но что более интересно, копирование файла dlls/shell32/shlfileop.c целиком
из eter-2.1 поверх этого же файла в wine-git не решают проблему с ошибками
SHFileOperation и установщик Гаранта продолжает завершаться с ошибкой.

Видимо исследование проблему нужно начинать с самого начала.
============================================================================
Comment 3 Dmitry Timoshkov 2015-03-13 14:02:11 MSK
К ошибке приводит следующий вызов SHFileOperation:

SHFILEOPSTRUCT shfo;
shfo.wFunc = FO_MOVE;
shfo.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT;
shfo.pFrom = "C:\\Program Files\\Garant Local\\settings\\*.*\0";
shfo.pTo = "C:\\Program Files\\Garant Local\\settings.tmp\\*.*\0";
SHFileOperation(&shfo);

Тест показывает, что этот же вызов так же заканчивается неудачей под Windows7.
При чем если убрать завершающий "\\*.*" из строки shfo.pTo, то SHFileOperation
успешно выполняет свою работу. Т.е. SHFileOperation в wine работает правильно.
Одной из причин неудачи может быть эти завершающие "\\*.*", но как именно
они попадают в результирующий буфер пока непонятно, к тому же похоже, что
Молебокс перехватывает и виртуализирует в том числе API из kernel32 и shell32,
поэтому вполне возможно, что это может быть и результатом работы Молебокса.
Comment 4 Dmitry Timoshkov 2015-03-16 14:06:42 MSK
(Ответ Dmitry Timoshkov на комментарий3)
> К ошибке приводит следующий вызов SHFileOperation:
> 
> SHFILEOPSTRUCT shfo;
> shfo.wFunc = FO_MOVE;
> shfo.fFlags = FOF_NOCONFIRMATION | FOF_NOCONFIRMMKDIR | FOF_NOERRORUI |
> FOF_SILENT;
> shfo.pFrom = "C:\\Program Files\\Garant Local\\settings\\*.*\0";
> shfo.pTo = "C:\\Program Files\\Garant Local\\settings.tmp\\*.*\0";
> SHFileOperation(&shfo);
> 
> Тест показывает, что этот же вызов так же заканчивается неудачей под
> Windows7.
> При чем если убрать завершающий "\\*.*" из строки shfo.pTo, то
> SHFileOperation
> успешно выполняет свою работу. Т.е. SHFileOperation в wine работает
> правильно.
> Одной из причин неудачи может быть эти завершающие "\\*.*", но как именно
> они попадают в результирующий буфер пока непонятно, к тому же похоже, что
> Молебокс перехватывает и виртуализирует в том числе API из kernel32 и
> shell32,
> поэтому вполне возможно, что это может быть и результатом работы Молебокса.

Анализ вызовов API предшествующих терпящему неудачу SHFileOperation
показал, что перед ним установщик Гаранта проверяет версию shell32.dll
с помощью GetFileVersion* API. Поэтому появилась идея протестировать
поведение SHFileOperation с вышеприведенным фрагментом под XP, возможно
эта проверка версии shell32 означает, что поведение этого API в разных
версиях Windows отличается. Мои ожидания не оправдались, SHFileOperation
в вышеприведенном тесте ведет себя одинаково под Windows7 и XP.

P.S.
Пришлось повозиться с восстановлением работоспособности virtualbox после
очередного обновления ядра altlinux, интересно, эти ребята вообще не
тестируют ядра перед публикацией?
Comment 5 Dmitry Timoshkov 2015-03-17 15:41:38 MSK
(Ответ Dmitry Timoshkov на комментарий4)
> Анализ вызовов API предшествующих терпящему неудачу SHFileOperation
> показал, что перед ним установщик Гаранта проверяет версию shell32.dll
> с помощью GetFileVersion* API. Поэтому появилась идея протестировать
> поведение SHFileOperation с вышеприведенным фрагментом под XP, возможно
> эта проверка версии shell32 означает, что поведение этого API в разных
> версиях Windows отличается. Мои ожидания не оправдались, SHFileOperation
> в вышеприведенном тесте ведет себя одинаково под Windows7 и XP.

После очередного раунда медитации над логами было решено пропустить шаг
с SHFileOperation и посмотреть, как установщик поведет себя дальше. Для
этого был приложен небольшой хак, заменяющий строку pTo содержащую *.*
на такую же, но без *.*. С этим хаком SHFileOperation завершается удачей,
но тем не менее установщик все так же сообщает об ошибке. Дальнейшее
исследование логов показало, что теперь виной этому терпящий неудачу
вызов RemoveDirectory(""C:\\Program Files\\Garant Local\\settings"),
который вызывается установщиком почти сразу после SHFileOperation.
Как оказалось, RemoveDirectory не может удалить директорию потому что
она не пустая, в ней остается вложенная директория, оставшаяся после
вызова SHFileOperation. И вот это уже реальный баг SHFileOperation.
Comment 6 Dmitry Timoshkov 2015-03-18 14:57:45 MSK
(Ответ Dmitry Timoshkov на комментарий5)
> После очередного раунда медитации над логами было решено пропустить шаг
> с SHFileOperation и посмотреть, как установщик поведет себя дальше. Для
> этого был приложен небольшой хак, заменяющий строку pTo содержащую *.*
> на такую же, но без *.*. С этим хаком SHFileOperation завершается удачей,
> но тем не менее установщик все так же сообщает об ошибке. Дальнейшее
> исследование логов показало, что теперь виной этому терпящий неудачу
> вызов RemoveDirectory(""C:\\Program Files\\Garant Local\\settings"),
> который вызывается установщиком почти сразу после SHFileOperation.
> Как оказалось, RemoveDirectory не может удалить директорию потому что
> она не пустая, в ней остается вложенная директория, оставшаяся после
> вызова SHFileOperation. И вот это уже реальный баг SHFileOperation.

Добавил тест, воспроизводящий проблему с SHFileOperation. Но пока
не получилось эту проблему исправить, так как мои изменеия в коде
ведут к неудачам в существующих тестах. Вызывает дополнительные
затруднения в понимании происходящего то, что имена файлов и
директорий в существующих тестах сбивают с толку, например test4.txt -
это имя вложенной директории и вовсе не файла как может показаться.
Пока не решил точно, но склоняюсь к тому, чтобы одним из первых шагов
удалить эту путаницу из тестов.
Comment 7 Dmitry Timoshkov 2015-03-19 13:07:16 MSK
(Ответ Dmitry Timoshkov на комментарий6)
> Добавил тест, воспроизводящий проблему с SHFileOperation. Но пока
> не получилось эту проблему исправить, так как мои изменеия в коде
> ведут к неудачам в существующих тестах.

Нашел довольно простое решение проблемы с SHFileOperation, которое
не ломает существующие тесты и упрощает код, перемещающий директории.
Отправил патчи с тестом и исправлением в wine-patches.

С моим исправлением и дополнительным хаком для SHFileOperation (установщик
вызывает его еще один раз с флагом FO_MOVE, но для других директорий)
установка Гаранта завершается успешно (остается открытым окно отладчика
с сообщением об ошибке, но похоже, что оно ни на что не влияет). При этом
в логе установки не видно ни малейшей попытки установить Flash, поэтому
направление дальнейших шагов по изучению этой проблемы пока неясны.

В продолжение исследования источника проблемы с неудачей SHFileOperation
нашел место в установщике, из которого выполняется проблемный вызов: это
обработчик msi action "MovePathName" из msihlp32.dll, который распаковывается
msi.dll во временный файл при установке. Исследование API вызовов из этого
DLL под wine в значительной мере затруднено из-за Молебокса. Можно будет
попробовать дизассемблировать эту DLL и постараться понять, что она делает
и почему.

> Вызывает дополнительные
> затруднения в понимании происходящего то, что имена файлов и
> директорий в существующих тестах сбивают с толку, например test4.txt -
> это имя вложенной директории и вовсе не файла как может показаться.
> Пока не решил точно, но склоняюсь к тому, чтобы одним из первых шагов
> удалить эту путаницу из тестов.

Путаницу с использованием имени test4.txt удалить не получится по той
причине, что это имя используется специально для тестирования флага
FOF_FILESONLY с маской test?.txt. Поэтому от этого шага пришлось
отказаться.
Comment 8 Vitaly Lipatov 2015-03-19 13:18:42 MSK
(Ответ Dmitry Timoshkov на комментарий7)
...
> Исследование API вызовов из этого
> DLL под wine в значительной мере затруднено из-за Молебокса. Можно будет
> попробовать дизассемблировать эту DLL и постараться понять, что она делает
> и почему.
Если нужен установщик, не завёрнутый в Молебокс, мы можем запросить его у Гаранта.
Если есть вопросы по коду, написанному Гарантом, можно запросить у них комментарии.
Comment 9 Dmitry Timoshkov 2015-03-19 13:43:04 MSK
(Ответ Vitaly Lipatov на комментарий8)
> > Исследование API вызовов из этого
> > DLL под wine в значительной мере затруднено из-за Молебокса. Можно будет
> > попробовать дизассемблировать эту DLL и постараться понять, что она делает
> > и почему.
> Если нужен установщик, не завёрнутый в Молебокс, мы можем запросить его у
> Гаранта.

Да, это было бы полезно попросить установщик без Молебокса.

> Если есть вопросы по коду, написанному Гарантом, можно запросить у них
> комментарии.

Если код обработчика "MovePathName" из msihlp32.dll написан Гарантом, то
было бы достаточным увидеть его исходник, или как минимум кусок, вызывающий
SHFileOperation(FO_MOVE).
Comment 10 Dmitry Timoshkov 2015-03-19 18:04:37 MSK
(Ответ Dmitry Timoshkov на комментарий9)
> > Если есть вопросы по коду, написанному Гарантом, можно запросить у них
> > комментарии.
> 
> Если код обработчика "MovePathName" из msihlp32.dll написан Гарантом, то
> было бы достаточным увидеть его исходник, или как минимум кусок, вызывающий
> SHFileOperation(FO_MOVE).

Ну и конечно же было бы неплохо спросить исходя из каких критериев
устанавливается Flash и почему он может не устанавливаться под Wine.
Comment 11 Dmitry Timoshkov 2015-03-20 13:10:36 MSK
(Ответ Dmitry Timoshkov на комментарий7)
> Нашел довольно простое решение проблемы с SHFileOperation, которое
> не ломает существующие тесты и упрощает код, перемещающий директории.
> Отправил патчи с тестом и исправлением в wine-patches.

Патчи с тестом и исправлением для SHFileOperation приняты.

> С моим исправлением и дополнительным хаком для SHFileOperation (установщик
> вызывает его еще один раз с флагом FO_MOVE, но для других директорий)
> установка Гаранта завершается успешно (остается открытым окно отладчика
> с сообщением об ошибке, но похоже, что оно ни на что не влияет). При этом
> в логе установки не видно ни малейшей попытки установить Flash, поэтому
> направление дальнейших шагов по изучению этой проблемы пока неясны.
> 
> В продолжение исследования источника проблемы с неудачей SHFileOperation
> нашел место в установщике, из которого выполняется проблемный вызов: это
> обработчик msi action "MovePathName" из msihlp32.dll, который распаковывается
> msi.dll во временный файл при установке. Исследование API вызовов из этого
> DLL под wine в значительной мере затруднено из-за Молебокса. Можно будет
> попробовать дизассемблировать эту DLL и постараться понять, что она делает
> и почему.

Сопоставление дизассемблированного кода "MovePathName" из msihlp32.dll
с relay логом пока ничего существенного не дало, изучать дельфийский код
в дизассемблере еще то удовольствие.
Comment 12 Konstantin Artyushkin 2015-03-20 14:00:20 MSK
Created attachment 3181 [details]
MovePathName

гарант прислал кусочек кода
Comment 13 Dmitry Timoshkov 2015-03-23 15:47:41 MSK
(Ответ Konstantin Artyushkin на комментарий12)
> Создано attachment 3181 [details]
> MovePathName
> 
> гарант прислал кусочек кода

Этот фрагмент кода подтвердил, что установщик Гаранта проверяет Product
Version из ресурсов shell32 и если версия ниже 4.0 добавляет *.* к пути,
передаваемому SHFileOperation. Патч, исправляющий версию в ресурсах shell32
и делающий все числа в соответствие версии shell32 из XP полностью решает
проблему с неудачами SHFileOperation. Этот патч отправлен в wine-patches.

Остаются два нерешенных вопроса:
1. исключение в конце установки (нефатальное)
2. установка плагина Flash не производится

На второй вопрос котелось бы получить хоть какую-то информацию от
разработчиков Гаранта.
Comment 14 Konstantin Artyushkin 2015-03-24 14:44:13 MSK
Скачал не молебоксную версию от гаранта
лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/

В папке apps есть файл FLASH.ocx.

Какую именно информацию нужно запросить у Гаранта по поводу установки flash?
Comment 15 Konstantin Artyushkin 2015-03-24 15:46:10 MSK
(Ответ Konstantin Artyushkin на комментарий14)
> Скачал не молебоксную версию от гаранта
> лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/
> 

Переименовал в /var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private чтобы не путаться
Comment 16 Dmitry Timoshkov 2015-03-24 17:21:55 MSK
(Ответ Dmitry Timoshkov на комментарий13)
> (Ответ Konstantin Artyushkin на комментарий12)
> > Создано attachment 3181 [details]
> > MovePathName
> > 
> > гарант прислал кусочек кода
> 
> Этот фрагмент кода подтвердил, что установщик Гаранта проверяет Product
> Version из ресурсов shell32 и если версия ниже 4.0 добавляет *.* к пути,
> передаваемому SHFileOperation. Патч, исправляющий версию в ресурсах shell32
> и делающий все числа в соответствие версии shell32 из XP полностью решает
> проблему с неудачами SHFileOperation. Этот патч отправлен в wine-patches.

Патч принят. Теперь установка Гаранта завершается успешно при выполнении
в официальном Wine.

> Остаются два нерешенных вопроса:
> 1. исключение в конце установки (нефатальное)

Пока непонятно, что является источником исключения, установщик Гаранта
пытается открыть с помощью RegOpenKey ключ реестра (в котором судя по
имени можгут находиться настройки или данные Гаранта), но этого ключа нет
в реестре, и RegOpenKey возвращает ошибку, сразу после этого происходит
исключение при доступе к памяти, но winedbg по какой-то причине не может
запуститься, и установка просто заканчивается.
Comment 17 Dmitry Timoshkov 2015-03-24 17:27:15 MSK
(Ответ Konstantin Artyushkin на комментарий14)
> Скачал не молебоксную версию от гаранта
> лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/
> 
> В папке apps есть файл FLASH.ocx.
> 
> Какую именно информацию нужно запросить у Гаранта по поводу установки flash?

Хотелось бы узнать на основании чего установщик принимает решение
устанавливать или нет плагин Flash, и что требуется для его установки.

Вот еще несколько вопросов:
1. Возможно Flash просто не включен в этот дистрибутив Гаранта?
2. Требует ли установка Flash наличия IE какой-то определенной версии или
проверяется какая-то определенная функциональность?
3. Возможно ли проверить установку Flash без установки всего Гаранта?
Comment 18 Dmitry Timoshkov 2015-03-25 03:11:03 MSK
(Ответ Konstantin Artyushkin на комментарий15)
> > Скачал не молебоксную версию от гаранта
> > лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/
> > 
> 
> Переименовал в /var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private
> чтобы не путаться

Permission denied.
Comment 19 Dmitry Timoshkov 2015-03-25 13:46:47 MSK
(Ответ Dmitry Timoshkov на комментарий18)
> (Ответ Konstantin Artyushkin на комментарий15)
> > > Скачал не молебоксную версию от гаранта
> > > лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/
> > > 
> > 
> > Переименовал в /var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private
> > чтобы не путаться
> 
> Permission denied.

Возможно ди как-то более оперативно решать такого рода проблемы?
Comment 20 Konstantin Artyushkin 2015-03-25 14:32:05 MSK
Новое место 

/var/ftp/tmp/akv/7_10_1_no-molebox/desktop-private
Comment 21 Dmitry Timoshkov 2015-03-26 11:52:45 MSK
(Ответ Konstantin Artyushkin на комментарий20)
> Новое место 
> 
> /var/ftp/tmp/akv/7_10_1_no-molebox/desktop-private

Что там должно лежать? Дистрибутив Гаранта, пригодный для установки? Уже
установленный гарант? setup.exe или что-то похожее там отсутствует, есть
garant.exe, при попытке выполнения которого выводится окно с ошибкой о
невозможности выполнить apps\winNT\F1ConsultingChecker.run. Такого файла
в директории apps\winNT действительно нет, хотя присутствует манифест
F1ConsultingChecker.run. При этом apps\win9X\F1ConsultingChecker.run
существует.

(Ответ Konstantin Artyushkin на комментарий14)
> Скачал не молебоксную версию от гаранта
> лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/
> 
> В папке apps есть файл FLASH.ocx.

Такого файла там нет. Похоже, что при копировании не хватило места на диске.
Comment 22 Dmitry Timoshkov 2015-03-26 11:57:11 MSK
(Ответ Dmitry Timoshkov на комментарий16)
> > Остаются два нерешенных вопроса:
> > 1. исключение в конце установки (нефатальное)
> 
> Пока непонятно, что является источником исключения, установщик Гаранта
> пытается открыть с помощью RegOpenKey ключ реестра (в котором судя по
> имени можгут находиться настройки или данные Гаранта), но этого ключа нет
> в реестре, и RegOpenKey возвращает ошибку, сразу после этого происходит
> исключение при доступе к памяти, но winedbg по какой-то причине не может
> запуститься, и установка просто заканчивается.

Продолжаю исследовать проблему с генерацией исключения в конце установки,
пока сложно сказать что-то определенное, но есть теория, что Молебокс по
какой-то причине не может вернуть или сгенерировать виртуальный путь из
реестра, возможно Wine не вызывает один из перехваченных API, может причина
в чем-то другом. Возможно причина и не в Молебоксе.
Comment 23 Konstantin Artyushkin 2015-03-26 12:29:25 MSK
(Ответ Konstantin Artyushkin на комментарий20)
> Новое место 
> 
> /var/ftp/tmp/akv/7_10_1_no-molebox/desktop-private

Давайте попробуем так : 
/var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private.r00
/var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private.rar

504 Мб после распаковки
Comment 24 Konstantin Artyushkin 2015-03-26 12:32:12 MSK
(Ответ Dmitry Timoshkov на комментарий21)
> (Ответ Konstantin Artyushkin на комментарий20)
> > Новое место 
> > 
> > /var/ftp/tmp/akv/7_10_1_no-molebox/desktop-private
> 
> Что там должно лежать? Дистрибутив Гаранта, пригодный для установки? Уже
> установленный гарант? setup.exe или что-то похожее там отсутствует, есть
> garant.exe, при попытке выполнения которого выводится окно с ошибкой о
> невозможности выполнить apps\winNT\F1ConsultingChecker.run. Такого файла
> в директории apps\winNT действительно нет, хотя присутствует манифест
> F1ConsultingChecker.run. При этом apps\win9X\F1ConsultingChecker.run
> существует.
> 
Столкнулся с такой же проблемой при попытке копировать в бутылку.

> (Ответ Konstantin Artyushkin на комментарий14)
> > Скачал не молебоксную версию от гаранта
> > лежит по адресу /var/ftp/pvt/Windows/garant/7_10_1/desktop-private/
> > 
> > В папке apps есть файл FLASH.ocx.
> 
> Такого файла там нет. Похоже, что при копировании не хватило места на диске.

Согласен - нету. При этом в pvt есть. Лучше наверно, архивом качать.
Comment 25 Dmitry Timoshkov 2015-03-26 12:48:26 MSK
(Ответ Konstantin Artyushkin на комментарий23)
> > /var/ftp/tmp/akv/7_10_1_no-molebox/desktop-private
> 
> Давайте попробуем так : 
> /var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private.r00
> /var/ftp/pvt/Windows/garant/7_10_1_no-molebox/desktop-private.rar
> 
> 504 Мб после распаковки

Так что же такое в этом архиве?
Comment 26 Konstantin Artyushkin 2015-03-26 13:34:23 MSK
(Ответ Dmitry Timoshkov на комментарий25)

> Так что же такое в этом архиве?

Та самая не молебоксаня версия Гаранта.
Comment 27 Dmitry Timoshkov 2015-03-26 13:53:40 MSK
(Ответ Konstantin Artyushkin на комментарий26)
> > Так что же такое в этом архиве?
> 
> Та самая не молебоксаня версия Гаранта.

Повторю свой вопрос еще раз:

(Ответ Dmitry Timoshkov на комментарий21)
> Что там должно лежать? Дистрибутив Гаранта, пригодный для установки? Уже
> установленный гарант?
Comment 28 Konstantin Artyushkin 2015-03-26 14:04:50 MSK
(Ответ Dmitry Timoshkov на комментарий27)
> > Что там должно лежать? Дистрибутив Гаранта, пригодный для установки? Уже
> > установленный гарант?

Уже установленный.

Ответный вопрос: Что нужно ждать?
Comment 29 Dmitry Timoshkov 2015-03-26 14:43:55 MSK
(Ответ Konstantin Artyushkin на комментарий28)
> > > Что там должно лежать? Дистрибутив Гаранта, пригодный для установки? Уже
> > > установленный гарант?
> 
> Уже установленный.
> 
> Ответный вопрос: Что нужно ждать?

В рамках данной задачи решается проблема с установкой Гаранта, в задаче 10157 -
с установкой Flash установщиком Гаранта, зачем нам уже установленный Гарант?
Comment 30 Konstantin Artyushkin 2015-03-26 17:05:53 MSK
(Ответ Dmitry Timoshkov на комментарий29)
о ждать?
> 
> В рамках данной задачи решается проблема с установкой Гаранта, в задаче
> 10157 -
> с установкой Flash установщиком Гаранта, зачем нам уже установленный Гарант?

Отлично. Какие на данный момент проблемы с установкой? Из прочитанного выше вижу, что есть какое-то исключение в конце установки. Можно задать вопрос в гарант, только надо сформулировать красиво.

По поводу Flash будем решать в другой баге.
Comment 31 Dmitry Timoshkov 2015-03-26 17:15:59 MSK
(Ответ Konstantin Artyushkin на комментарий30)
> > В рамках данной задачи решается проблема с установкой Гаранта, в задаче
> > 10157 -
> > с установкой Flash установщиком Гаранта, зачем нам уже установленный Гарант?
> 
> Отлично. Какие на данный момент проблемы с установкой? Из прочитанного выше
> вижу, что есть какое-то исключение в конце установки.

Константин, прочитайте пожалуйста все комментарии в этой задаче и найдите
объяснение, для чего нам нужен установщик Гаранта без Молебокса.

> Можно задать вопрос в
> гарант, только надо сформулировать красиво.

Пока не о чем спрашивать.
Comment 32 Konstantin Artyushkin 2015-03-26 17:28:23 MSK
(Ответ Dmitry Timoshkov на комментарий31)
> 
> Константин, прочитайте пожалуйста все комментарии в этой задаче и найдите
> объяснение, для чего нам нужен установщик Гаранта без Молебокса.

Может ещё кроссворды разгадывать начнём? Не нужен - так и скажите.
Из Гаранта написали нету молебоксных установщиков:

"Только вот что такое немолебоксенная версия установщиков - инсталлятор не молебоксится, молебоксится устанавливаемое содерджимое. Содержимое могу дать (скажите только, какая именно версия поставки интересует - локальная, ф-с, к-с, все и т.д.)" 

Содержимое и дали.

Ещё какие загадки будем разгадывать?
Comment 34 Dmitry Timoshkov 2015-03-27 11:28:20 MSK
(Ответ Konstantin Artyushkin на комментарий32)
> > Константин, прочитайте пожалуйста все комментарии в этой задаче и найдите
> > объяснение, для чего нам нужен установщик Гаранта без Молебокса.
> 
> Может ещё кроссворды разгадывать начнём? Не нужен - так и скажите.
> Из Гаранта написали нету молебоксных установщиков:

Установщик /var/ftp/pvt/Windows/garant/7.09.1.019/local совершенно точно
содержит обертку-виртуализатор. Это может быть и не Молебокс, а что-то
другое, но по логам поведение очень похоже на запуск уже установленного
Гаранта: тот же самопальный импорт-резолвер, тот же самый набор API для
перехвата из ntdll. Еще раз подчеркну - речь идет именно об установщике,
в рамках этой задачи решается проблема установщика.

Сотрудник Гаранта, отвечавший на запрос, может быть просто не в курсе.

> "Только вот что такое немолебоксенная версия установщиков - инсталлятор не
> молебоксится, молебоксится устанавливаемое содерджимое. Содержимое могу дать
> (скажите только, какая именно версия поставки интересует - локальная, ф-с,
> к-с, все и т.д.)" 
> 
> Содержимое и дали.

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

Еще раз повторю свой ответ на вопрос Виталия нужна ли мне для исследования
проблемы немолебоксная версия установщика Гаранта:
Да, мне нужен такой *установщик* Гаранта, без навесных пакеров/криптеров/
обфускаторов/виртуализаторов.
Comment 35 Dmitry Timoshkov 2015-03-27 12:14:29 MSK
Из-за сомнений в том, что действительно ли установщик Гаранта содержит
Молебокс, пришлось провести мини-исследование.

1. Действительно protection_id.exe (протестировано несколько версий)
не может найти и идентифицировать присутствие защиты ни f1setup.exe,
ни в запускаемых им языковых версиях установщика (en-us или ru-ru).
2. Аналогично, protection_id.exe не видит присутсвия Молебокса и в
установленном Гаранте (протестирована куча .exe, .run и .dll), хотя
Молебокс в установленном Гаранте присутствует на 100%. Это лишь
показывает, что protection_id.exe не панацея при определении наличии
защиты в PE .exe.
3. При этом логи запуска установленного Гаранта (с Молебоксом) и f1setup.exe
очень похожи: присутсвуют тот же список перехватов API из ntdll, тот же
алгоритм создания переходников API, те же обертки API, использующие
msvcrt.dll а не статически слинкованный C-runtime.

Поэтому я могу лишь подтвердить свое утверждение, что f1setup.exe
действительно содержит Молебокс (или что-то очень на него похожее).
Comment 36 Dmitry Timoshkov 2015-03-30 12:51:47 MSK
(Ответ Dmitry Timoshkov на комментарий22)
> > > Остаются два нерешенных вопроса:
> > > 1. исключение в конце установки (нефатальное)
> > 
> > Пока непонятно, что является источником исключения, установщик Гаранта
> > пытается открыть с помощью RegOpenKey ключ реестра (в котором судя по
> > имени можгут находиться настройки или данные Гаранта), но этого ключа нет
> > в реестре, и RegOpenKey возвращает ошибку, сразу после этого происходит
> > исключение при доступе к памяти, но winedbg по какой-то причине не может
> > запуститься, и установка просто заканчивается.
> 
> Продолжаю исследовать проблему с генерацией исключения в конце установки,
> пока сложно сказать что-то определенное, но есть теория, что Молебокс по
> какой-то причине не может вернуть или сгенерировать виртуальный путь из
> реестра, возможно Wine не вызывает один из перехваченных API, может причина
> в чем-то другом. Возможно причина и не в Молебоксе.

Исключение в конце установки может быть связано с попыткой установщика либо
соединиться с удаленным сервером, либо с попыткой установить дополнительные
базы. Где-то я уже видел упоминание подобной проблемы при завершении работы
установщика Гаранта. Пока дальнейшего прогресса нет.

Так как других задач пока нет, то продолжу работать над этой.
Comment 37 Danil Michailov 2015-03-30 21:06:37 MSK
Создана новая версия баги по актуальному Гаранту 7.10
http://bugs.etersoft.ru/show_bug.cgi?id=10484
Comment 38 Dmitry Timoshkov 2015-03-31 13:27:02 MSK
Я бы сказал, что задача скорее решена, чем недействительна. Основная
проблема с становкой была решена. Если Вы считаете, что оставшаяся
проблема с исключением в конце установки к этой задаче не имеет
отношения или вообще неинтересна - пусть будет так.
Comment 39 Vitaly Lipatov 2015-03-31 13:35:27 MSK
(Ответ Dmitry Timoshkov на комментарий38)
> Я бы сказал, что задача скорее решена, чем недействительна. Основная
> проблема с становкой была решена. Если Вы считаете, что оставшаяся
> проблема с исключением в конце установки к этой задаче не имеет
> отношения или вообще неинтересна - пусть будет так.
Проблема интересна, но только в контексте версии 7.10. Оказалось, что 7.09 не имеет актуальности.
Comment 40 Dmitry Timoshkov 2015-03-31 13:44:15 MSK
(Ответ Vitaly Lipatov на комментарий39)
> > Я бы сказал, что задача скорее решена, чем недействительна. Основная
> > проблема с становкой была решена. Если Вы считаете, что оставшаяся
> > проблема с исключением в конце установки к этой задаче не имеет
> > отношения или вообще неинтересна - пусть будет так.
> Проблема интересна, но только в контексте версии 7.10. Оказалось, что 7.09
> не имеет актуальности.

Тогда хотелось бы еще раз попросить версию установщика без молебокса (или
что там у них используется) для упрощения исследования проблем.
Comment 41 Danil Michailov 2015-03-31 20:31:31 MSK
(Ответ Dmitry Timoshkov на комментарий40)
> 
> Тогда хотелось бы еще раз попросить версию установщика без молебокса (или
> что там у них используется) для упрощения исследования проблем.

Вот тут версия Гаранта 7.10.1.004 без molebox (F1Setup.exe) :
/var/ftp/pvt/Windows/Правовые/Гарант/garant_7.10.1/no_molebox_installer/

А *.msi и *.cab и так незамолебокшены. (Ответ гаранта)
Comment 42 Danil Michailov 2015-11-30 13:26:38 MSK
Закрыто