17 pontos por GN⁺ 2023-09-14 | 5 comentários | Compartilhar no WhatsApp
  • Como os travamentos do Explorer aumentaram muito, ao investigar a causa foi encontrado na pilha um ponteiro de função parecido com o de um malware
  • Depois de investigar, descobriu-se que não era malware, e sim um uninstaller
  • Quando o uninstaller termina, ele fica esperando para apagar seu próprio binário (Self Deleting)
    • Esse código usava um método apresentado no CodeProject há 10 anos
  • Provavelmente precisava chamar a função de alguma DLL, mas isso acabou sendo desviado (Detour), causando o problema
  • Para se apagar, em vez de fazer injeção de código ou desvio em outro processo (Explorer), use um arquivo temporário como cleanup.js, como abaixo
    • Esse código apaga a si mesmo e também tenta apagar o uninstaller por 20 segundos
var fso = new ActiveXObject("Scripting.FileSystemObject");  
fso.DeleteFile("C:\\Users\\Name\\AppData\\Local\\Temp\\cleanup.js");  
  
var path = "C:\\Program Files\\Contoso\\contoso_update.exe";  
for (var count = 0; fso.FileExists(path) && count < 40; count++) {  
    try { fso.DeleteFile(path); break; } catch (e) { }  
    WSH.Sleep(500);  
}  

5 comentários

 
[Este comentário foi ocultado.]
 
kuroneko 2023-09-14

Lembro daquela época em que eu usava programas para remover resíduos... Ainda assim, hoje em dia até o Windows está melhorando aos poucos seus gerenciadores de pacotes, então estou otimista. +_+

 
botplaysdice 2023-09-14

Acho que usaram muito a expressão "altamente". Ciência suficientemente avançada é indistinguível de magia.

 
xguru 2023-09-14

O título do texto vem de uma frase do famoso escritor de ficção científica Sir Arthur C. Clarke.

"Any sufficiently advanced technology is indistinguishable from magic."
"Qualquer tecnologia suficientemente avançada é indistinguível de magia."

 
GN⁺ 2023-09-14
Opinião do Hacker News
  • Discussão sobre as semelhanças entre desinstaladores avançados e malware, com foco em executáveis que se autodestroem
  • Fornecimento de um link para um projeto de código que inclui o código de um executável que se autodeleta
  • O autor sugere que o binário parece malware porque se apaga sozinho, entra em espera e interage com o desinstalador
  • Debate sobre a solução proposta, questionando se ela é melhor do que a original e se julga malícia usando heurísticas ruins
  • Alguns comentários questionam por que programas do Windows precisam de instaladores/desinstaladores especiais e por que isso não é tratado pelo próprio Windows
  • Menção ao uso de wscripts, que pode ser classificado como malware por causa da assinatura de código ou da incapacidade de verificar antes da execução
  • Levantado o conceito de "detour", comparado ao comando LD_PRELOAD do Linux
  • Recordação de um app simples para Windows 95/98 que adicionava todos os diretórios à lista de desinstalação sem que o antivírus percebesse
  • Alguns comentaristas expressam preferência pela abordagem do AmigaOS, em que os apps ficam em pastas independentes e podem ser instalados ou removidos facilmente
  • O artigo termina com o fato surpreendente de que o Windows suporta a execução de JavaScript como script de shell