luggi
Goto Top

Dateiname wurden in (o.O)neuerDateiname.neueExtension verändert

Die neuen Dateinamen wurden aus den ehemaligen Dateinamen gebildet. jeder Name beginnt mit (o_O).
jedes Zeichen des alten Namens wurde gegen den eigenen Hexcode+1 ausgetauscht a wird b, b wird c usw. inclusive Extension (.exe wird .fyf, .pdf wird .qeg). Nummern und Sonderzeichen wurden nicht geändert.
Beispiel: uedit32.exe wurde zu vfeju32.fyf

gestern tauchten auf dem PC meines Kollegen oben genannte Dateiennamen statt der üblichen auf der Oberfläche auf. Bei genauerem Nachprüfen erstreckte sich das Dilemma über den ganzen PC und auf einige Verzeichnisse auf dem Datenserver. Es wurden nur Dateien und keine Verzeichnisse umbenannt. Ursache unbekannt.
Betriebssystem Win2000 Workstation. Server: Win2000 Server mit Virenscanner von Symantec Enterprice-Version.
Für den Server gibts eine Datensicherung, aber nicht für die Workstation.

Wer kennt die Ursache oder ist damit schon behelligt worden.
Gibt es eine Abhilfe, die Dateien wieder umzubenennen.

Content-ID: 50165

Url: https://administrator.de/contentid/50165

Ausgedruckt am: 26.11.2024 um 09:11 Uhr

bastla
bastla 30.01.2007 um 19:05:05 Uhr
Goto Top
Hallo luggi!

Hört sich ja ziemlich übel an ...

Zum "Reparieren" der Dateinamen könnte ich das folgende Script (ohne Gewähr - Verwendung auf eigene Gefahr) anbieten:
'RepairFileNames.vbs  
Set fso = CreateObject("Scripting.FileSystemObject")  
If WScript.Arguments.Count < 1 Then
	WScript.Echo "Aufruf mit " & WScript.ScriptFullName & " Ordnername"  
	WScript.Quit
End If
sFolder = WScript.Arguments(0)
If fso.FolderExists(sFolder) Then
	Process sFolder
	WScript.Echo "Fertig."  
Else
	WScript.Echo sFolder & " ist kein gültiger Ordnername."  
End If
Wscript.Quit

Sub Process(sFolder)
On Error Resume Next
Set oFolder = fso.GetFolder(sFolder)
For Each oSubFolder in oFolder.SubFolders
    Process oSubFolder
Next
For Each oFile in oFolder.Files
	sOldName = oFile.Name
	If Left(sOldName, 5) = "(o_O)" Then  
		L = Len(sOldName)
		sNewName = ""  
		For i = 6 To L
			cChar = Asc(Mid(sOldName, i, 1))
			If cChar >= 66 And cChar <= 91 Or cChar >= 98 And cChar <= 123 Then
				cChar = cChar - 1
			End If
			sNewName = sNewName & Chr(cChar)
		Next
		WScript.Echo oFile.Path & " ----- " & sNewName  
		oFile.Name = sNewName
	End If
Next
End Sub
Speichern als "RepairFileNames.vbs" (zB in C:\Scripts), aufrufen von der Kommandozeile aus über
cscript //nologo C:\Scripts\RepairFileNames.vbs D:\Test > D:\RepairFileNamesLog.txt
wobei D:\Test ein Ordner ist, dessen Inhalt (und auch jener ev Unterordner) nach Dateinamen mit "(o_O)" an den ersten 5 Stellen durchsucht wird. Gefundene Dateien werden nach dem Schema "Buchstabe um eins runter" umbenannt, wobei in dieser Fassung nur die Buchstaben von "A" bis "Z" und von "a" bis "z", aber keine Umlaute etc berücksichtigt werden (und natürlich wird "(o_O)" entfernt).

Für jede umbenannte Datei wird eine Zeile ausgegeben (siehe Anweisung "WScript.Echo ...") und bei der oben beschriebenen Form des Aufrufs in eine Logdatei geschrieben. Falls dies nicht gewünscht wäre, einfach vor "WScript.Echo ..." ein Apostroph (') setzen.

HTH und alles Gute
bastla
Biber
Biber 30.01.2007 um 19:40:54 Uhr
Goto Top
hmmmm....

Ausnahmsweise würde ich da im Moment keine Skripte kaufen lassen...

Sondern
a) Netzwerkverbindung trennen und getrennt lassen
b) Rechner nur anschalten, wenn ich eine geeignete "saubere" Boot-CD eingelegt habe
c) und das auch nur, wenn ich Programme laufen lassen will, die dieses Joke-Programm lokalisieren können (SpyBot S&D, Avira, TrendMicro).

Dieses Hase-und-Igel-Umbenennen hat vorher keinen Sinn, und wenn Du Pech hast, wird Dir die RepairFilenames.vbs unterwegs in O_oRepairFilenames.wct umbenannt.

Abgesehen davon ist wahrscheinlich gar keine CScript.exe mehr da zum *.vbs ausführen.

Das Per-Skript-Reparieren kannst Du statt heute genausogut am nächsten Dienstag machen, oder wann immer der Schädling entfernt ist.

Heute wäre es so sinnvoll wie eine Motorwäsche während eines Sandbahnrennens.

Gruß
Biber
luggi
luggi 31.01.2007 um 19:14:14 Uhr
Goto Top
hallo bastla,

erst mal danke für dein Script.
ich komme morgen wieder ins Büro um dein Script auszutesten.
Wie es aussieht, haben wir einen Exoten eingefangen.
In den entsprechenden Foren war nirgens ein brauchbarer Hinweis oder ein derartiger Befall vermerkt.

Logischerweise werde ich ensprechend nach Bibers Anweisung vorher den PC gründlich absuchen.
Ich hatte übrigens sofort am abgekoppelten PC nach Malware gesucht mit Adaware und
Spybotsd aber nichts auffälliges gefunden.
Meine Kollegin hat den Server mittlerweile mit dem Backup restauriert.
Die Workstation steht noch zur Säuberung an.
Erst mal danke für eure Hilfe.

Luggi
luggi
luggi 18.02.2007 um 20:54:15 Uhr
Goto Top
Das Problem ist nun beseitigt.
Mit Virenscannern und Malware-Suchern wurde kein Schadensprogramm gefunden.
Durch verschiedene Tests und beobachten der Prozessliste haben wir den Verursacher herausgefunden und beseitigt: Im Verzeichnis c:\windows hatte sich GMM.EXE eingenistet.
Nach Löschen von GMM.EXE war endlich Ruh.
Das script hat wunderbar funktioniert.

Nochmals Danke an alle Helfer.
Luggi