Wie funktioniert ein VIRUS?
Wie funktioniert ein VIRUS?
Um das klarzustellen: In diesem Thread geht's NICHT um Würmer oder Trojaner!!! Es geht ausschliesslich um die Funktionsweise von Win32 Viren, die PE-Dateien infizieren! Und bitte nur sinnvolle Beiträge! Danke!
Also die Frage: Wie Funktioniert eigentlich ein Virus, der eine EXE infiziert.
Antwort (nur Teilweise, also bitte alles, was ihr wisst hinzufügen):
Eine Win32 PE-Executable besteht aus mehreren Teilen. In den sog. SECTIONS ist direkter CODE enthalten, wie er nachher im RAM steht und Schritt für Schritt abgearbeitet wird.
Ein Virus öffnet eine bestehende EXE,
findet heraus, wo die letzte SECTION liegt,
fügt seinen eigenen CODE hinzu in einer neuen SECTION,
schreibt die Daten dafür in den SECTION HEADER und
ändert im PE-Header den Startpunkt (den Speicherpunkt, wo der CODE ausgeführt wird) auf den des VIRUS.
Wenn der VIRUS ausgeführt wurde, setzt sich das Programm am eigentlichen Startpunkt fort.
(Um die SECTIONS, die SECTIONTABLE(mit den HEADERS) und der PE-HEADER liegt, und was drinsteht, kann man in einer Doku über das PE-Format bei Microsoft nachlesen)
Soweit, so gut, aber eine Exe hat ja nicht nur die Code SECTIONS, sondern auch DatenSections und Teile, wo die DLLs geladen werden. Wie passt der Virus seinen CODE so an, dass er auch die schon geladenen DLLs benutzt und was macht er, wenn eine DLL, die er braucht in dieser EXE noch nicht geladen wurde?
Also die Frage: Wie Funktioniert eigentlich ein Virus, der eine EXE infiziert.
Antwort (nur Teilweise, also bitte alles, was ihr wisst hinzufügen):
Eine Win32 PE-Executable besteht aus mehreren Teilen. In den sog. SECTIONS ist direkter CODE enthalten, wie er nachher im RAM steht und Schritt für Schritt abgearbeitet wird.
Ein Virus öffnet eine bestehende EXE,
findet heraus, wo die letzte SECTION liegt,
fügt seinen eigenen CODE hinzu in einer neuen SECTION,
schreibt die Daten dafür in den SECTION HEADER und
ändert im PE-Header den Startpunkt (den Speicherpunkt, wo der CODE ausgeführt wird) auf den des VIRUS.
Wenn der VIRUS ausgeführt wurde, setzt sich das Programm am eigentlichen Startpunkt fort.
(Um die SECTIONS, die SECTIONTABLE(mit den HEADERS) und der PE-HEADER liegt, und was drinsteht, kann man in einer Doku über das PE-Format bei Microsoft nachlesen)
Soweit, so gut, aber eine Exe hat ja nicht nur die Code SECTIONS, sondern auch DatenSections und Teile, wo die DLLs geladen werden. Wie passt der Virus seinen CODE so an, dass er auch die schon geladenen DLLs benutzt und was macht er, wenn eine DLL, die er braucht in dieser EXE noch nicht geladen wurde?
Ich hänge zu oft und zu lange vor dem PC! Ich muss dringend was an meinem Lebenswandel verändern!.......
Nur heute geht's grad nicht.
Nur heute geht's grad nicht.
- Hroudtwolf
- Beiträge: 1416
- Registriert: 30.10.2004 23:33
- Kontaktdaten:
Also, ich distanziere mich von solchen Unterstellungen!!! Ich möchte keinen Virus programmieren, sondern lediglich wissen, wie er funktioniert! Außerdem hat ein Trojaner mit einem Virus nichts zu tun! Genau so wenig, wie ein Wurm!!!
PE = Portable Executable (Format von Microsoft)
Ich will wissen, wie ein Virus funktioniert, um die Wirkungsweise zu verstehen und so besser damit umgehen zu können und evtl, Anti-Viren Programme oder Sicherheitsprogramm wie einen Virus vor das eigentliche Programm zu schalten.
Wenn ihr eh nicht wisst, wie ein Virus funktioniert, dann schreibt nicht hier in den Thread und wenn ihr mir was unterstellen wollt, dann sowieso nicht!
Leute, die Viren programmieren sind verrückt und verantwortungslos! Wer mich mit solchen Leuten in Verbindung bringt, sollte vorher drüber nachdenken.
PE = Portable Executable (Format von Microsoft)
Ich will wissen, wie ein Virus funktioniert, um die Wirkungsweise zu verstehen und so besser damit umgehen zu können und evtl, Anti-Viren Programme oder Sicherheitsprogramm wie einen Virus vor das eigentliche Programm zu schalten.
Wenn ihr eh nicht wisst, wie ein Virus funktioniert, dann schreibt nicht hier in den Thread und wenn ihr mir was unterstellen wollt, dann sowieso nicht!
Leute, die Viren programmieren sind verrückt und verantwortungslos! Wer mich mit solchen Leuten in Verbindung bringt, sollte vorher drüber nachdenken.
Ich hänge zu oft und zu lange vor dem PC! Ich muss dringend was an meinem Lebenswandel verändern!.......
Nur heute geht's grad nicht.
Nur heute geht's grad nicht.
Er MUSS DLLs aufrufen, weil jeder Programmbefehl mit einer DLL verknüpft ist. Diese DLL muss vor Programmstart in den Speicher geladen werden und die Adressen im CODE werden aktualisiert. Nur kann der Virus ja nicht wissen, an welche Adressen, welche DLLs sind. Also frag ich mich, wie er sich kopiert - weil im Speicher, den er in die neue SECTION kopiert sind nur CODE, also Programmbefehle enthalten, die sich dann auf die DLLs beziehen... glaub ich zumindestNaja wenn er sie benötigt, dann wird er sie wohl aufrufen müssen. Da er sich aber nur in ein Programm einnisten muß, könnt ich mir auch vorstellen, daß das irgendwie ohne DLLs geht (oder z.B. per Int 21). Aber wie gesagt, hab mich damit noch nie genau befaßt.
Ich hänge zu oft und zu lange vor dem PC! Ich muss dringend was an meinem Lebenswandel verändern!.......
Nur heute geht's grad nicht.
Nur heute geht's grad nicht.
Hmmm ich denke mir aber mal, daß sich hier ebenfalls nur Leute befinden, die keinen Virus programmieren wollen, und daher wohl nicht sehr viel mehr wissen, als das, was Du in Deinem ersten Posting geschrieben hast...
Wenn Du dafür genauere Informationen haben willst, denke ich ganz einfach, daß es hierfür andere Foren gibt, wo sich auch die entsprechenden Leute rumtreiben...
Wenn Du dafür genauere Informationen haben willst, denke ich ganz einfach, daß es hierfür andere Foren gibt, wo sich auch die entsprechenden Leute rumtreiben...