begin process at 2010 02 09 19:50:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Newbii

 > 

[nasm] cryptage


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[nasm] cryptage

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

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

le probleme est effectivement le nombre d'appel a l'interruption 21h ( surtout sous XP ).

commence par lire et ecrire tes fichiers par bloc et déjà ça devrait aller mieux ( mais ca oblige a avoir un algorithme un peu plus travaillé ).

@++
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

Membre Club Administrateur CodeS-SourceS

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ée dans : fichier, int, mov, 21h, cmdline


Répondre à ce message

Sujets en rapport avec ce message

Lecture de DTA [ par mouadestla ] Bonsoir , je débute en assembleur , j'esseye de coder en 16 bits un petit programme qui fait appele à l'interuptions 21h : 4Eh du DOS qui cherche un f Mon fichier Mp3 [ par li2k ] Salut!J'aimerai créer en assembleur un programme qui lance la lecture d'un fichier mp3 (Juste pour faire mon réveil personnalisé  sur ordi)Mais bon le 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 probleme d'affichage d'une soustraction [ par calimerros ] [u]Bonjour à tous et à toutes.[/u] Voici un programme que je réalise et je bloque au niveau de l'affichage d'une soustraction (SUB). Pour moi mon pr 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 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 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 un code en assembleur [ par tatouna ] salut à tous, je suis débutante en asm donc j'ai un problème et je souhaite que vous m'aidiez j'ai une chaine de caractère (une date) et je veut la p 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales