Es gibt zar schon Tutorials für VB und C ,doch man tut sich doch einfacher wenn man die Sachen im eigenen Element lernt.
Deshalb dieses Tutorial
Vorraussetzungen:
-Mathematische Kenntnisse
-Beherscht entweder VB.net oder C#
Wie funktioniert ein Crypter eigentlich?
Im Grunde ist ein Crypter sehr einfach.
Man hat 2 Dateien.
Die 1. ist der Crypter selbst.
Und die 2. ist die stub.
Im Crypter wird eine Datei ausgewählt die eingelesen ,verschlüsselt und an die stub übergeben wird.
In der stub wird der übergebene Code(Byte []) wider entschlüsselt und je nachdem ob er Runtime oder Scantime ist im Speicher oder auf der Festplatte zusammengesetzt.
Hier ist die Theorie sehr simple.
Welche Verschlüsselung
Jetzt stellt sich die Frage welche Verschlüsselung.
Im Grunde ist das egal.
Ihr könnt die simple XOR-Verschlüsselung verwenden.
Aber auch AES ,RSA und OTP.
Im Hinterkopf sollte man allerdings immer behalten ,dass bei starken Verschlüsselungen die Dateien auch kapput gehen können.
Und um einen FUD Crypter zu kriegen sollte man die Verschlüsselung selber schreiben.
Hier ein paar Tutorials:
XOR allgemein
http://de.tech-faq.com/xor-encryptio…ate.google.com
AES (ansich für C++ allerdings ist es sehr allgemein gehalten)
http://www.codeplanet.eu/tutorials/c…-standard.html
Das Coding
Nun kommen wir zum schnellsten Teil.
Solltet ihr eure eigene Verschlüsselung jetzt haben müsst ihr nur noch einen Builder mit den oben beschriebenen Eigenschaften schreiben.
Sollte das ein Problem darstellen schaut euch die Sources von ThePapst an:
C#
http://free-hack.com/showthread.php?t=36227
VB.net
http://free-hack.com/showthread.php?t=20747
Der letzte Schritt(RT oder ST)
Nun habt ihr die Datei crypted und in der stub drin die alls wieder decryptet.
Schön und gut doch das macht im Endeffeckt nichts.
Zuerst mal der Unterschied zwischen Runtime und Scantime.
Bei Scantime wird die Datei(entschlüsselt) auf die Festplatte geschrieben und von da ausgeführt(also nur Scantime FUD).
Bei Runtime wird die Datei im Speicher zusammengesetzt.
Somit ist sie auch beim Ausführen noch FUD.
Hier seht ihr wie ihr Dateien in den Speicher lädt(für den Runtime Crypter)
C#
http://free-hack.com/showthread.php?t=37120
VB.net(etwas unverständlich)
http://free-hack.com/showthread.php?t=43456
TR/Droper.Gen
Diese Meldung wird bei einer Datei deren Größe nicht mit der Größe die im PE-Header steht übereinstimmt.
Um das zu fixen hat EBFE ein sehr gutes Tutorial gemacht.
http://free-hack.com/showthread.php?t=44355
Das ist zwar zum Manual fixing ,aber sehr gut beschrieben.
Daher sollte es auch kein Problem sein das zu programmieren.
Bitdefender’s Emulator
Um den Emulator von Bitdefender zu bypassen muss man am Start eine Schleife mit Junkcode machen.
Junkcode ist Code der im endeffeckt gar nichts bewirkt(zB. Variablen deklarieren).
Aber wozu die Schleife?
Der Bitdefender Emulator bricht das Ausführen nach einer Zeit ab.
Und genau das ist der Grund.
Der junkcode ist deshalb so wichtig ,da der Emulator erkennt wenn nichts gemacht wird und die Schleife überspringt.
Laut dem Tutorial von DizzY_D ist eine Schleife mit 16777215 Durchläufen ausreichend.
Näheres im Tutorial von DizzY_D.
http://free-hack.com/showthread.php?p=368212
Ja das wars im Groben.
Ihr könnt natürlich noch zahlreiche zusätzliche Funktionen einbauen alá Anti Sanboxie usw.
Tutorial zum downloaden:
http://rapidshare.com/files/27084993…er_in_.net.pdf
Zusatz:
Sollte der Crypter nicht mehr FUD sein muss man wenn man Glück hat nur die Strings umbenennen oder auch die ganze stub neu machen.
Ein RT Crypter auf diese Art braucht ein .net File zum crypten.
Credits: funkinghot19
3 Kommentare
LKZ
leider funktionieren die links nicht mehr..
¥akuza112
sry ich habe kein Backup der Datei :(
caudex
Die Frage was zum FUD führt ist irgendwie nicht beantwortet. Der Punkt, dass die Assembly erst im Speicher ausgeführt wird kann doch nicht reichen? Wo unterscheiden sich die Crypter dann voneinander? In der Verschlüsselung vllt., was aber nach diesem Tutorial nur mit dem Scantime-Thema zutun hat!? Oder ist das Ausführen über einen Invoke auf dem EntryPoint grundsätzlich nicht überwacht und es kommt nur auf die vorherige Verschlüsselung an?
Im letzten Fall stelle ich mir das ja schon fast zu einfach vor…
Bis hierhin cooles Tutorial :).