begin process at 2012 05 25 11:54:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Newbii

 > 

Un peu d'aide svp


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

Un peu d'aide svp

lundi 8 août 2005 à 21:48:12 | Un peu d'aide svp

sic_clash

Bien voila, je m'interesse a l'asm depuis peu, et pour cela j'etudie des scripts pour tenter d'assimiler les sctructures syntaxes et deroulement. Mais n'ayant pas trouvé de reponses dans les tutos, explications d'instructions et autres recherches, je poste ici en esperant de l'aide voici donc mon probleme : MOVZX EAX,BYTE PTR SS:[EBP-28] CMP AL,BYTE PTR SS:[EBP-18] JNZ SHORT hjerdfgi.00401329 Je ne comprends pas l'instruction MOVZX utilisé ici ni le rapprochement entre EBP-28 et EBP-18 . je vous pris de bien vouloir pardonner mon ignorance et m'escuse si ce poste vous semble mal placé .
lundi 8 août 2005 à 22:15:18 | Re : Un peu d'aide svp

BruNews

Administrateur CodeS-SourceS
movzx remplit l'octet bas de EAX donc AL et met les 3 octets hauts de EAX à ZERO.
Pour le reste, ben ça dépend de ce que doit faire ce prog.

ciao...
BruNews, MVP VC++
lundi 8 août 2005 à 22:34:37 | Re : Un peu d'aide svp

sic_clash

merci bien de ta reponse, enfete c'est un programme "password" une sorte de crack-me enfin voici ce qu'il se passe apres la saisi du code : MOVZX EAX,BYTE PTR SS:[EBP-28] CMP AL,BYTE PTR SS:[EBP-18] JNZ SHORT hjerdfgi.00401329 MOVZX EAX,BYTE PTR SS:[EBP-27] CMP AL,BYTE PTR SS:[EBP-17] JNZ SHORT hjerdfgi.00401329 MOVZX EAX,BYTE PTR SS:[EBP-26] CMP AL,BYTE PTR SS:[EBP-16] JNZ SHORT hjerdfgi.00401329 MOVZX EAX,BYTE PTR SS:[EBP-25] CMP AL,BYTE PTR SS:[EBP-15] JNZ SHORT hjerdfgi.00401329 MOV DWORD PTR SS:[ESP],hjerdfgi.00403034 CALL CALL MOV DWORD PTR SS:[EBP-2C],0 JMP SHORT hjerdfgi.00401341 MOV DWORD PTR SS:[ESP],hjerdfgi.0040305C ca fait un bout de temps que je m'efforce de comprendre le stratageme ...
mardi 9 août 2005 à 10:25:35 | Re : Un peu d'aide svp

Nasman

A priori le programme compare les 4 octets successifs placés en EBP-28 ...EBP-25 avec ceux placés en EBP-18 ...EBP-15. Si un des octets ne coïncide pas on va en hjerdfgi.00401329 (ce qui doit déclancher plus tard un message du type "va te faire voir") sinon l'adresse hjerdfgi.00403034 est mise au sommet de la pile en  écrasant ce qui s'y trouvait. Ne serait-ce pas l'adresse de retour d'un sous programme (si le morceau de code en est un). Dans ce cas s'il y a un ret en fin du sous programme, le retour ne se fera pas à l'endroit escompté mais à l'adresse hjerdfgi.00403034. Je pense que le même principe est employé avec l' instruction MOV DWORD PTR SS:[ESP],hjerdfgi.0040305C.

Par hazard, est-ce que l'adresse hjerdfgi.00401329 ne correspondrait pas avec l'instruction MOV DWORD PTR SS:[ESP],hjerdfgi.0040305C ?
mardi 9 août 2005 à 10:36:37 | Re : Un peu d'aide svp

sic_clash

Encors merci pour tes explications j'y vois plus clair maintenent, et en effet cette addresse correspond avec l'instruction MOV DWORD PTR SS:[ESP],hjerdfgi.0040305C :)
jeudi 11 août 2005 à 12:14:33 | Re : Un peu d'aide svp

sic_clash

escusez moi encors pour mes questions mais je ne comprends toujours pas ce qu'est enfete EBP-18 ...
jeudi 11 août 2005 à 13:27:35 | Re : Un peu d'aide svp

Nasman

