17 puntos por GN⁺ 2023-09-14 | 5 comentarios | Compartir por WhatsApp
  • Como los crashes del Explorador estaban aumentando drásticamente, al buscar la causa encontré en la pila un puntero de función parecido al de un malware
  • Investigando más, resultó que no era malware sino un desinstalador
  • El desinstalador, al terminar, espera para borrar su propio binario (Self Deleting)
    • Este código usaba un método presentado en CodeProject hace 10 años
  • Probablemente tenía que llamar a una función de alguna DLL, pero eso fue desviado (Detour) y por eso ocurrió
  • Para borrarse a sí mismo, en vez de hacer inserción de código o desvíos en otro proceso (el Explorador), usa un archivo temporal como cleanup.js, así:
    • Este código se borra a sí mismo e intenta borrar también el desinstalador durante 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 comentarios

 
[Este comentario fue ocultado.]
 
kuroneko 2023-09-14

Recuerdo aquellos tiempos en que usaba programas para eliminar residuos... Aun así, hoy en día Windows también está mejorando poco a poco sus gestores de paquetes, así que tengo expectativas. +_+

 
botplaysdice 2023-09-14

Creo que usaron mucho la palabra "altamente". Una ciencia suficientemente avanzada es indistinguible de la magia.

 
xguru 2023-09-14

El título del artículo proviene de una frase del famoso escritor de ciencia ficción Sir Arthur C. Clarke.

"Any sufficiently advanced technology is indistinguishable from magic."
"Cualquier tecnología suficientemente avanzada es indistinguible de la magia."

 
GN⁺ 2023-09-14
Comentarios en Hacker News
  • Debate sobre la similitud entre desinstaladores avanzados y malware, con foco en ejecutables que se autodestruyen
  • Se proporciona un enlace a un proyecto de código que incluye el código de un ejecutable que se elimina a sí mismo
  • El autor sugiere que el binario parece malware porque se borra a sí mismo, entra en suspensión e interactúa con el desinstalador
  • Debate sobre la solución propuesta, cuestionando si es mejor que la original y si juzga la malicia usando heurísticas deficientes
  • Algunos comentarios cuestionan por qué los programas de Windows necesitan instaladores/desinstaladores especiales y por qué esto no lo maneja el propio Windows
  • Se menciona el uso de wscripts, que podría ser perfilado como malware por su firma de código o por la imposibilidad de verificarlo antes de ejecutarlo
  • Se plantea el concepto de "detour", comparándolo con el comando LD_PRELOAD de Linux
  • Recuerdo de una app simple para Windows 95/98 que añadía todos los directorios a la lista de desinstalación sin que el software antivirus lo notara
  • Algunos comentaristas expresan preferencia por el enfoque de AmigaOS, donde las apps son carpetas independientes que se pueden instalar o eliminar fácilmente
  • El artículo termina con el sorprendente hecho de que Windows soporta ejecutar JavaScript como script de shell