
Generator für selbstentschlüsselnde Binärdateien
+------------------------------------------------------------------------------+
SDC - Generator für selbstentschlüsselnde Binärdateien
Urheberrecht (C) 2006 Claes M Nyberg <[email protected]>
+------------------------------------------------------------------------------+
Das SDC-Programm erstellt selbstentschlüsselnde Binärdateien für gängige Betriebssysteme
und Architekturen. Die Zieldatei wird mit Blowfish im Ciphertext-Feedback-Modus (CFB) verschlüsselt
und an eine ausführbare Datei angehängt, die sich selbst liest und beim Ausführen versucht,
die angehängten Daten zu entschlüsseln.
Die Ausführung von 'make' im src-Verzeichnis zeigt einige Optionen an:
$ make
make <target>
SDC generator targets:
linux_x86
windows_x86
openbsd_x86
openbsd_arm
openbsd_sparc64
freebsd_x86
netbsd_x86
solaris_sparc
Self decrypt targets:
selfdecrypt_linux_x86
selfdecrypt_windows_x86
selfdecrypt_openbsd_x86
selfdecrypt_openbsd_arm
selfdecrypt_openbsd_sparc64
selfdecrypt_netbsd_x86
selfdecrypt_freebsd_x86
selfdecrypt_solaris_sparc
Die SDC-Generator-Ziele erstellen eine sdc-Binärdatei für diese Plattform, die
verwendet werden kann, um eine selbstentschlüsselnde Datei für jedes der Selbstentschlüsselungsziele zu generieren.
Das Erstellen eines „Selbstentschlüsselungsziels“ erstellt die eigentliche selbstentschlüsselnde Binärdatei für dieses Ziel.
Entferne die Symbole und führe das Skript genhex.pl auf der resultierenden selfdecrypt-Binärdatei zusammen mit
ihrer Länge aus, um einen maskierten String auszugeben, der umgeleitet werden kann, um eine Header-Datei zu erstellen,
genau wie eine der Dateien im targets-Verzeichnis. Füge dann die Include-Datei zu targets.h hinzu, um sie beim nächsten Build
in die sdc-Binärdatei aufzunehmen.
Die vorgestellten Ziele existieren bereits als Header-Dateien und sind bereits in die sdc-Binärdatei eingebunden.
* Kompression der Datei vor der Verschlüsselung hinzufügen, um die Verwirrung zu erhöhen.
* OpenBSD ARM-Unterstützung
* MacOSX-Unterstützung
Damit die Routine elf_offset() funktioniert, sollte die ELF-Datei (selfdecrypt) gestrippt werden
(ich bin zu faul, die Größe der String-Tabelle zu berechnen).
./sdc /etc/services
Encryption key:
Verify key:
Writing self decrypting file services.sdc for Linux x86 (ELF)
./services.sdc
Encryption key:
Decrypting to services
$
Generiere eine selbstentschlüsselnde Datei für Windows unter Linux
$ ./sdc -t Windows_x86 /etc/services
Encryption key:
Verify key:
Writing self decrypting file services.sdc.exe for Windows x86 (PE-COFF)
Beim Doppelklick auf services.sdc.exe erscheint ein Dialogfenster zur Eingabe des Entschlüsselungsschlüssels:
