2010-12-28 11 views
1

Ich habe eine .dll in den Adressraum eines anderen Prozesses injiziert. Die Ziel-App verwendet die QT-Bibliothek. Ich kann einen Umweg einfügen, so dass jedes Mal, wenn die QT-Funktion ? RowsInserted @ QListView @@ MAEXABVQModelIndex @@HH @ Z aufgerufen wird, meine Funktion aufgerufen wird und dann der Aufruf weitergeleitet wird. Wie bekomme ich jedoch Zugriff auf die Parameter, die an? RowsInserted @ QListView @@ MAEXABVQModelIndex @@ HH @ Z übergeben werden? Ist dieser Name verstümmelt, in welchem ​​Fall ist es normalerweise?IAT Hooking, QT-Bibliothek

Danke.

+0

Eigentlich kann man nicht richtig eine Funktion Umweg, wenn Sie genau seine Unterschrift (und Aufrufkonvention für x86-Anwendungen) kennen. Andernfalls stürzt man die App einfach ab. Sehen Sie sich die Qt-Dokumentation an und finden Sie die Beschreibung dieser Methode. Und sicher, müssen Sie überprüfen, dass dies tatsächlich von DLL exportiert wird. – Andrey

Antwort

1

Es sieht so aus, als ob die Funktion wahrscheinlich QListView::rowsInserted(const QModelIndex &, int, int) ist. Die Parameter sind in der Funktionsreferenz aufgeführt.

+0

Danke Greg, wie gehst du darauf hinaus oder ist es nur ein Fall von diesem ist der nächste? Ist der Name verstümmelt? Eine andere Frage, die mir in den Sinn kam, war, ob IDA dafür verantwortlich sein würde, den Namen zu verstümmeln. Noch einmal Danke. – flavour404

+0

Der verfälschte Name begann mit 'rowsInserted @ QListView @@', und ich wusste, dass MSVC den Namen auf diese Weise für eine Funktion namens 'rowsInserted' in der' QListView' Klasse mausert. Es stellt sich heraus, dass es nur eine Funktion mit diesem Namen gibt. Unter [Name mangling] (http://en.wikipedia.org/wiki/Name_mangling) finden Sie weitere Informationen darüber, warum der Compiler das tut (es ist nicht IDA). –

1

Mit dem Tool undname können Funktionsaufrufe rückgängig gemacht werden. Es wird mit Visual C++ ausgeliefert.
Raymond Chen darüber gebloggt: Undecorating names to see why a function can't be found

C:\Program Files\Microsoft SDKs\Windows\v7.1>undname [email protected]@@[email protected]@[email protected] 

Undecoration of :- "[email protected]@@[email protected]@[email protected]" 
is :- "protected: virtual void __thiscall QListView::rowsInserted(class QModelIndex const &,int,int)" 
Verwandte Themen