Ersteinmal danke für die vielen Anregungen
Ich könnte keinen Crypter schreiben wenn ich das nicht wüsste
Ans ende der exe heist nicht das man es findet wenn man im Eof (Realsize-(pointertorawdata + SizeOfRawData) <- so suche ich dannach ) schaut, denn viele stealer korrigieren das wegen antivir und suchen sich ihr 'eof' anhand von Trennstrings.. So mache ich das auch..
Aber so eine Pe zu starten muss ich noch testen..
Wenn die letzte section dann einfach größer ist dann sollte das kein Problem sein..
@blackberry
Ja ein eigener Key ist natürlich nur Augenwischerei
Ich werde mir das zu Herzen nehmen und die ganzen Optionen die toll aussehen nicht zum auswählen anbieten..
Wenn das weglassen von Optionen die exe kleiner machen sollte dann müsste ich linker etc mit einbinden und das vor Ort compilieren lassen ? Oder wie sonst wäre das umzusetzen ?
@fuckinghot
Was sollte denn polymorph sein..
Und wie sieht das konkret aus, ich habe mich noch nie mit polymorphie auseinandergesetzt..
Polymorphic code - Wikipedia, the free encyclopedia
Und hier ein Opensource Virus der ein Polymorphic Engine verwendet.
http://eof-project.net/sources/DarkP...2.Anunnaki.rar
Kleine Beschreibung vom Coder:
- Entry-Point-Obscuring, polymorphic, last section appender.
- Infects PE files in the current directory.
- Patches ExitProcess/exit/_exit functions to obscure it's entry point.
- Polymorphic engine - OPE2 (Offensive Polymorphic Engine 2).
- Anti-heuristics, anti-debug, anti-emulation.
Ich schreib' jetzt einfach mal in Mofos Thread weil das hier gerade Thema ist.
Versteh ich das richtig, dass die ganze "Magie" hinter Polymorphic Code ist, dass ich jedesmal z.B eine Extravariable mit irgendwelchen müll erzeuge?
z.B zwischen Entschlüsselungsroutine eine Funktion, die eine Extravariable mit Zufallszahlen (rand() z.B) zubombt aber nichts an der Entschlüsselung ändert?
Grüße
Nein das ist einfach Junkcode.
Ich zitiere mal die 1. beiden Sätze aus meinen geposteten Wikipedia Link:
Also du hast jetzt zB:In computer terminology, polymorphic code is code that uses a polymorphic engine to mutate while keeping the original algorithm intact. That is, the code changes itself each time it runs, but the function of the code (its semantics) will not change at all
Eine andere Variante wäre dannCode:mov eax,0
In beiden Fällen geschieht das Selbe ,aber es ist ein anderer Code.Code:xor eax,eax
Im Endeffekt wird eax dann 0.
Und das verändert sich bei jedem Start vom Programm.
Codevirtualisierung könnte dies möglich machen (Dizzy_D weiß dazu viel ).
Aber das Thema ist so komplex ,dass du ruhig einen eigenen Thread dazu aufmachen kannst.
//Edit:
Mir ist grad aufgefallen ,dass ich das 0815-Beispiel gebracht hab.
Also hier ein 2.:
Aus
wirdCode:mov eax,ecx
und draus kann wiederumCode:mov eax,0 add eax,ecx
werden.Code:xor eax,eax sub eax,ecx add ecx,ecx add eax,ecx
Und so weiter und sofort.
Natürlich sollte der Code nicht bei jedme Ausführen wachsen ,daher sollte man nicht auf die einzelnen Befehle eingehen sondern mehr auf die Segmente.
So kann der Code zB dann Original um 1 byte länger als der veränderte sein.
Geändert von IRET (25.08.2010 um 23:53 Uhr)