- Da die Explorer-Abstürze stark zunahmen, suchte man nach der Ursache und entdeckte im Stack einen Funktionszeiger, der Malware ähnelte
- Nachforschungen ergaben jedoch, dass es keine Malware, sondern ein Uninstaller war
- Nach dem Beenden wartet der Uninstaller darauf, seine eigene Binärdatei zu löschen (Self Deleting)
- Dieser Code verwendete eine Methode, die vor 10 Jahren auf CodeProject vorgestellt wurde
- Vermutlich musste eine Funktion einer bestimmten DLL aufgerufen werden, doch dabei kam es zu einer Umleitung (Detour)
- Um sich selbst zu löschen, sollte man nicht wie hier Code in einen anderen Prozess (Explorer) einschleusen oder umleiten, sondern stattdessen eine temporäre Datei wie
cleanup.js verwenden, etwa so
- Dieser Code löscht sich selbst und versucht außerdem 20 Sekunden lang, den Uninstaller zu löschen
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 Kommentare
Ich erinnere mich noch an die Zeiten, als man solche Programme zum Entfernen von Rückständen benutzt hat ...
Trotzdem habe ich Hoffnung, weil sich heutzutage auch die Paketverwaltung unter Windows nach und nach weiterentwickelt. +_+
Ich glaube, ich habe das Wort „hochgradig“ ziemlich oft verwendet. Eine hinreichend fortschrittliche Wissenschaft ist von Magie nicht zu unterscheiden.
Der Titel des Beitrags stammt von einem Zitat des berühmten Science-Fiction-Autors Sir Arthur C. Clarke.
Hacker-News-Kommentare
wscripts, die aufgrund von Code-Signing oder der fehlenden Möglichkeit zur Verifizierung vor der Ausführung als Malware profiliert werden könntenLD_PRELOAD