|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : [nasm] cryptage [ Archives / Newbii ] (sirozz)
Informations & options pour cette discussion
mardi 3 août 2004 à 16:46:30 |
[nasm] cryptage

sirozz
|
Salut à tous ! J'ai fait un petit prog qui crypte (xor) un fichier passé en ligne de commande, mais j'ai fait ça avec le guide des interruptions sous les yeux et c'est de la pure bidouille. Ca marche mais c'est trop trop lent !! je crois que c'est parce que j'utilise justement trop d'appels aux interruptions. voila le source : -------------------------------------------------------------------------- key equ 12341234h [org 100h] mov cl, [80h] ; recup cmdline mov si, 82h mov di, cmdline rep movsb dec di mov [es:di], byte 0 mov ah, 3dh ; ouverture fichier mov al, 0h mov dx, cmdline int 21h mov [handle1], ax mov ah, 3ch ; creation fichier temp mov cx, 20h mov dx, cmdline + 1 int 21h mov [handle2], ax read mov ah, 3fh ; lecture de 4 octets mov bx, [handle1] mov cx, 4 mov dx, dwordBuf int 21h cmp ax, 0 je fin crypt mov eax, [dwordBuf] xor eax, key mov [dwordBuf], eax mov ah, 40h ; ecriture dans fichier temp mov bx, [handle2] mov cx, 4 mov dx, dwordBuf int 21h jmp read fin mov ah, 3eh ; ferme fichier source mov bx, [handle1] int 21h mov ah, 3eh ; ferme fichier temp mov bx, [handle2] int 21h mov ah, 41h ; supprime le source mov dx, cmdline int 21h mov ah, 56h ; renomme le temp mov dx, cmdline + 1 mov di, cmdline int 21h ret [segment .bss] cmdline resb 127 handle1 resw 1 handle2 resw 1 dwordBuf resd 1 -------------------------------------------------------------------------- Avez-vous une solution simple et plus rapide ? (je crois que les pros de l'assembleur vont pousser des hauts-cris en voyant mon code....faut bien commencer quelque part....) Merci d'avance.
|
|
|
mardi 3 août 2004 à 17:57:58 |
Re : [nasm] cryptage
|
mardi 3 août 2004 à 18:21:23 |
Re : [nasm] cryptage

sirozz
|
ok, merci pour le conseil mais peut tu me dire (en gros) comment faire ce genre de truc (lire et écrire par bloc), il faut que je fasse le cryptage en mémoire ? ou si ya déja un message sur ce forum qui traite du sujet, peut tu me poster le lien ? merci.
|
|
|
mardi 3 août 2004 à 18:47:42 |
Re : [nasm] cryptage

patatalo
|
re,
Buff resd 1024
.lp1 mov ah, 3fh ; lecture de 4 octets mov bx, [handle1] mov cx, 4096 lea dx, [Buff] int 21h ;jc ??
cmp ax,0 mov bx,ax je .end
push ax .lp2 xor dword [Buff+bx-4],key sub bx,4 ja .lp2 ; les derniers octets seront omis si - de 4 octets pop cx
mov ah, 40h ; ecriture dans fichier temp mov bx, [handle2] lea dx, [Buff] int 21h jnc .lp1
.end
ca devrait etre un truc comme ça ...
@++
|
|
|
mardi 3 août 2004 à 20:13:20 |
Re : [nasm] cryptage

sirozz
|
Ok, merci Patatalo ! je vais essayer ça.
|
|
|
mardi 3 août 2004 à 20:53:10 |
Re : [nasm] cryptage

