Bonjour,

J'ai un petit travail à faire pour expliquer ce code et j'ai besoin d'aide:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
00520600  push		 ebp  				;Push contents of ebp to the stack
00520601  mov         	ebp,esp 			; ebp=esp
00520603  mov         	dword ptr [pointer],80706050h 	; pointer=80706050h
0052060A  push        	ebx  				;Push contents of ebx to the stack
0052060B  push        	1    				;Push 1 to the stack
0052060D  call        	foobar (0x005100F2h) 
00520612  add         	esp,4 				; esp=esp+4
00520615  mov         	ebx,dword ptr [pointer] 	; ebx=pointer
00520618  mov         	dword ptr [ebx],eax 		; the value pointed by ebx = eax
...
Que fait ce code?
Expliquer ce qu'il y a de faux dans ce code qui va causer un plantage.
Quelle est la convention utilisée– stdcall, cdecl, fastcall ou thiscall?

Donc j'ai rajouté les commentaires.
J'ai un peu de mal à voir le but général.
Je pense que le problème vient du fait qu'on essaye en quelque sorte de passer un argument à la fonction foobar alors que ce n'est pas la syntaxe.
Je pense que c'est la convention cdecl car la pile est nettoyé après.

Merci d'avance pour votre aide.