CE SERVICE PEUT CONTENIR DES TRADUCTIONS GÉNÉRÉES PAR GOOGLE. GOOGLE DÉCLINE TOUTE GARANTIE, EXPLICITE OU IMPLICITE, Y COMPRIS LES GARANTIES D'EXACTITUDE, DE FIABILITÉ, AINSI QUE TOUTE GARANTIE IMPLICITE DE COMMERCIALISATION ET D'ADAPTATION À DES FINS PARTICULIÈRES ET À L'ABSENCE DE CONTREFAÇONS.

Le site internet de Kaspersky Lab a été traduit pour votre commodité en utilisant un logiciel de traduction générée par Google. Des efforts raisonnables ont été faits pour fournir une traduction exacte. Cependant, aucune traduction automatique n'est parfaite et l'objectif n'est pas de remplacer le travail des traducteurs. Le site internet de Kaspersky Lab fournit ces traductions comme un service pour ses utilisateurs, et elles ont été publiées "telles quelles". Aucune garantie, explicite ou implicite, n'est faite au sujet de l'exactitude, de fiabilité ou de conformité de ces traductions faites de l'anglais vers une autre langue. Certains contenus (images, vidéos, Flash, etc.) peuvent ne pas être traduits correctement à cause des limites du logiciel de traduction.

Virus.DOS.DarkParanoid

Classe Virus
Plateforme DOS
Description

Détails techniques

C'est un virus polymorphe parasite résidant en mémoire. Il accroche INT 1, 21h et s'écrit à la fin de EXE et au début des fichiers COM.

Ce virus utilise un moyen de cryptage à la volée très complexe – à tout moment où le code viral est exécuté, la seule instruction présente sous forme non cryptée – tous les autres codes de virus sont cryptés. Le virus fait cela en utilisant des astuces avec le mode de traçage INT 1. Lorsque le code viral reçoit le contrôle, il accroche INT 1 et après l'exécution de toute instruction de virus (sauf plusieurs opcodes spéciaux – voir "Guide de l'utilisateur Intel 80×86") INT 1 est appelé. Le virus accroche cet appel, déchiffre le code ci-dessous de l'instruction en cours et crypte le code ci-dessus.


instruction précédente – cryptée
instruction actuelle – nettoyer
instruction suivante – cryptée
Après avoir exécuté "l'instruction en cours", le virus prend le contrôle du crochet INT 1, crypte "instruction en cours" et décrypte "instruction suivante". En conséquence, à tout moment soit tout le code du virus est crypté, soit une seule instruction présente en clair. De plus, le virus crypte / déchiffre pas exactement le code de l'instruction précédente / suivante, mais quelques octets / mots à plusieurs décalages par rapport à l'adresse de l'instruction en cours. En conséquence, le flux d'instructions du virus ressemble à un "spot" mobile avec une instruction "clean" au milieu du spot, du code partiellement chiffré dans le reste du spot, et du code complètement chiffré en dehors du spot.

Il y a trois blocs de code qui ne peuvent pas être cryptés de cette façon – ils sont INT1 gestionnaire (en / decryptor), le code de départ dans les fichiers infectés et le gestionnaire INT 21h dans la copie du virus TSR. Le code de début dans les fichiers et INT 21h handler hook INT 1 lors du contrôle de réception, passer en mode de traçage et passer le contrôle aux routines principales – routine d'installation dans les fichiers et le code INT 21h gestionnaire principal dans la copie du virus TSR.

La routine d'accrochage INT 1 et, bien sûr, le gestionnaire INT 1 lui-même ne sont pas cryptés, ils sont simplement polymorphes – le virus utilise un moteur polymorphe assez fort pour générer le code de INT 1 au point d'entrée dans les fichiers infectés. 1 et 21h gestionnaires.

Code de virus dans le fichier infecté:


Entrée: + ————- +
| INT 1 talonneur | – polymorphe
| – – – – – – – |
INT 1 gestionnaire | – polymorphe
| – – – – – – – |
Virus principal | – crypté par INT 1
code: TSR |
| installateur, |
| etc |
+ ————- +
Code de virus en mémoire:

INT 21h + ————- +
entrée: | INT 1 talonneur | – polymorphe
| – – – – – – – |
INT 1 gestionnaire | – polymorphe
| – – – – – – – |
Virus principal | – crypté par INT 1
| code: INT 21h |
gestionnaire, |
| etc |
+ ————- +
Par conséquent, toutes les «entrées» du code viral (adresse de début dans les fichiers infectés, gestionnaire INT 1 et code de démarrage INT 21h) sont polymorphes et le code viral principal est crypté – c'est une tâche assez importante pour les chercheurs antivirus. procédures pour ce type de virus.

Moteur polymorphique

La différence entre les moteurs polymorphes ordinaires et le moteur de "DarkParanoid" est le fait que dans ce virus il n'y a pas de boucle de décryptage en code polymorphe – il ne fait que crocheter INT 1 et commence à tracer le code principal. Ce code dans différents fichiers infectés peut apparaître sous une forme différente – tout en générant ce code le virus sélectionne aléatoirement les registres, les commandes, les modes d'accès aux données et ainsi de suite.