esp est un pointeur qui désigne le sommet de la pile, [esp] est la valeur de l'octet se trouvant à cet emplacement [esp+1] designe l'octet suivant. Après un call [esp],[esp+1],[esp+2],[esp+3] contient le valeur de retour (l'emplacement de l'instruction qui suit le call). Si dans le sous programme tu effectue un push eax, esp est décrémenté de 4 (la pile marque à l'envers) et l'adresse de retour se trouvera dans [esp+4]--[esp+7]

ebp est un autre pointeur de pile qui n'est pas affecté par les push (et pop). Il peut être plus commode de calculer les adresses à partir de ce pointeur. Dans le cas précédent si tu fais
Call sousprogramme

;sousprogramme
mov ebp,esp      ;esp pointe sur la valeur de eip qui suit l'appel du call
push eax            ;décrémente esp de 4
    [ebp]        représente toujours eip
    [esp]      représente eax

Donc [ebp-18] correspond à la valeur située 18 octets avant ce que pointe ebp

Si tu avais fait
push eax
mov ebp,esp      ;ebp pointe sur eax
push ebx            ;esp pointe sur ebx (esp:=ebp-4)
push ecx            ;esp pointe sur ecx (esp:=ebp-8)
push edx            ;esp pointe sur edx (esp:=ebp-12)
push esi              ;esp pointe sur esi (esp:=ebp-16)
push ax               ;esp pointe sur ax (esp:=ebp-18)

Pour retrouver la valeur de eax sauvegardée tu peux faire:
mov eax,[esp+18]   ;difficulté de ce baser sur un index mouvant
mov eax,[ebp]         ;n'est ce pas plus simple ?
Ce n'est pas très compliqué mais il fait faire bien attention au nombre d'octets empilés


jeudi 11 août 2005 à 13:40:51 | Re : Un peu d'aide svp

BruNews

Administrateur CodeS-SourceS
mov eax,[esp+18]  ERREUR de frappe, toujours sur un multiple de 4 en system 32 bits, chaque PUSH empile 4 octets.

ciao...
BruNews, MVP VC++
jeudi 11 août 2005 à 13:58:40 | Re : Un peu d'aide svp

Nasman

L'instruction push ax empile également 4 octets ?
jeudi 11 août 2005 à 14:11:15 | Re : Un peu d'aide svp

BruNews

Administrateur CodeS-SourceS
sur system 32 bits et prog 32, toujours 4 octets, éviter aussi cette écriture, 'push eax' et masque les 16 bits haut au besoin.

ciao...
BruNews, MVP VC++

1 2

Cette discussion est classée dans : aide, poste, ici, ebp, movzx


Répondre à ce message

Sujets en rapport avec ce message

Aide chaine de caracteres, nasm sous dos [ par Juke ] quelqu'un peut t'il m'aider pour un truc tout con.Comment faire pour demander à l'utilisateur de saisir une chaine, et de lui reafficher ?j'ai des tut demande d'aide pour (débutant) [ par TRAX44 ] salut,je débute, et ne c pas encor kel assembleur je dois utiliser : kel sont les différences entre masm tasm nasm. Pour le language d'après ce que g besoin d'aide [ par huhude ] bonjour je voudraisde laide :)j voudrais pouvoir mettre licone ke je veux pour ma fenetrepar exempleinvoke LoadIcon,NULL,IDI_MONICONEmais je c po com aide pour faire jeux 3d [ par ghyslain ] nous somme en train de faire un jeu 3d de dragon ball z sur pc.sa ne peux que etre une bonne experience.pour nous aider nous avons besoin de:_programm besoin d'aide [ par assm ] j'ai besoin d'un programme qui simule le fonctionnement d'une calculatrice ça veut dire :l'evaluation de l'expression "12+8*7-2+77"sera la suivante :1 Demande d'aide [ par jade ] Bonjours J'aimerai aprendre à programmer avec le langage assembleur et je veus allez pas à pas .Merci de votre collaboration Aide en Assembleur [ par vzz ] Bonjour j'aimerai debuter l'assembleur mais je ne sait pas du tout quoi prendre pour le programmer parce que d'apres ce que j'ai compris il y a plusie lecture octet par octet [ par manu18 ] JeremJ'aurai besoin de votre aideJe programme sous Delphi et j'essaye de lire octet par octet un fichier avec la fonction "Read(F,value)"Malheureuseme besoin d'aide tres urgent!!! [ par lefrans ] voila mon probleme je recherche le code en PBP (pic basic pro) pour programer un pic 16f877 d'une calculatrice (simple)je dispose d'un clavier 4x4 et besoin d'aide pour de l'assembleur sous simulateur [ par critchou ] Bonjour, j'ai un programme à faire pour mercredi et je ne sais pas trop comment faire.Je dois écrire un texte (jusque là, ça va) et compter le nombre


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 12,854 sec (3)

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