Ich seh immer wieder Themen a la "Wie mach ich meinen Trojaner ud?", etc.

Da könnt ihr noch so viele Crypter, Packer und Binder testen, eine langfristige Lösung wird das nicht sein. Genau so dumm ist es, sich sowas zu kaufen.

Ich hab eigentlich gar keinen Bock ein Tutorial für desktruktive Teenager zu schreiben, die irgendwelche nervigen Trojaner im Internet verbreiten, aber was solls, mir geht einfach dieses Kiddygefrage und dieses ständige "FUD?????ßßßß!!111crYpt0rbInd0r!!11einseinself " auf die Nerven.



Zu allererst solltet ihr euch ein wenig den Aufbau einer PE Datei anschauen:

Code:
    [ PE HEADER ^ 00004550h ]

[ OPTIONALER HEADER / DATENABLAGE ]

[ SECTIONS / FLAGS ]

    -- Code Section
    -- Initialisierte Daten
    -- Uninitialisierte Daten
    -- Shared Block
    -- Executable
    -- Readable
    -- Writable
Ein PE Datei besteht aus einem DOS-MZ-Header + DOS Stub und einem PE Header. Darauf folgt die Section Table, die beliebig viele Sections enthalten kann. Jede Section darf gewisse Flags besitzen, die ihr gewisse Dinge zuweisen.

Die Interessanten Flags sind die Flags SHARED, EXECUTABLE, READABLE und WRITABLE.

Shared Flag: Sorgt dafür, dass die Sektion mit diesem Flag nur ein mal in den Speicher geladen wird. Ist das Flag nicht gesetzt, wird sie jedes mal aufs neue in den Speicher geladen.

Readable: Erlaubt Lesezugriff.

Writable: Erlaubt Schreibzugriff (kann zu Kollisionen mit Writable kommen).


Ein PE-Header sieht kodiert standartmäßig immer so aus:

Code:
4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00
B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 E8 00 00 00
0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68
69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F
74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20
6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00
Wenn ihr nun euren Trojaner/Keylogger/Blubb undetectable haben wollt, nehmt eure PE-Datei und vertauscht die Sektionen sowie die Parts.

Beispiel:

