- En cherchant la cause d’une forte hausse des crashs de l’Explorateur, on a trouvé dans la pile un pointeur de fonction ressemblant à quelque chose de similaire à un malware
- En creusant, il s’est avéré que ce n’était pas un malware mais un programme de désinstallation
- Une fois terminé, le programme de désinstallation attend de pouvoir supprimer son propre binaire (self-deleting)
- Ce code utilisait une méthode présentée sur CodeProject il y a 10 ans
- Il fallait probablement appeler une fonction d’une certaine DLL, mais cela s’est produit parce qu’elle avait été détournée (
Detour)
- Pour se supprimer soi-même, au lieu d’injecter du code ou de faire un détournement dans un autre processus (l’Explorateur), mieux vaut utiliser un fichier temporaire comme
cleanup.js, comme ci-dessous
- Ce code se supprime lui-même et tente aussi de supprimer le programme de désinstallation pendant 20 secondes
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 commentaires
Je me souviens de l’époque où j’utilisais des programmes pour nettoyer les résidus…
Cela dit, comme Windows améliore peu à peu ses outils de gestion de paquets de nos jours, j’en attends beaucoup. +_+
J’ai l’impression qu’on a beaucoup utilisé le mot « hautement ». Une science suffisamment avancée est indiscernable de la magie.
Le titre de l’article vient d’une célèbre citation de l’écrivain de science-fiction Arthur C. Clarke.
Commentaire Hacker News
wscripts, qui peut être catalogué comme malware en raison de l’absence de signature de code ou de la difficulté à vérifier son comportement avant exécutionLD_PRELOADsous Linux