DIESER SERVICE KANN ÜBERSETZUNGEN VON GOOGLE ENTHALTEN. GOOGLE ÜBERNIMMT KEINERLEI VERANTWORTUNG FÜR DIE ÜBERSETZUNGEN. DARUNTER FÄLLT JEGLICHE VERANTWORTUNG IN BEZUG AUF RICHTIGKEIT UND ZUVERLÄSSIGKEIT SOWIE JEGLICHE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, NICHT-VERLETZUNG VON RECHTEN DRITTER ODER DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.

Die Website von Kaspersky Lab wurde für Ihre Bequemlichkeit mithilfe einer Übersetzungssoftware von Google Translate übersetzt. Es wurden angemessene Bemühungen für die Bereitstellung einer akkuraten Übersetzung unternommen. Bitte beachten Sie, dass automatisierte Übersetzungen nicht perfekt sind und menschliche Übersetzer in keinem Fall ersetzen sollen. Übersetzungen werden den Nutzern der Kaspersky-Lab-Website als Service und "wie sie sind" zur Verfügung gestellt. Die Richtigkeit, Zuverlässigkeit oder Korrektheit jeglicher Übersetzungen aus dem Englischen in eine andere Sprache wird weder ausdrücklich noch stillschweigend garantiert. Einige Inhalte (z. B. Bilder, Videos, Flash, usw.) können aufgrund der Einschränkungen der Übersetzungssoftware möglicherweise nicht inhaltsgetreu übersetzt werden.

Virus.DOS.DarkParanoid

Kategorie Virus
Plattform DOS
Beschreibung

Technische Details

Dies ist ein parasitärer polymorpher Speichervirus im Speicher. Es hakt INT 1, 21h und schreibt sich selbst an das Ende von EXE und an den Anfang von COM-Dateien.

Dieser Virus verwendet eine extrem komplexe Art der On-the-Fly-Verschlüsselung – zu jedem Zeitpunkt, an dem der Virencode ausgeführt wird, wird die einzige Anweisung in unverschlüsselter Form angezeigt – der gesamte andere Virencode ist verschlüsselt. Der Virus tut das, indem er Tricks mit dem Verfolgungsmodus INT 1 verwendet. Wenn der Virus-Code die Kontrolle erhält, hakt er INT 1 und nach der Ausführung eines Virus-Befehls (außer einigen speziellen Opcodes – siehe "Intel 80×86 User Guide") wird INT 1 aufgerufen. Der Virus hakt diesen Aufruf, entschlüsselt den Code der aktuellen Anweisung und verschlüsselt den obigen Code.


prev Anweisung – verschlüsselt
aktuelle Anweisung – sauber
nächste Anweisung – verschlüsselt
Nach Ausführung der "aktuellen Anweisung" übernimmt der Virus die Kontrolle über den INT 1 -Hook, verschlüsselt die "aktuelle Anweisung" und entschlüsselt die "nächste Anweisung". Als Ergebnis ist zu jedem Zeitpunkt entweder der gesamte Virencode verschlüsselt oder nur eine Anweisung in clean. Darüber hinaus verschlüsselt / entschlüsselt der Virus nicht genau den Code des vorherigen / nächsten Befehls, sondern einige Bytes / Wörter bei mehreren Offsets von der Adresse des aktuellen Befehls. Als Ergebnis sieht der Instruktionsfluss des Virus aus wie ein sich bewegender "Spot" mit einer "sauberen" Anweisung in der Mitte des Spots, teilweise verschlüsseltem Code im Rest des Spots und komplett verschlüsseltem Code außerhalb des Spots.

Es gibt drei Code-Blöcke, die nicht auf diese Weise verschlüsselt werden können – sie sind INT 1-Handler (en / decryptor), Startcode in infizierten Dateien und INT 21h-Handler in der Virus-TSR-Kopie. Beide starten Code in Dateien und INT 21h Handler Hook INT 1, wenn die Steuerung erhalten, wechseln Sie in den Tracing-Modus und übergeben Sie die Kontrolle zu Hauptroutinen – Installationsroutine in Dateien und Main INT 21h Handler-Code in Virus-TSR-Kopie.