sirozz
|
Réponse acceptée !
Excellent ! Merci beaucoup Patatalo ! Ca marche bien maintenant. Je pose le source : --------------------------------------------------------
key equ 12341234h
[org 100h]
mov cl, [80h] ; recup cmdline mov si, 81h mov di, cmdline rep movsb mov [es:di], byte 0
mov ah, 3dh ; ouverture fichier mov al, 0h mov dx, cmdline int 21h mov [handle1], ax
mov ah, 3ch ; creation fichier temp mov cx, 20h mov dx, cmdline + 1 int 21h mov [handle2], ax
read mov ah, 3fh ; lecture mov bx, [handle1] mov cx, 4096 mov dx, buffer int 21h mov bx, ax ; recup nb d'octets lus cmp ax, 0 je fin
push ax ; sauve nb octets lus crypt xor dword [buffer+bx-4], key sub bx, 4 ja crypt mov ah, 40h ; ecriture dans fichier temp mov bx, [handle2] pop cx ; recup ax = nb octets mov dx, buffer int 21h
jmp read
fin mov ah, 3eh ; ferme fichier source mov bx, [handle1] int 21h
mov ah, 3eh ; ferme fichier temp mov bx, [handle2] int 21h
mov ah, 41h ; supprime le fichier source mov dx, cmdline int 21h
mov ah, 56h ; renomme le fichier temp mov dx, cmdline + 1 mov di, cmdline int 21h
ret
[segment .bss] cmdline resb 127 handle1 resw 1 handle2 resw 1 buffer resd 1024
--------------------------------------------------
par contre ya un truc étrange, NASM ne compile pas avec les bons opcodes quand j'utilise "lea dx, buffer". mais ça marche bien avec "mov dx, buffer". @+
In tartiflette we trust !
|
|
|
mercredi 10 septembre 2008 à 06:59:03 |
Re : [nasm] cryptage

damahom
|
Je ne suis pas un expert en ASM, mais des que l'on crypte un fichier avec XOR le mot de passe apparait en répété spécialement si il y des zéro(0) car: Imaginons un mot de passe de 4bits(juste pour faire simple) par exemple : '1101'
essayons d'encoder un petit fichier de 16bits '1101100010110000' faisons comme ceci 1101100010110000 et copiant le passe 1101110111011101 et faisons le XOR 0000010101101101 les dernier 4 bit sont | zéro alors le passe ce répété--------------|
Ceci est un simple exemple, imaginez un fichier plein de zero.
Pour moi la solution serai de compresser le fichier par un methode de compression des bit repete.
|
|
|
Cette discussion est classé dans : fichier, int, mov, 21h, cmdline
Répondre à ce message
Sujets en rapport avec ce message
loader problème de code [ par TRAX44 ]
salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche
Help : afficher une chaine de caractère "mémorisée" [ par did2604 ]
Bonsoir à tous. Mon problème peut vous paraître très simpliste, mais pour quelqu'un qui fait de la programmation assembleur depuis à peine 1 mois, tou
Probleme de clic !!!! [ par mgorillaz ]
Bonjour je suis debutant en assembleur et je dois faire une calculatrice mais sous certaine conndition et je n'arrive pas du tout a gerer mes clics !!
Probleme ds mon code ki peut m aider?? [ par Gillouille ]
voila l'objectif de ce programme c est de comparer deux fichiers de longueur differente et d'y trouver tt les éléments commun kelke soit leur position
Problème de restitution d'une chaîne. [ par Sawteeth ]
Bonsoir. Je viens de débuter l'assembleur et j'ai tenté de faire un petit programme qui lit une chaîne au clavier et l'affiche à l'écran. Le problème
assembleur/ patronyme [ par maxverypainful ]
Bonjour, je suis nouveau en tant qu'étudiant en informatique de gestion et j'ai une question concernant un code que nous devons créer.Il a pour but de
tp assembleur i3 pour la FST [ par babbiverus ]
main proc mov ax,@Datamov ds, axmov si,offset tabmov cx, 16mov bx,0saisie: mov dx,offset commande;afficher "saisir un nombre"mov ah,9int 21hmov ah, 1
Mini OS !! debut [ par Hardouz ]
salut a tous ! je debut en ASM je vx bosser un px en ASM je connais l'architechture ect !!! j'ai fais un pti programme mais il ya un probléme 1/ lors
AT&T erreur de compilation etc... [ par maminovadu75 ]
Bonjour, j'aimerais me mettre a l'assembleur mais j'ai quelque problème.voici mon code morceau de code pour trier un tableau de int : ( mélange de C/C
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|