Jump to content

    
SM

DxDesigner под Windows может "убить себя" при первом же запуске.

Recommended Posts

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

Начало было многообещающим - инсталлятор сделал все без ошибок. Запустился LibraryManager. Даже ЦБ открыл. Более того, удалось сделать даже Cell. Однако, после вызова меню с "Create new Symbol" (или как-то так, дословно не помню), вылетело окошко с очень странной ошибкой "CLSIDFromProgId code is not S_OK", после чего он еще раза три-четыре чем-то ругнулся про какие то Key Bindings, и умер. Танцы и бубны (перезагрузки, переустановки, разные версии) никак и ничему не помогали. Попутно выяснилось, что, собственно, и запуск DxD приводит к тому же с той же ошибкой.

1451605570_2021-12-1923_27_09-C__MentorGraphics_EEVX.2.6_SDD_HOME_common_win64_bin-Far3.0_5700_0x64.png.43be50d8ed849d7a422c4bf43c0dd446.png

 

Поиск в гугле по этой ошибке на дал ничего вразумительного - пара каких-то китайских страничек с советами, в которых проглядывает некий ReleaseSwitcher.exe. Понятно - не один я такой значит. Попробовал и это - нашел его, запустил, не помогло.  И один подобный вопрос нашелся, оставшийся без ответа, в открытом доступе у поддержки. Пришлось вспоминать свои особые навыки по пробуриванию разных программ до самых их недр. Первым делом, раз такая ошибка, решил помониторить вызовы Windows API в части COM, и посмотреть, что же именно это за ошибка. Оказалось, что он (viewdraw.exe, он же DxD, он же редактор символов) пытается узнать CLSID для программы "Viewdraw.Appication.83" (83 - код версии для VX.2.6), и обламывается, так как такого нету. Редактор реестра подтвердил - в натуре, нету. Дальнейшие раскопки показали, что, действительно, ReleaseSwitcher.exe, запущенный с разрешением внесения изменений в систему, восстанавливает все пропадающие из реестра записи, и эту в том числе. А запуск DxD - их совершенно тупо и нагло СТИРАЕТ, вот прямо через Windows API RegDeleteKey (тоже отследил) - то есть, грубо говоря, "застреливается".  Сразу! Первым делом при запуске! А потом тут же пытается найти этот ProgID, и, конечно же, безуспешно, ведь он только что стёр его сам. Очень странное поведение программы, при условии что она, вроде как, не троянская. И иного объяснения, кроме как что это "закладка" для несложного самоубийства DxD на отдельно взятой машине, я не нахожу...

Залез я в редактор реестра, и посмотрел разрешения для пользователей на весь куст HKEY_CLASSES_ROOT. Увидел там, что у объектов безопасности "Все" и "Система" стоят разрешения на всё-всё-всё. "Всем" сделал только чтение, и добавил "Администраторов", которым можно всё. В итоге viewdraw.exe перестал застреливаться, ибо этот "бронежилет" оказался для него не пробиваем. DxD и редактор символов заработали. Я убил кучу своего времени. Какие разрешения должны стоять на этом кусте реестра по умолчанию в виндовс, я без понятия, и я не знаю, менял ли их тут кто-то, или нет. Но, факт, что я не первый с этой проблемой.

Итого - если вдруг у кого такое будет - знайте, это DxD чистит реестр от нужных ему ключей. В нем зачем-то запрограммировано самоубийство, если у него есть достаточно доступа для этого. Поможет восстановление разделов и ключей  при помощи ReleaseSwitcher.exe и, затем, изменение в regedit прав доступа к кусту HKEY_CLASSES_ROOT с целью отрубить туда доступ этому злодейскому куску программы.

А я сам как работал под линуксом, так и буду. Ибо там такого не предусмотрено :)

 

Share this post


Link to post
Share on other sites
6 hours ago, SM said:

 

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

 

Какой апдейт у вас для VX2.6? Откуда брали дистрибутив ? Какая операционная система ?Лицензия своя или ломанная ?

с официальными дистрибутивами я такого не встречал никогда.

- Open a DOS/command prompt window (Start>Run>'cmd')
- Run the c:\MentorGraphics\win32\configurator -clean command
- Remove the SDD_USELOCALENV (system defined) variable
- Run the c:\MentorGraphics\win32\configuratorcommand

Такое решение написано в центре поддержки 

3 hours ago, варп said:

Надо тему иначе назвать... Поиск "DxD под Windows" вот куда посылает...-