Die INT 1 -Hooking-Routine und natürlich der INT 1 -Handler selbst sind nicht verschlüsselt, sie sind nur polymorph – der Virus verwendet eine ziemlich starke polymorphe Engine, um den Code des INT 1 -Hookers am Einstiegspunkt infizierter Dateien sowie für sein INT zu erzeugen 1 und 21h Handler.

Viruscode in der infizierten Datei:


Eingabe: + ————- +
| INT 1 Nutte | – polymorph
| – – – – – – – |
| INT 1 -Handler | – polymorph
| – – – – – – – |
| Hauptvirus | – verschlüsselt von INT 1
| Code: TSR |
| installator, |
| etc |
+ ————- +
Virencode im Speicher:

INT 21h + ————- +
Eintrag: | INT 1 Nutte | – polymorph
| – – – – – – – |
| INT 1 -Handler | – polymorph
| – – – – – – – |
| Hauptvirus | – verschlüsselt von INT 1
| Code: INT 21h |
| Handler, |
| etc |
+ ————- +
Als Ergebnis sind alle "Einträge" zum Virus-Code (Startadresse in infizierten Dateien, INT 1-Handler und Startcode des INT 21h-Handlers) polymorph, und der Haupt-Viruscode ist verschlüsselt – das ist eine ziemlich große Aufgabe für Antivirenforscher, um die Erkennung durchzuführen Verfahren für diese Art von Virus.

Polymorphe Engine

Der Unterschied zwischen gewöhnlichen polymorphen Engines und der Engine von "DarkParanoid" ist die Tatsache, dass in diesem Virus keine Entschlüsselungsschleife in polymorphem Code ist – es hakt nur INT 1 und beginnt mit der Verfolgung des Hauptcodes. Dieser Code in verschiedenen infizierten Dateien kann in anderer Form erscheinen – während dieser Code erzeugt der Virus zufällig die Register, Befehle, Datenzugriffsmodi und so weiter.

Ähnlich für den INT 1 -Handler, der eine unverschlüsselte Verschlüsselungs- / Entschlüsselungsroutine enthält. Dieser Code in verschiedenen Dateien ist auch anders – mehr als zehn Verschlüsselungsfunktionen werden zufällig aus der Menge ausgewählt: ADD, SUB, XOR, NEG, NICHT, ROR, ROL, sowie Byte- und Wortzugriff. Es werden auch Zufallsregister verwendet, und der Versatz des INT 1-Handlers wird zufällig innerhalb einiger Grenzen ausgewählt.

Installation und INT 21h Handler

Der "DarkParanoid" -Virus ist speicherresident. Wenn eine infizierte Datei ausgeführt wird, installiert sich der Virus selbst im Systemspeicher. Um dies zu tun, hakt es INT 1, um seine fliegende Entschlüsselungsroutine zu aktivieren, reserviert einen Block von Systemspeicher in herkömmlichem DOS-Speicher oder in oberen Speicherblöcken, wenn die notwendige Menge an freiem Speicher vorhanden ist (etwa 7,5 K). Der Virus kopiert dann seinen Code dorthin, hakt INT 21h und gibt die Kontrolle an das Host-Programm zurück.

Während der Installation des Speicher-Residents läuft der Virus auch mit seiner polymorphen Engine, um Entschlüsselungsroutinen zu generieren, um sie zu benutzen, während sie Dateien infizieren. Der Virus ruft diese Engine nicht mehr auf, und infolge dessen wird der Virus den gleichen polymorphen Code bis zum nächsten Neustart und der Neuinstallation in Dateien ablegen. Das kann einen Benutzer und Virusforscher täuschen – der Virus versucht, sie sicher zu machen, dass dies nur ein verschlüsselter Virus ist, aber nicht polymorph, so dass es möglich ist, ihn nur durch ein einzelnes Hex-Muster zu erkennen.

