Recentemente descobri que um programa proxy ( Clash for Windows ) que instalei no meu PC com Windows sempre se vincula a DLLs que não estão relacionadas à sua função.
Possui DLLs de FFmpeg, DirectX, OpenGL e Vulkan em seu diretório de instalação. E através do Process Explorer confirmei que ele realmente carrega essas DLLs (sempre FFmpeg, mas nem sempre todas as outras três).
Como mencionei, ele deve servir apenas como um programa proxy, e a única razão legítima (que consigo imaginar) pela qual ele carrega as DLLs de APIs gráficas de baixo nível é para aceleração de hardware de sua UI - mas não encontrei configurações relacionadas nele. Mais importante ainda, não consigo pensar numa razão que justifique o seu carregamento FFmpeg
.
O FFmpeg é conhecido por ser capaz de transmitir vídeos para um cliente remoto, e suspeito que o programa seja spyware - que usa APIs gráficas de baixo nível para capturar a tela e transmiti-la via FFmpeg.
Essa, claro, é minha especulação. Então, minhas perguntas são :
- As DLLs carregadas podem ser usadas de outras maneiras legítimas nas quais não pensei?
- Existe alguma maneira de investigá-lo mais a fundo para obter evidências decisivas de que se trata de spyware?
- O programa só foi executado como usuário normal no meu PC. Se fosse realmente spyware, quanto dano ele poderia ter causado e como eu poderia mitigar os danos (por exemplo, que tipos de backdoors ele poderia ter deixado como usuário normal)?
Agradeço sinceramente qualquer informação que você forneça e seu tempo de antecedência.
Pela aparência geral do aplicativo em suas capturas de tela oficiais, bem como pela presença
en-US.pak
eGPUCache
em sua lista de DLL (ou seja, não apenas "cache de GPU" em geral, mas esse nome específico ), vou adivinhar que a interface do programa foi escrita em algo que usa CEF (possivelmente Electron ) – o primeiro é "Chrome Embedded Framework", que é essencialmente apenas o navegador Chrome empacotado em algo que se parece com um aplicativo, enquanto Electron é CEF + NodeJS.(É uma opção extremamente popular atualmente. Por exemplo, Discord usa CEF via Electron; VSCode e Steam usam CEF diretamente; Dropbox usa CEF via QtWebEngine... é por isso que você fica sem RAM.)
CEF sendo literalmente Chrome-in-a-box, toda a interface do aplicativo é uma "página da web" HTML/CSS/JS e ainda possui os mesmos recursos que o Chrome normalmente teria: a renderização HTML acelerada por GPU (com shaders CSS e outros coisas sofisticadas), o suporte à reprodução de vídeo (o Chrome usa FFMPEG para tags <video>) e assim por diante.
No entanto, pode não ser necessariamente a IU inteira; também existem aplicativos que só precisam incorporar uma visualização da web para alguma finalidade específica (como uma tela de login ou um documento de ajuda), e quase sempre acabarão usando o CEF por meio do QtWebEngine ou do WebView2 da Microsoft.
Você pode reconhecer o CEF a partir dos vários
.pak
arquivos que ele usa para seus ativos internos; a pasta nomeadaGPUCache
também é um sintoma do uso do CEF. (No momento, meu diretório de usuários no Linux tem vinte e quatro diretórios 'GPUCache' separados, cada um pertencente a um aplicativo diferente que é totalmente baseado em CEF ou apenas usa CEF para alguma finalidade específica.)