Wie funktioniert ein VIRUS?
Verfasst: 15.09.2005 11:04
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?