
Verschlüsselter PE Loader Generator
Huan ist ein Generator für verschlüsselte PE-Loader, den ich zum Erlernen der PE-Dateistruktur und der PE-Ladeprozesse entwickelt habe. Er verschlüsselt die auszuführende PE-Datei jedes Mal mit unterschiedlichen Schlüsseln und bettet sie in einen neuen Abschnitt der Loader-Binärdatei ein. Derzeit funktioniert er mit 64-Bit-PE-Dateien.
Zunächst liest Huan die angegebene PE-Datei und verschlüsselt sie mit dem CBC-Modus des AES-128-Verschlüsselungsalgorithmus. Für die Verschlüsselung habe ich Tiny AES in C verwendet und einen Padding-Code für die Anforderungen dieser Bibliothek vorbereitet. Nach Abschluss der Verschlüsselung kompiliert es den Loader mit dem Visual Studio-Compiler (MsBuild.exe) und erstellt eine ausführbare Datei. Danach erstellt es einen Abschnitt (genannt .huan) in dieser ausführbaren Datei und bettet den verschlüsselten Inhalt, die Größeninformationen, den IV und den symmetrischen Schlüssel ein. Beide Schlüssel werden für jede Kopie des Loaders zufällig erstellt. Das Layout dieses Abschnitts ist unten zu sehen.
Wenn der Loader ausgeführt wird, ermittelt er zunächst die Image-Base seiner selbst durch das Lesen des Process Environment Block. Nachdem er die Image-Base kennt, parst er die geladene Kopie seiner selbst, um den Abschnitt .huan zu finden. Dann entschlüsselt er den gesamten Inhalt, puffert ihn und lädt die Binärdatei, die auf dem Speicher basiert.
Nur für autorisierte Sicherheitstests. Die missbräuchliche Verwendung dieses Tools gegen Systeme ohne ausdrückliche Genehmigung ist illegal.