Startprobleme

02/08/2011 07:25 LilaQ#1
Hallo zusammen,

habe zwar erst gestern mit dem Reverse Enigneering angefangen, konnte aber tatsächlich schon mein erstes Programm cracken ;)

Habe mich jetzt vor 3 Stunden spaßeshalber mit dem nächsten beschäftigt (aus Lernzwecken natürlich), und komme grade nicht weiter. Es geht um UltraISO.
Wenn die Trialperiode abgelaufen ist erscheint ein NagScreen am Anfang, mit 4 Buttons, und mit einem davon kommt man auch ganz normal in das Programm wieder rein.

Die Buttons hab ich mittlerweile auch im ASM Code gefunden und identifiziert über Breakpoints. Geplant hatte ich jetzt eigentlich dass anstatt dass das erste Formular (tFrmStartup) geladen wird, direkt zum Codeblock vom Button "Weiterhin Testen" gesprungen wird, damit müsste das Programm ja eigentlich direkt laden.

Allerdings weiß ich nicht genau wie ich das jetzt anpacken soll, die Codeblöcke der Buttons haben keine Jumps, und auch das PUSH EBP wird anscheinend von nirgenwo gecallt (per STRG+R in OllyDbg nachgeschaut).

Hätte da jemand einen Ansatz für mich wie man bei solchen Problemen weiter vorgeht?

Danke euch schonmal :)

Lg,
LilaQ
02/08/2011 12:42 Akorn#2
Ich würde eher versuchen herauszufinden von wo im pogramm die Dialogbox(nagscreen) aufgerufen wird. Den nahe vor dem aufruf wird warscheinlich der pogrammcode sein der überprüft ob die testzeit abgelaufen ist.
Und dort das pogramm patchen.
02/09/2011 19:33 LilaQ#3
Hmm jau, aber wie genau erkenne ich wo das Fenster erstelle / aufgerufen wird?

Also nach einzelnen Wörtern kann ich nicht suchen da das Programm mehrsprachig ist und die Sprachen jeweils ne eigene .dll haben und ich die SprachVars nirgends finde.

Wie würde ich also praktisch weiterverfahren?
02/09/2011 22:28 mydoom#4
Variablennamen wirst du mit großer Sicherheit eh nicht finden. Die gehen beim Kompilieren "verloren". Ich würde zur Not in Einzelschritten durch das Programm "steppen" oder nach einer passenden Funktion aus der WinAPI suchen (Ich weiß allerdings nicht, wie es sich bei Programmen verhält, die Frameworks a la Qt4 nutzen)