Code:
\x44\x00\xE8\x3F\x24\x01\x00\x83\xC4\x04\x81
\x06\xFC\xEF\xFF\xFF\xC3\x50\x8B\xCE\xE8\xB7
\xF2\xFF\xFF\x81\x06\xFC\xEF\xFF\xFF\xC3\x8B
\x57\x18\x83\xEC\x10\x83\xFA\x10\x53\x55\x56
\x8D\x77\x04\x72\x04\x8B\x06\xEB\x02\x8B\xC6
\x8B\x4F\x14\x8D\x2C\x01\x85\xED\x74\x20\x83
\xFA\x10\x72\x04\x8B\x06\xEB\x02\x8B\xC6\x3B
\xC5\x77\x11\x83\xFA\x10\x72\x04\x8B\x06\xEB
\x02\x8B\xC6\x03\xC8\x3B\xE9\x76\x05\xE8\xBE
\x22\x01\x00\x8B\x4F\x18\x83\xF9\x10\x72\x04
\x8B\x1E\xEB\x02\x8B\xDE\x85\xDB\x74\x1F\x83
\xF9\x10\x72\x04\x8B\x06\xEB\x02\x8B\xC6\x3B
\xC3\x77\x10\x83\xF9\x10\x72\x02\x8B\x36\x8B
\x47\x14\x03\xC6\x3B\xD8\x76\x05\xE8\x88\x22
\x01\x00\x55\x57\x53\x57\x8D\x4C\x24\x20\x51
\x57\xE8\x15\x00\x00\x00\x5E\x5D\x5B\x83\xC4
\x10\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC
\xCC\xCC\xCC\xCC\xCC\x53\x55\x56\x8B\x74\x24
\x10\x8B\x4E\x18\x83\xF9\x10\x57\x8D\x5E\x04
\x72\x04\x8B\x3B\xEB\x02\x8B\xFB\x85\xFF\x74
\x23\x83\xF9\x10\x72\x04\x8B\x03\xEB\x02\x8B
\xC3\x3B\xC7\x77\x14\x83\xF9\x10\x72\x04\x8B
\x03\xEB\x02\x8B\xC3\x8B\x4E\x14\x03\xC8\x3B
\xF9\x76\x05\xE8\x1F\x22\x01\x00\x83\x7C\x24
\x20\x00\x8B\x6C\x24\x1C\x75\x04\x33\xF6\xEB
\x18\x83\xFD\xFE\x74\x0D\x85\xED\x74\x04\x3B
\xEE\x74\x05\xE8\xFE\x21\x01\x00\x8B\x74\x24
\x20\x2B\xF7\x8B\x7C\x24\x28\x85\xFF\x75\x04
\x33\xC0\xEB\x1C\x8B\x44\x24\x24\x83\xF8\xFE
\x74\x0D\x85\xC0\x74\x04\x3B\xC5\x74\x05\xE8
\xD6\x21\x01\x00\x2B\x7C\x24\x20\x8B\xC7\x8B
\x6C\x24\x14\x50\x56\x8B\xCD\xE8\x1F\x6C\xFF
\xFF\x8B\x4D\x18\x83\xF9\x10\x72\x04\x8B\x03
\xEB\x02\x8B\xC3\x03\xF0\x8B\x7C\x24\x18\xC7
\x07\x00\x00\x00\x00\x74\x23\x83\xF9\x10\x72
\x04\x8B\x03\xEB\x02\x8B\xC3\x3B\xC6\x77\x14
\x83\xF9\x10\x72\x04\x8B\x03\xEB\x02\x8B\xC3
\x8B\x55\x14\x03\xD0\x3B\xF2\x76\x05\xE8\x7F
\x21\x01\x00\x89\x2F\x89\x77\x04\x8B\xC7\x5F
\x5E\x5D\x5B\xC2\x18\x00\xCC\xCC\xCC\xCC\xCC
\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\xFF\x68
\x86\xB5\x43\x00\x64\xA1\x00\x00\x00\x00\x50
\x53\x56\x57\xA1\xC0\xCC\x44\x00\x33\xC4\x50
\x8D\x44\x24\x10\x64\xA3\x00\x00\x00\x00\x8B
\x7C\x24\x20\x33\xDB\x8D\x77\x1C\x53\xC7\x46
\x18\x07\x00\x00\x00\x89\x5E\x14\x68\x04\x3C
\x44\x00\x66\x89\x5E\x04\xE8\x0B\x6C\xFF\xFF
\x89\x5C\x24\x18\x8D\x77\x38\x53\xC7\x46\x18
\x07\x00\x00\x00\x89\x5E\x14\x68\x04\x3C\x44
\x00\x66\x89\x5E\x04\xE8\xEB\x6B\xFF\xFF\xB8
\x01\x00\x00\x00\x88\x44\x24\x18\x8B\x4C\x24
\x24\x89\x0F\x89\x47\x18\xC7\x44\x24\x18\xFF
\xFF\xFF\xFF\x8B\xC7\x8B\x4C\x24\x10\x64\x89
\x0D\x00\x00\x00\x00\x59\x5F\x5E\x5B\x83\xC4
\x0C\xC2\x08\x00\xCC\xCC\xCC\xCC\xCC\xCC\xCC
\xCC\xCC\xCC\x55\x8B\xEC\x83\xE4\xF8\x6A\xFF
\x68\x08\xC0\x43\x00\x64\xA1\x00\x00\x00\x00
\x50\x83\xEC\x28\xA1\xC0\xCC\x44\x00\x33\xC4
\x89\x44\x24\x20\x53\x56\x57\xA1\xC0\xCC\x44
\x00\x33\xC4\x50\x8D\x44\x24\x38\x64\xA3\x00
\x00\x00\x00\x8B\x45\x08\x89\x44\x24\x10\x33
\xDB\x8B\xC1\xC7\x44\x24\x2C\x0F\x00\x00\x00
\x89\x5C\x24\x28\x88\x5C\x24\x18\x8D\x70\x01
\x8A\x10\x83\xC0\x01\x84\xD2\x75\xF7\x2B\xC6
\x50\x51\x8D\x4C\x24\x1C\xE8\xE5\x69\xFF\xFF
\x89\x5C\x24\x40\x8B\x4C\x24\x2C\x83\xF9\x10
\x8B\x54\x24\x18\x8B\xC2\x73\x04\x8D\x44\x24
\x18\x8B\x74\x24\x28\x8D\x3C\x30\x3B\xFB\x74
\x20\x83\xF9\x10\x8B\xC2\x73\x04\x8D\x44\x24
\x18\x3B\xC7\x77\x11\x83\xF9\x10\x8B\xC2\x73
\x04\x8D\x44\x24\x18\x03\xC6\x3B\xF8\x76\x0D
\xE8\x12\x20\x01\x00\x8B\x4C\x24\x2C\x8B\x54
\x24\x18\x83\xF9\x10\x8D\x5C\x24\x14\x0F\x82
\x99\x00\x00\x00\x85\xD2\x8B\xF2\x74\x24\x83
\xF9\x10\x8B\xC2\x73\x04\x8D\x44\x24\x18\x3B
\xC6\x77\x15\x83\xF9\x10\x8B\xC2\x73\x04\x8D
\x44\x24\x18\x8B\x4C\x24\x28\x03\xC1\x3B\xF0
\x76\x05\xE8\xCE\x1F\x01\x00\x8B\x54\x24\x10
\x57\x53\x56\x8D\x44\x24\x20\x50\x8B\x44\x24
\x20\x52\x83\xC0\x1C\xE8\x71\x7E\xFF\xFF\xC7
\x44\x24\x40\xFF\xFF\xFF\xFF\x83\x7C\x24\x2C
\x10\x72\x0D\x8B\x44\x24\x18\x50\xE8\x5A\x22
\x00\x00\x83\xC4\x04\xC7\x44\x24\x2C\x0F\x00
\x00\x00\xC7\x44\x24\x28\x00\x00\x00\x00\xC6
\x44\x24\x18\x00\x8B\x4C\x24\x38\x64\x89\x0D
\x00\x00\x00\x00\x59\x5F\x5E\x5B\x8B\x4C\x24
\x20\x33\xCC\xE8\x68\x1A\x01\x00\x8B\xE5\x5D
\xC2\x04\x00\x8D\x74\x24\x18\xE9\x64\xFF\xFF
\xFF\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\xFF\x68
Ihr splittet das ganze und setzt es ihm Nachhinein wieder aneinander. Das würde euren Trojaner Scantime 100%ig undetectable machen, wenn er auch Runtime undetectable sein soll, müsst ihr die Speichersegmente einzeln in den Puffer laden.

Das wäre Methode eins, die 100%ig funktioniert und bei einer Stack Randomization dazu führt, dass euer Trojaner/Keylogger/Blubb zumindest bis zur Heuristik Erkennung dauerhaft undetectable bleibt.

Die zweite Methode ist noch simpler, aber ein wenig uneffektiver. Ihr schreibt einfach euren eigenen "Packer", dazu empfehle ich den Lempel Ziv Welch (LZW) Algorithmus, ihr könnt aber gerne verschiedene Algorithmen durchprobieren. Diese sind mit Sicherheit noch "FUD". Dazu schreibt ihr ein kleines Tool, welches den Datensatz verschlüsselt und im Code wieder entschlüsselt (Loader). FSG z.B. fußt auf dasselbe Prinzip.

Also dann, viel Spaß beim hax0rn... Wer jetzt noch einmal das Wort "FUD" in den Mund nimmt wird kastriert.