Vom Assembler code zur Funktion Deklaration?



  • Nabend,

    habe hier ein kleines Problem, wobei evt. mir jemand helfen könnte. Ich habe eine DLL wovon ich von einigen Funktionen eine Funktionsdeklaration brauche, um diese nutzen zu können (d.h. Ich brauche die Parameter!)
    Ist das möglich dies direkt über die DLL mit Hilfe eines Disassemblers zu lösen?

    Das wäre ein Ausschnitt von einer Funktion! Ich gehe mal von aus, dass die folgenden "arg_[?]" die einzelnen Parameter sind, nur kann ich diese nicht richtig interpretieren...

    .text:20003140                 public StartCapture
    .text:20003140 StartCapture    proc near
    .text:20003140
    .text:20003140 arg_0           = dword ptr  8
    .text:20003140 arg_4           = dword ptr  0Ch
    .text:20003140 arg_8           = dword ptr  10h
    .text:20003140 arg_C           = dword ptr  14h
    .text:20003140 arg_10          = dword ptr  18h
    

    Viele Grüße...



  • Ich denke, die Anzahl der Parameter kann man damit noch richtig bestimmen, aber um welche Parameter es sich dabei handelt, ob eine Integer-Zahl oder Pointer auf eine Integer-Zahl oder Pointer auf irgendeine Struktur, muss man weiter im Assembler-Code der Funktion schauen...



  • Wenn die Dll C++ Code ist, dann ist das normalerweise möglich. Zumindest bin ich mir bei von g++ generiertem Code ganz sicher. Da kann man den symbolnamen zurcük in die Funktionsdeklaration umwandeln:

    echo "symbolname" | c++filt

    c++filt ist bei den binutils dabei.


Anmelden zum Antworten