Dialoge aus Ressourcen anzeigen

Guten Abend.
Ich bin dabei, ein Programm zu reversen und suche einen "Einstieg". Ich habe festgestellt, dass je nachdem, ob man registriert ist oder nicht, verschiedene About-Boxen angezeigt werden. Per ResHack habe ich die Dialoge in den Ressourcen gefunden. Nun habe ich versucht, die Stelle zu finden, an der sie geladen/angezeigt werden. Nun mein Problem: Ich dachte, der gegebene Weg, Dialoge aus den Ressourcen anzuzeigen, wäre die API DialogBoxParam. Daher habe ich einen BP auf jeden Call zu dieser API gesetzt. Es wird aber an der entscheidenden Stelle (wenn die Box angezeigt wird) nicht gehalten. Daher die Frage: Gibt es eine andere Möglichkeit, wie der Dialog geladen werden könnte?
Ich hoffe, die Frage war verständlich.
cu Gabriel
 
Tja, seltsamerweise wird keine der Funktionen, die mit "Dialog..." anfangen, aufgerufen.
Dennoch wird an einer Stelle EndDialog aufgerufen.
MSDN->EndDialog:
Dialog boxes created by the DialogBox, DialogBoxParam, DialogBoxIndirect, and DialogBoxIndirectParam functions must be destroyed using the EndDialog function. An application calls EndDialog from within the dialog box procedure; the function must not be used for any other purpose.

Wenn EndDialog aufgerufen wird, MUSS doch eine der 4 obigen Funktionen aufgerufen worden sein, oder nicht?
Übersehe ich da etwas?

cu gabriel
 
Hast Du versucht, die BPs direkt in der User32.dll zu setzen? Auch auf ShowWindow/CreateWindow (sicherheitshalber)?
 
Vielleicht werden sie ja gar nicht direkt aufgerufen, sondern über "LoadLibary", "GetProcAddress". Setzte die BPs mal nicht auf die calls, sondern direkt in die APIs ("Go to" -> "Expression" -> "DialogBoxParamA"). Es gibt jedoch noch zusätzlich die Unterscheidung zwischen "DialogBoxParamA" und "DialogBoxParamW", es gibt also noch mehr zu tun, als du dachtest ;)
 
Moin,

du kanst es auch mal mit nem BP auf CreateDialog bzw CreateDialogIndirect oder CreateDialogParam bzw CreateDialogIndirectParam versuchen...
 
Morgen.
Auf die Idee, die BPs in die Dll zu setzen, bin ich leider gestern abend nicht gekommen. Jetzt kann ich aber sowieso nicht mehr mit den AboutBoxen arbeiten, weil mir die Testversion des Programms gestern abgelaufen ist(30-Tage-Testversion), daher komme ich jetzt gar nicht mehr bis zum Aufruf der Aboutboxen, sondern das Programm startet gleich mit dem Registrierungsfenster. Da muss ich mir wohl was neues überlegen.
Danke für die Hilfe,
Gabriel
 
So ist es ja einfacher, d.h. du musst jetzt weniger code durchsuchen :D Wenn das Programm die standard GUIs nutzt, kannst du ja einen BP auf so eine Api Funktion legen...oder du stepst durch den code, bis das Fenster erstellt wird, u.U. ist es ja gar nicht all zu viel... :)
 
Du könntest einen breakpoint in der .rsrc sektion auf Memory, on access setzen und dann dass Programm mit Execute till user code ausführen um genau unter dem api aufruf zu sein.
 
Zurück
Oben