Pessoal,
resolvi documentar aqui tudo o que tentei para rodar o UltraViewer no Linux via Wine, porque vejo muita gente perguntando e as respostas costumam ficar no “funciona / não funciona” sem explicar o porquê.
Já adianto o resumo:
Conclusão:
O UltraViewer não funciona no Linux via Wine e não é por falta de dependência ou configuração.
O bloqueio é estrutural, porque o software depende de Windows Services reais, algo que o Wine não implementa.
Abaixo está o caminho completo até chegar a essa conclusão.
Ambiente usado
Linux (base Ubuntu / Linux Mint)
Wine 9.0
Winetricks 20240105
Arquitetura x86_64
Prefixos Wine limpos e isolados (testei mais de um)
1) Tentativa direta (Wine “normal”)
Comecei pelo básico:
wine UltraViewer_setup_6.6.124_en.exe
Problemas encontrados:
ExtractTemporaryFile: The file was not found
Erros relacionados a COM / RPC
O instalador não concluía
Isso já indicava que o instalador não era algo simples.
2) Identificação e extração do instalador
Analisei o executável e identifiquei que ele usa Inno Setup:
strings UltraViewer_setup_6.6.124_en.exe | grep -i inno
Extraí manualmente:
innoextract UltraViewer_setup_6.6.124_en.exe
Isso permitiu acessar diretamente os binários reais do programa.
3) Análise dos binários extraídos
Arquivos principais encontrados:
UltraViewer_Desktop.exe
UltraViewer_Service.exe
uv_x64.exe
Várias DLLs relacionadas a .NET
Verificando os executáveis:
file UltraViewer_Desktop.exe
file UltraViewer_Service.exe
file uv_x64.exe
Resultado:
UltraViewer_Service.exe: Mono/.NET assembly (IL-only)
uv_x64.exe: Mono/.NET assembly 64-bit
O Desktop é basicamente só a interface gráfica
Aqui já ficou claro que o UltraViewer depende fortemente de .NET.
4) Resolvendo o runtime (.NET)
Instalei o runtime necessário dentro do prefixo Wine:
Testei Wine-Mono (builtin)
Forcei Mono via winetricks
Instalei .NET Framework 4.8 via winetricks
winetricks dotnet48
Depois disso:
mscoree.dll passou a existir
Os erros de runtime desapareceram
O executável passou a iniciar
Ou seja: não era mais problema de dependência.
5) Onde tudo quebra de vez (serviço Windows)
Ao executar o serviço principal:
wine UltraViewer_Service.exe
O erro retornado foi:
Windows Service Start Failure
A Windows Service must first be installed and then started
Analisando os logs, o programa tenta:
CreateService
StartService
Comunicação via RPC / Service Control Manager
Esse é o ponto final.
Por que não tem como avançar
O UltraViewer depende de um Windows Service real para funcionar, pois é esse serviço que cuida de:
Captura de tela
Hook de teclado/mouse
Sessão remota persistente
Privilégios elevados
Isso exige:
Service Control Manager
RPC
COM/DCOM
Integração profunda com o Windows
O Wine não implementa serviços Windows reais (limitação conhecida do projeto).
Mesmo com:
Todas as DLLs corretas
.NET funcionando
Arquitetura certa (32/64-bit)
O serviço não pode ser instalado nem iniciado.
(ESSE TEXTO PARECE DE CHATGPT POR QUE ELE É, USEI PRA ORGANIZAR E ESTRUTURAR MEU PENSAMENTO DE COMO TRANSMITIR O QUE FIZ. SEM JULGAMENTOS, ESPERO AGREGAR A TODOS)
Já tentou usar alternativas multiplataforma como o rustdesk
Ou vc precisa desse programa de qualquer maneira?
Boa tarde, precisava especificamente desse, mas tudo bem, ja contornei o problema com uma maquina windows, resolvi na verdade publicar por motivos que nao achei nenhum topico aqui falando disso, e foi onde eu vim pra ver se tinha resposta, talvez ajude mais alguem que possa precisar, ai pra nao ficar so no não funciona resolvi publicar na íntegra! kkkkk
Eu não sei o motivo de você precisar especificamente do UltraView., mas enfim. O Anydesk e o Teamviewer funciona nativamente. Caso queira conectar via RDP em uma máquina windows existe o Remina(Ele também é cliente SSH e VNC).
É só pq o lix.. da empresa de suporte do sistema trabalha somente com ele, creio ser só por questão de valor de licenciamento!
Troca de fornecedor
Licitação meu amigo… licitação… nada é tão simples.