https://www.google.com/search?q=DxD+под+Windows&rlz=1C1IXYC_ruKZ973KZ973&source=lnms&tbm=isch&sa=X&ved=2ahUKEwj5m6a7sfH0AhXxlIsKHfeHD4EQ_AUoAnoECAEQBA&biw=1024&bih=635&dpr=1

Здесь вроде ветка целая посвящена этому  и все в курсе о чем речь )

Share this post


Link to post
Share on other sites
2 hours ago, PBO said:

Какой апдейт у вас для VX2.6? Откуда брали дистрибутив ? Какая операционная система ?Лицензия своя или ломанная ?

Дистрибутивы местные отсюда. Пробовал на версиях EE VX.2, VX2.2, VX2.6, VX2.7 (все без апдейтов),  и VX2.7 upd 7. Все win64. Лицензия совершенно всё равно какая, это делается до первого обращения к ней, можно даже вообще без лицензии. Это действо происходит в самый начальный момент запуска viewdraw.exe, еще до открытия его главного окна.

 

2 hours ago, PBO said:

- Remove the SDD_USELOCALENV (system defined) variable

А такой и нету, и не было.

 

2 hours ago, PBO said:

- Run the c:\MentorGraphics\win32\configurator -clean command
- Run the c:\MentorGraphics\win32\configuratorcommand

Во первых, в C:\MentorGraphics нету папки win32, и win64 тоже нету, там всё это гораздо глубже лежит. Во вторых, я понял о чем речь, и это ровно тоже самое, что делает ReleaseSwitcher.exe, если его попросить переключиться с текущей версии на эту же. То есть это восстанавливает записи в реестре, но потом DxD все равно их убьет, если ему на это хватит прав.

 

2 hours ago, PBO said:

с официальными дистрибутивами я такого не встречал никогда.

Судя по косвенным признакам, доступа на то, чтобы ему стереть что-то в HKCR, по умолчанию в Windows быть не должно, поэтому эта ситуация очень редкая. Иначе бы легко нагуглилось, и было бы давно устранено производителем. Если им, конечно, это не задумано - а то как в принципе объяснить то, что приложение пытается что-то тереть в HKCR? Это же жесть! Туда обычным приложениям совершенно не положено лазать с такой целью!

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

 

Share this post


Link to post
Share on other sites
12 minutes ago, SM said:

Дистрибутивы местные отсюда. Пробовал на версиях EE VX.2, VX2.2, VX2.6, VX2.7, VX2.7 upd 7. Лицензия совершенно всё равно какая, это делается до первого обращения к ней, можно даже вообще без лицензии. Это действо происходит в самый начальный момент запуска viewdraw.exe, еще до открытия его главного окна.

 

А такой и нету, и не было.

 

Во первых, в C:\MentorGraphics нету папки win32, и win64 тоже нету, там всё это гораздо глубже лежит. Во вторых, я понял о чем речь, и это ровно тоже самое, что делает ReleaseSwitcher.exe, если его попросить переключиться с текущей версии на эту же. То есть это восстанавливает записи в реестре, но потом DxD все равно их убьет, если ему на это хватит прав.

 

Судя по косвенным признакам, доступа на то, чтобы ему стереть что-то в HKCR, по умолчанию в Windows быть не должно, поэтому эта ситуация очень редкая. Иначе бы легко нагуглилось, и было бы давно устранено производителем. Если им, конечно, это не задумано - а то как в принципе объяснить то, что приложение пытается что-то тереть в HKCR? Это же жесть! Туда обычным приложениям совершенно не положено лазать с такой целью!

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

 

А какая винда у вас ?

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

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

4808499D-F6A7-4382-A5D9-55CF5032A49A.jpeg

Share this post


Link to post
Share on other sites
16 minutes ago, PBO said:

А какая винда у вас ?

8.1 совершенно официальная со всеми апдейтами.

 

16 minutes ago, PBO said:

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

Именно так. Был раньше открыт, о чем я и сказал сразу. И, да, именно это привело к этим последствиям. Но, простите, какого чёрта?! Еще раз - ни одно приложение виндовс не должно даже пытаться лазать в HKCR для модификации через API доступа в реестр в принципе! Ну кроме вирусов и троянов. Да и даже для чтения не должно напрямую лазать. Это сугубо системный куст реестра, один на всех пользователей. Хочу, открываю себе туда доступ, хочу - закрываю!

 

16 minutes ago, PBO said:

а как вы раньше на этом компе работали ?

Спокойно и непринуждённо. Я на нем писал драйверы ядра для Windows и прочее окружение для них, собирал андроид-приложение, собирал софт для embedded под DSPic и MSP430, собирал мелкие латисовские ПЛИСы, собираю и тестирую всё, что связано с JTAG эмуляторами Sauris, включая тесты на всех версиях техасского кодекомпозера, запускал простые аналоговые симуляции в микрокапе, и еще чего только не делал. Лет 8 уже ему, наверное. А может и 10. По всем командировкам я с ним. Да и открыл я этот доступ себе, наверное, когда-то я сам, когда писал какой нибудь инсталлятор, чтобы облегчить отладку, и успешно забыл об этом. Этот доступ не должен приводить ни к чему такому, если нет вирусов и троянов.

 

Share this post


Link to post
Share on other sites

В таком случае тогда понятно. 
в обычной ситуации такого и не возникло бы никогда. Можно отрапортовать конечно в ментор но они попросят шаги для воспроизведения . И если им сказать что я сам специально изменил доступы в реестры чтобы вызвать эту ошибку звучит как то не очень )) 

вря ли этот случай будет рассматриваться ментором для исправления. 

Это исключение исключения так сказать )

И ещё один нюанс - начиная с версии 2.7 ,Windows 8 официально уже не поддерживается , это не значит что он не заведётся , но значит то что на это оси этот релиз уже не тестировался 

Share this post


Link to post
Share on other sites
6 minutes ago, PBO said:

Можно отрапортовать конечно в ментор но они попросят шаги для воспроизведения .

Да не было у меня такой цели. Я отписался просто для того, чтобы если вдруг еще кто нарвется (а судя по результатам гугля - я не первый из троих-четверых :) ), то он нашел бы, как с этим бороться. Кстати, это не только в EE, а и в Pads, а кто-то в инете нарвался в Libero - то есть везде, где есть viewdraw или интеграция с ним.

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

 

11 minutes ago, PBO said:

И если им сказать что я сам специально изменил доступы в реестры чтобы вызвать эту ошибку звучит как то не очень ))

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

 

Share this post


Link to post
Share on other sites
1 minute ago, SM said:

Да не было у меня такой цели. Я отписался просто для того, чтобы если вдруг еще кто нарвется (а судя по результатам гугля - я не первый из троих-четверых :) ), то он нашел бы, как с этим бороться. Кстати, это не только в EE, а и в Pads, а кто-то в инете нарвался в Libero - то есть везде, где есть viewdraw или интеграция с ним.

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

 

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

 

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

Но спасибо за то что вы отписались и мы теперь возможно знаем настоящую причину такого поведения 
 

Share this post


Link to post
Share on other sites

Не, ну доступ-доступом, но откуда у софта вообще берется "желание" удалять свои ключи из реестра? Это же кто-то предусмотрел получается? "Проверить права доступа - если могу - самоудалиться". Ну бред какой-то... Еще могу понять, когда такое делает деинсталлятор, но просто один из программных модулей пакета? Или программисты вообще в код не заглядывают и не знают, что там прописано?:) Как получили его когда-то так и не трогают?

Share this post


Link to post
Share on other sites
10 minutes ago, Uree said:

Не, ну доступ-доступом, но откуда у софта вообще берется "желание" удалять свои ключи из реестра? Это же кто-то предусмотрел получается?

Вот и я про тоже. Одно дело, если бы в своей ветке [HKLM|HKCU]/Software/Mentor Graphics/ , а совсем-совсем другое дело в HKCR.

Share this post


Link to post
Share on other sites
12 minutes ago, PBO said:

Вполне возможно и так ))

Да стопудово. Судя по косвенным признакам, это там сидит еще от Viewlogic ViewDraw. И наверняка для какой нибудь Windows 3.1 или 95 имело некий смысл :) :)

Share this post


Link to post
Share on other sites
2 hours ago, PBO said:

Я просто ни разу не устанавливал дистрибутивы отсюда, только официальные.

Тут и лежат официальные "as is". А "все остальное" - отдельно.

 

2 hours ago, PBO said:

Но тем неё менее эта проблема так же есть и в центре поддержки

Однозначно окажется и там, что проблема в этом же - DxD при старте убил свой раздел реестра HKCR\Viewdraw.Application.XX (где XX - код версии). Он там заодно и еще несколько убивает - например Viewlogic.KeyBindings.XX, и т.п., но при этом не трогает соответствующие им разделы без "XX" в конце.

Мы теперь знаем, что это, и почему. Но не знаем, зачем :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.