Ich möchte euch hier kurz erklären, wie ihr ganz einfach den MD5-Hash einer oder mehreren RAR-Dateien ändern könnt. Mit dieser Methode wird nicht direkt der Inhalt der Datei verändert, sondern lediglich am Ende ein 0-Byte an das RAR-File angehängt (hat keinen Einfluss auf den Inhalt).
Wozu soll das gut sein?
User die öfter mal Dateien bei Rapidshare oder ähnlichen One-Click Hostern hoch laden, wissen, dass diese Hoster die Dateien welche als illegal gemeldet wurden, anhand der MD5-Hash-Werte sperren. Somit kann die gleiche Datei nicht erneut hoch geladen werden. Abhilfe schafft meist nur ein Repack und eine Veränderung des Inhalts. Es geht jedoch auch einfacher…
Anwendung unter Linux:
Unter Linux kann die Hash-Summe mit folgendem Code-Schnipsel verändert werden:
for ln in *.rar ; do
echo -en „\x00“ >> „$ln“
done
Dieser Code wird im Terminal ausgeführt, und zwar in dem Ordner, wo sich die RAR-Datei befindet. Es können so auch mit einem Schlag mehrere RAR-Dateien gleichzeitig bearbeitet werden.
Unter Ubuntu kann zur einfacheren Anwendung auch das Paket „nautilus-open-terminal“ installiert werden (über Ubuntu Software-Center), womit sich direkt im Ordner – wo sich die RAR-Files befinden – das Terminal aufrufen lässt. Damit die Änderung Wirkung zeigt, muss Ubuntu neu gestartet werden.
Anwendung unter Windows:
Unter Windows ist das ganze etwas komfortabler, da man hier einfach die Registrierung um ein paar Zeilen erweitern muss, womit ein neuer Kontextmenü-Eintrag erzeugt wird.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WinRAR\shell\md5hs]
@=“MD5-Hash ändern“[HKEY_CLASSES_ROOT\WinRAR\shell\md5hs\command]
@=“cmd.exe /c ECHO.>> \“%1\““[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\md5hs]
@=“MD5-Hash ändern“[HKEY_CLASSES_ROOT\WinRAR.ZIP\shell\md5hs\command]
@=“cmd.exe /c ECHO.>> \“%1\““
Dieser Code wird als name.reg gespeichert und ausgeführt! Betätigt man nun die rechte Maustaste bei einer RAR-Datei, so bemerkt man sofort den neuen Eintrag „MD5-Hash ändern“. Das ganze funktioniert natürlich auch, indem man mehrere Dateien markiert.
6 Kommentare
Loemmel
Das scheint unter Windows 7 x64 leider nicht mehr zu funktionieren, egal, ob ich cmd.exe /c ECHO.>> \”%1\” oder cmd.exe /c ECHO.>> %1 schreibe. Der Kontexteintrag öffnet zwar cmd, es kommt nicht mal eine Fehlermeldung (mit Paramenter /k statt /c), nur die Datei wird nicht geschrieben. Der Befehl, manuell in der Kommandozeile ausgeführt, hängt die Zeichenkette wie gewünscht an. Ich bin ratlos :-)
Loemmel
So, jetzt hab‘ ich’s: cmd.exe /c ECHO .>>%1 – die Leerzeichen sind wichtig – eins nach echo, keins in der Zeichenkette „.>>%1“, dann funktioniert es – aber nur für max. 15 markierte Dateien, markiert man mehr, ist der Eintrag im Kontextmenü nicht zu sehen. Jetzt werde ich mal nachschlagen, was es damit auf sich hat …
Loemmel
So, final word von mir: Mehr als 15 Dateien kann man unter Windows 7 verwenden, wenn man in der Registry unter HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer den REG_DWORD-Wert „MultipleInvokePromptMinimum“ in Dezimal auf das gewünschte Limit setzen. Sollte er nicht vorhanden sein, einfach setzen oder die oben von Yakuza112 beschrieben reg-Datein um den Teil erweitern. Mein Export sieht jetzt so aus:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WinRAR\shell\MD5-Change]
[HKEY_CLASSES_ROOT\WinRAR\shell\MD5-Change\command]
@=“cmd.exe /c ECHO.>> \\”%1\\”“
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer]
„MultipleInvokePromptMinimum“=dword:000003e8
Danke für diesen inspririerenden Blog-Eintrag! :-)
¥akuza112
laut Microsoft ist ein Wert von 16 == unlimited
Quelle : https://support.microsoft.com/en-us/kb/2022295
Loemmel
Da steht aber auch: „Note: a value of 16 is interpreted as „unlimited“ for showing the options from the context menu, *** however it does not allow the actual opening of the documents selected if selecting more than 16***. To allow the opening of more than 16 documents, set this key to a decimal value greater than the amount of documents you wish to open. “
Ich bleibe also lieber bei meinen konfigurierten 1000 ;-)
¥akuza112
oh, hast recht. Dank dir