begin process at 2012 02 07 09:48:20
  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 Saisie & Calcul de sa taille de caractère en tasm [ par baz13shaz ] je veut saisir une chaine de caractère & calculer sa taille,et je veut charger la chaine saisie en mémoire centrale? que doit je faire? comment je peu Voir si un caractère est dans une chaine [ par Wayth ] Bonsoir, Je viens sur votre forum car je n'arrive pas à trouver un label fonctionnel pour voir si un caractère se trouve ou non dans une chaîne de ca


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,265 sec (4)

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