begin process at 2010 02 09 22:34:39
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

Aide a la programmation Unix

 > 

Assembleur et tableau + linux + bof


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

Assembleur et tableau + linux + bof

mercredi 25 mai 2005 à 21:12:29 | Assembleur et tableau + linux + bof

flocic

Bonjour,

J'ai un petit pb de comprehension, j'ai un programme qui deborde au bout 44 octet  à cause d'un depassement d ela taille du tableau. Mais ce que je comprend pas c'ets que ton le oce en assembleur il reserve 56 octet (Ox38) dans la pile au lieu de 0x20.

Peux on m'expliquer ou dans la partie asm je peux voir la reel taille du tableau ?

Merci d'avance de vos réponses,

code en C :

void return_input (void){
        char array[30];
        gets (array);
        printf("%s\n", array);
}

main() {
        return_input();
        return 0;
}


code en asm :

Dump of assembler code for function main:
0x080483ea <main+0>:    push   %ebp
0x080483eb <main+1>:    mov    %esp,%ebp
0x080483ed <main+3>:    sub    $0x8,%esp
0x080483f0 <main+6>:    and    $0xfffffff0,%esp
0x080483f3 <main+9>:    mov    $0x0,%eax
0x080483f8 <main+14>:   sub    %eax,%esp
0x080483fa <main+16>:   call   0x80483c4 <return_input>
0x080483ff <main+21>:   mov    $0x0,%eax
0x08048404 <main+26>:   leave
0x08048405 <main+27>:   ret
End of assembler dump.
(gdb) disas return_input
Dump of assembler code for function return_input:
0x080483c4 <return_input+0>:    push   %ebp
0x080483c5 <return_input+1>:    mov    %esp,%ebp
0x080483c7 <return_input+3>:    sub    $0x38,%esp <--- Reservation de 0x38 octet
0x080483ca <return_input+6>:    lea    0xffffffd8(%ebp),%eax
0x080483cd <return_input+9>:    mov    %eax,(%esp)
0x080483d0 <return_input+12>:   call   0x80482c4 <_init+40>
0x080483d5 <return_input+17>:   lea    0xffffffd8(%ebp),%eax
0x080483d8 <return_input+20>:   mov    %eax,0x4(%esp)
0x080483dc <return_input+24>:   movl   $0x8048524,(%esp)
0x080483e3 <return_input+31>:   call   0x80482e4 <_init+72>
0x080483e8 <return_input+36>:   leave
0x080483e9 <return_input+37>:   ret


dimanche 29 mai 2005 à 19:45:36 | Re : Petit coup de pouce

ToutEnMasm

Bonjour,
Il me semble que de passer par un listing de désassemblage pour deviner ce qui est écrit dans le source part d'une démarche un peu tordue.

30 char = 30 bytes (30 fois 8 bits)

gets Aurait-elle besoin de plus de mémoire ?

                         ToutEnMasm
         



Cette discussion est classée dans : mov, return, ebp, eax, esp


Répondre à ce message

Sujets en rapport avec ce message

FPU et puissance d'un nombre [ par AlexMAN ] Bonjour, Voila, j'ai 'codé' 2 fonctions permettant de calculer un nombre n a une puissance exp (la fonction est bourrin, cad pas de decoupages de la f Quels sont les parametres (nombre, taille...) [ par Renfield ] Bonjour,on peut appeler RunDll32 pour executer des fonctions contenues dans des dll...j'aimerais m'affranchir de cette étape, mais j'ai pour cela beso Probleme de compilation [ par noel70 ] Bonjour a tous.voila, sur une fenetre, j'ai mis un bouton, et quand j clique sur ce bouton, j'aimerais faire apparaitre une autre fenetre.Alors ce que Une mémoire "read" [ par msteve ] Bonsoir, Je suis débutant et j'ai recopié un programme test. Je parviens à l'assembler, puis à créer un .exe ; quend je lance l'exe j'obtiens la boîte declaration externe + news Kmdkit [ par patatalo ] salut, du nouveau pour les fondus de ring 0 sous NT: http://www.website.masmforum.com/tutorials/kmdtute/ ( kmd = kernel mode drivers ) avec masm32, exception 13 lors du scan memoire haute [ par patatalo ] salut, pourquoi ce code de detection de memoire en mode 32 bits sans paging me donne une exception 13 sur certaines cartes meres ( ASUS ) a l'adresse Peut on mieux faire ? [ par spiky31 ] Bonjour Voila j'ai commencé ce matin a programmer en assembleur intel et j'aurais voulu avoir votre avis (Je me considére pas vraiment comme un noob j'ai un prob avec mon buffer ; ya pas d'amuses gueules (masm32) [ par papiboff ] bj si je mets le buffer "somme " en dd avec charge eax et que j'ajoute deux 'dec ebx ' , ben , marche pas correctement ; (pêrqué ???? = en french) sv afficher une image jpeg avec la fonction StretchDIBits ? [ par mitch19 ] bonjour, j'essaye depuis quelques temps d'afficher une image jpeg avecla commande  StretchDIBits, en vain ! mon programme plante lamentablement !Si qu inverser une chaine [ par MrdJack ] salut, je suis sur un projet de calculatrice me permettant de faire des calculs avec des nombres tres grands. chaque nombre est stocké dans la memoire


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 : 1,201 sec (4)

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