Funktiondeklarations Ermitteln

Also man kriegt ja ab und zu mal einen patcher in die hände, und der letzte den ich jetzt in den finger hatte hat eine dll gepatch. Dacht ich mir, kein problem gucken wir uns die dll doch mal an.

857769.jpeg


Kann man wenn man nun den funktionsnamen schon finden kann auch den rest also rückgabewert u. parameter aus der dll ermitteln oder muss ich da in assembly den aufruf suchen?
 
Den Funktionsnamen kann man nur ermitteln, wenn die Funktion der Dll auch explizit exportiert wird. (Damit andere Module diese Funktionen nutzen können)
Rückschlüsse auf die Funktionsdeklaration dagegen lässt dies nicht zu.
Dazu müsste man sich dann die Assembly der Funktion selbst und am besten noch die Aufrufe der Funktion anschauen. So kann man dann die Aufruf-Konvention [1] und die Anzahl der übergebenen Argumente herausfinden.
Bei der Rückerschliessung der Parametertypen und des Rückgabewertes muss man sich manchmal etwas mehr Mühe geben. Möglicherweise handelt es sich gar um einen unbekannten Typen, den man dann rekonstruieren muss.
Dagegen sieht es bei den ursprünglichen Namen der Funktionsparameter wieder ganz düster aus. Das geht nämlich gar nicht mehr. ;)

[1] http://en.wikipedia.org/wiki/X86_calling_conventions
 
Zurück
Oben