2016-03-19 5 views
0

Wenn ich eine Binärdatei mit IDA analysiert, ich die folgende Funktion sah:Argumente an eine Funktion in IDA weitergegeben Pro

Function::Function(void *, unsigned int, void *, unsigned int) 

So, wie Sie sehen können, IDA zeigt, dass wir vier Argumente haben. Aber darunter, in der Übersichtsansicht, zeigt IDA, dass wir 5 Argumente haben. Im Folgenden können Sie die Zusammenfassung Ansicht von IDA sehen, wo in der Regel der Argumente und lokale Variablen gezeigt (in diesem Fall haben wir keine lokalen var.):

arg_0 = dword ptr 8 
arg_4 = dword ptr 0Ch 
arg_8 = dword ptr 10h 
arg_C = dword ptr 14h 
arg_10 = dword ptr 18h 

Also, ich frage: Warum ist das so passiert? Ist das ein Fehler von IDA? Oder ist arg_10 eine globale Variable und nicht ein Argument, das an diese Funktion übergeben wird?

Meine Annahme ist, dass IDA den Typ des 5. Arguments nicht auflösen kann, so dass es in der Funktionsdeklaration ausgelassen wird.

Antwort

2

Beim Aufruf von Methoden eines Objekts wird implizit ein Zeiger auf das Objekt als Parameter an die Funktion übergeben. (Dies ist, was das this Schlüsselwort darstellt)

Es ist sehr wahrscheinlich, dass arg_0 der this Zeiger ist.

Verwandte Themen