Similaire pour le gestionnaire INT 1 qui contient une routine de cryptage / décryptage à la volée. Ce code dans différents fichiers est également différent – plus de dix fonctions de cryptage sont sélectionnées au hasard dans l'ensemble: ADD, SUB, XOR, NEG, NOT, ROR, ROL, ainsi que l'accès par octet et mot. Des registres aléatoires sont également utilisés, et le décalage du gestionnaire INT 1 est sélectionné au hasard dans certaines limites.

Installation et INT 21h Handler

Le virus "DarkParanoid" est résident en mémoire, donc lorsque le fichier infecté est exécuté, le virus s'installe dans la mémoire du système. Pour ce faire, il accroche INT 1 pour activer sa routine de décryptage / décryptage à la volée, alloue un bloc de mémoire système dans la mémoire DOS conventionnelle ou dans les blocs mémoire supérieurs, s'il y a la quantité de mémoire libre nécessaire (environ 7,5K). Le virus copie ensuite son code là-bas, croise INT 21h et renvoie le contrôle au programme hôte.

Lors de l'installation de la mémoire résidente, le virus exécute également son moteur polymorphique pour générer des routines de décryptage afin de les utiliser tout en infectant les fichiers. Le virus n'appelle plus ce moteur et, en conséquence, le virus va déposer le même code polymorphe dans les fichiers jusqu'au prochain redémarrage et réinstallation. Cela peut tromper un utilisateur et des chercheurs de virus – le virus essaie de les rendre sûrs que c'est juste un virus crypté mais pas polymorphe, de sorte qu'il est possible de le détecter simplement par un seul motif hexadécimal.

Le gestionnaire de virus INT 21h intercepte les appels FileOpen / Create (AH / AX = 3Ch, 5Bh 6C00h), l'appel FileClose (AH = 3Eh) et la stratégie Get Allocation (AX = 5800h).

La dernière fonction (Get Allocation Strategy) est utilisée comme "Are You Here?" appel. Cet appel est effectué par le virus lors de l'installation de la mémoire résident. Avant cet appel, le virus met dans le registre CX le numéro de l'année en cours plus les numéros du mois et du jour actuels (Obtenir la date actuelle par INT 21h avec AH = 2Ah, puis CX = CX + DX, puis appel INT 21h avec AX = 5800h).

La copie de virus résidant en mémoire l'intercepte, obtient la date et l'année en cours et compare leur addition au registre CX. Si elles sont identiques, la copie TSR du virus ne renvoie pas le contrôle à la copie de virus active, mais le transmet au programme hôte par lui-même. Il semble être une astuce anti-débogage assez efficace – si le virus est déjà résident en mémoire, un tel appel ordinaire comme GetAllocationStrategy ne retourne pas au débogueur.

Quand un fichier est ouvert, le virus compare son extension de nom avec "COM" et "EXE", et dans le cas de ces extensions enregistre le handle du fichier pour l'infecter quand le fichier sera fermé. Par conséquent, seuls les fichiers exécutables sont infectés lorsqu'ils sont ouverts (par exemple, lorsqu'ils sont analysés par un programme anti-virus, ou sauvegardés dans une sauvegarde), ou copiés.

Avant d'infecter un fichier, le virus vérifie le nom du fichier et n'infecte pas plusieurs programmes et utilitaires anti-virus – il n'infecte pas les fichiers commençant par les lettres AV, SC, CL, GU, NO, FV, TO, TB (AVP , AVG, SCAN, CLEAN, GARDE, TBAV, etc.)

Le virus écrit son code à la fin des fichiers EXE et modifie les champs nécessaires dans l'en-tête du fichier EXE. Dans le cas du fichier COM, le virus écrit son code au début du fichier et enregistre le fichier d'origine en commençant à la fin du fichier.

Tout en infectant le virus augmente la taille du fichier par nombre variable – il écrit dans le fichier 5297 octets de code de virus réel (crypté) ainsi que le nombre aléatoire sélectionné (jusqu'à 1001 octets) de données de l'adresse sélectionnée aléatoire dans la mémoire système. Le virus aligne également la longueur des fichiers EXE sur le paragraphe (16 octets) avant l'infection, et n'infecte pas les fichiers COM d'une longueur supérieure à 60 Ko. Pour séparer les fichiers COM et EXE, le virus vérifie l'en-tête du fichier (tampon MZ / ZM EXE).

Pour séparer les fichiers infectés et non infectés, le virus utilise un astuce standard avec l'horodatage du fichier – après avoir infecté un fichier, le virus définit son horodatage sur 2 secondes et vérifie cette valeur avant l'infection.

Trigger Routine

La routine de déclenchement est exécutée par le virus en fonction de son compteur aléatoire – en infectant chaque fichier le virus avec une probabilité de 1/4000 affiche le texte "DaRK PARaNOiD" au milieu de l'écran, puis des bruits par le haut-parleur PC et secoue l'écran en utilisant VGA caractéristiques de la carte.

Le virus contient également le texte à l'intérieur du code de son moteur polymorphe:


MOTEUR DE CHIFFREMENT ÉTERNEL


Lien vers l'original