Der Virushandler INT 21h fängt FileOpen / Create-Aufrufe (AH / AX = 3Ch, 5Bh 6C00h), FileClose-Aufruf (AH = 3Eh) und Get Allocation Strategy (AX = 5800h) ab.

Die letzte Funktion (Get Allocation Strategy) wird als "Are You Here?" Anruf. Dieser Aufruf wird vom Virus ausgeführt, während der Speicher resident installiert wird. Vor diesem Anruf gibt der Virus im CX-Register die aktuelle Jahreszahl plus aktuelle Monat- und Tagesnummern ein (Aktuelles Datum von INT 21h mit AH = 2Ah, dann CX = CX + DX, dann INT 21h mit AX = 5800h).

Die speicherresidente Viruskopie fängt sie ab, erhält das aktuelle Datum und Jahr und vergleicht ihre Addition mit dem CX-Register. Wenn sie gleich sind, gibt die Virus-TSR-Kopie die Kontrolle nicht an die aktive Viruskopie zurück, sondern übergibt sie selbst an das Host-Programm. Es scheint ein ziemlich effektiver Anti-Debugging-Trick zu sein – wenn der Virus bereits resident ist, kehrt ein gewöhnlicher Aufruf wie GetAllocationStrategy nicht zum Debugger zurück.

Wenn eine Datei geöffnet wird, vergleicht der Virus seine Namenserweiterung mit "COM" und "EXE" und speichert im Falle dieser Erweiterungen das Handle der Datei, um es zu infizieren, wenn die Datei geschlossen wird. Daher werden nur ausführbare Dateien infiziert, wenn sie geöffnet werden (z. B. wenn sie von einem Antivirenprogramm auf Viren überprüft oder zur Sicherung gespeichert werden) oder kopiert werden.

Vor dem Infizieren einer Datei überprüft der Virus den Dateinamen und infiziert nicht mehrere Antivirenprogramme und -programme – er infiziert keine Dateien mit Namen, die mit den Buchstaben AV, SC, CL, GU, NO, FV, TO, TB (AVP) beginnen , AVG, SCAN, SAUBER, GUARD, TBAV, etc)

Der Virus schreibt seinen Code an das Ende der EXE-Dateien und ändert die notwendigen Felder im Header der EXE-Datei. Im Falle einer COM-Datei schreibt der Virus seinen Code an den Anfang der Datei und speichert die Originaldatei am Ende der Datei.

Während das Virus infiziert wird, erhöht sich die Dateigröße um eine variable Zahl – es schreibt in die Datei 5297 Bytes tatsächlichen Viruscodes (verschlüsselt) sowie zufällig gewählte Anzahl (bis zu 1001 Bytes) Daten von zufällig ausgewählten Adressen im Systemspeicher. Der Virus richtet außerdem die Länge der EXE-Dateien vor der Infektion auf den Absatz (16 Byte) aus und infiziert keine COM-Dateien mit einer Länge über 60 KB. Zum Trennen von COM- und EXE-Dateien prüft der Virus den Dateikopf (MZ / ZM EXE-Stempel).

Um infizierte und nicht infizierte Dateien zu trennen, verwendet der Virus einen Standardtrick mit dem Zeit- und Datumsstempel der Datei – nach dem Infizieren einer Datei setzt der Virus seinen Zeitstempel auf 2 Sekunden und überprüft diesen Wert vor der Infektion.

Triggerroutine

Die Trigger-Routine wird vom Virus in Abhängigkeit von seinem zufälligen Zähler ausgeführt – beim Infizieren jeder Datei zeigt der Virus mit der Wahrscheinlichkeit 1/4000 den Text "DaRK PARaNOiD" in der Mitte des Bildschirms, dann Geräusche von PC-Lautsprecher und schüttelt den Bildschirm mit VGA Kartenfunktionen.

Der Virus enthält auch den Text innerhalb des Codes seiner polymorphen Engine:


MOTOR DER EWIGEN VERSCHLÜSSELUNG


Link zum Original