- Offizieller Beitrag
Random-Obfuscator Version 1.4
Was macht das Programm?
A: Man kann ein AutoIt-Script auswählen. Anschließend wird eine Kopie davon erstellt und diese Kopie vom Original-Obfuscator verschleiert. Und dann kommt mein Script an die Reihe. Alle Variablen werden durch Zufallsnamen (z.B. $Q58693486534) ersetzt. Wobei ein Wörterbuch (Scripting.Dictionary) für die Ersetzungen zum Einsatz kommt. Zusätzlich gibt es ein Hilfs-Wörterbuch für die Zufallsnamen, damit diese nicht versehentlich doppelt generiert werden. Das sollte meiner Meinung nach ausreichen, um ein Wiederherstellen unmöglich zu machen. In einer späteren Version nehme ich mir dann noch die Funktionsnamen vor.
Die Zieldatei hat anschließend den Dateinamen: Scriptname_obfuscated.au3
Edit:
Das Problem mit den Zeichenketten ist jetzt gelöst. Wenn also ein Dollarzeichen innerhalb einer Zeichenkette vorkommt, wird das nicht mehr als Variable erkannt.
Alle Variablen die mittels IsDeclared() getestet werden oder Variablen, denen mittels Assign() Werte zugewiesen werden, werden nun direkt in das Wörterbuch übernommen und somit nicht mehr verändert. Das funktioniert auch mit zusammengesetzten Variablen.
Edit v1.4:
- Eigenartigerweise ist bei mir manchmal ein Fehler mit der Version 1.3 aufgetreten. In seltenen Fällen (nicht reproduzierbar) wurden 23stellige Variablennamen generiert. Ich habe die Random-Routine jetzt auf 11stellige Variablennamen gekürzt (vorher 12stellig) und seitdem ist dieser Fehler nicht mehr aufgetreten. Sollte ein Script nach dem obfuscaten nicht lauffähig sein, schaut bitte mal auf die Fehlermeldung, ob der Variablenname länger als 11 Zeichen (mit Dollarzeichen 12 Zeichen) ist.
- Die doppelte Prüfung auf den Original-Obfuscator eingebaut (Danke, Prog@ndy!)
- ein paar kosmetische Korrekturen
Wenn jetzt noch Fehler beim bearbeiten mit meinem Script oder später mit dem "obfuscated Code" auftreten, dann bitte melden (bitte mit dem Script, dass den Fehler verursacht hat)!
Einbau des Random-Obfuscators in den AutoIt3-Wrapper:
1. den Random-Obfuscator compilieren (Dateiname = Obfuscator.exe) oder die Obfuscator.exe aus dem ZIP-Archiv nehmen
2. den Original-Obfuscator in "C:\Programme\AutoIt3\SciTE\Obfuscator\" umbenennen in: "Orig_Obfuscator.exe" <-- genau so (ohne die Anführungszeichen)!
3. Den Random-Obfuscator in das Verzeichnis "C:\Programme\AutoIt3\SciTE\Obfuscator\" kopieren.
Edit ( 18.09.08 Achtung! Mein Random-Obfuscator funktioniert nicht mit der aktuellen Version des Original-Obfuscator!
Im ZIP-Archiv im Anhang findet ihr alle benötigten Dateien.