Einzelnen Beitrag anzeigen

scp

Registriert seit: 31. Okt 2003
1.120 Beiträge
 
Delphi 7 Personal
 
#1

[Assemmbler] Aufrufkonvention erkennen

  Alt 25. Aug 2005, 00:38
Kann man anhand des Aufrufs einer Funktion in einem fremden Programm, die Paramteranzahl dieser Funktion ermitteln? Ich schätze die Funktion hat etwa sieben Parameter, die ersten drei sind PWideChars, 4-8 sind einfach 0, wenn ich die Funktion zum test hooke.
Sie hat auch einen Rückgabewert, da ja eax mit 1 verglichen wird.

Eigentlich dachte ich immer, die ersten drei Paramter werden in ebx, ecx und edx abgelegt, aber wie funktioniert das nun bei so vielen Parametern?

Code:
* Reference To: KERNEL32.GetProcAddress, Ord:0197h
                                  |
:00407753 FF1580104000            Call dword ptr [00401080]
:00407759 3BC6                    cmp eax, esi
:0040775B 743D                   je 0040779A
:0040775D 56                      push esi
:0040775E FF7524                  push [ebp+24]
:00407761 FF7520                  push [ebp+20]
:00407764 FF751C                 push [ebp+1C]
:00407767 FF7518                  push [ebp+18]
:0040776A FF7514                  push [ebp+14]
:0040776D 56                      push esi
:0040776E 56                      push esi
:0040776F 56                      push esi
:00407770 56                      push esi
:00407771 56                      push esi
:00407772 FF7510                  push [ebp+10]
:00407775 FF750C                 push [ebp+0C]
:00407778 FF7508                  push [ebp+08]
:0040777B FFD0                    call eax
:0040777D 83F801                  cmp eax, 00000001
:00407780 7429                    je 004077AB
:00407782 50                      push eax
:00407783 6868254000              push 00402568
:00407788 6838254000              push 00402538
  Mit Zitat antworten Zitat