Hi.
Ich wollte zu Übungszwecken ein Programm zu dem ich eine gültige Serial besitze patchen, so dass keine Serial mehr notwendig ist.
Ich habe die Seriennummerüberprüfung gepatcht, so dass jede Nummer zum Erfolg führt. Gleichzeitig wurde das ganze unbeabsichtigt zu einem Inline Keygen, da das Programm die richtige Serial in der Erfolgsmeldung anzeigt. Allerdings wird der Dialog "Seriennummer eingeben" immer noch bei jedem Programmstart angezeigt. Nun könnte man natürlich einfach die angezeigte Serial verwenden, um das Programm ganz freizuschalten, aber ich wollte auch dieses Problem gerne durch einen Patch lösen. Ich habe festgestellt, dass das Speichern der eingegebenen Serial in der Registry geschieht, habe den entsprechenden Aufruf von RegSetValueExA gefunden, und habe die Anweisung geändert, die das entsprechende Argument von RegSetValueExA in das Register kopiert, das anschließend "gepusht" wird.
Snapshot davon habe ich angefügt.
Eigentlich sieht es so aus, als würde es funktionieren.
Das ist der einzige Aufruf von RegSetValueExA, der diesen Schlüssel ändert, dennoch ist der Wert dieses Schlüssels am Ende immer 0 und nicht, wie erwartet und gewünscht, die richtige Seriennummer.
Hat jemand eine Idee, woran das liegen kann?
cu Gabriel
Edit:
Die geänderte Zeile ist diese: 00446102 MOV ECX,WmrProFi.0049FE10
Im Original stand dort: LEA ECX,DWORD PTR SS:[ESP+18]
Wobei das Ziel hier die vom User eingegebene Serial war.
Ich wollte zu Übungszwecken ein Programm zu dem ich eine gültige Serial besitze patchen, so dass keine Serial mehr notwendig ist.
Ich habe die Seriennummerüberprüfung gepatcht, so dass jede Nummer zum Erfolg führt. Gleichzeitig wurde das ganze unbeabsichtigt zu einem Inline Keygen, da das Programm die richtige Serial in der Erfolgsmeldung anzeigt. Allerdings wird der Dialog "Seriennummer eingeben" immer noch bei jedem Programmstart angezeigt. Nun könnte man natürlich einfach die angezeigte Serial verwenden, um das Programm ganz freizuschalten, aber ich wollte auch dieses Problem gerne durch einen Patch lösen. Ich habe festgestellt, dass das Speichern der eingegebenen Serial in der Registry geschieht, habe den entsprechenden Aufruf von RegSetValueExA gefunden, und habe die Anweisung geändert, die das entsprechende Argument von RegSetValueExA in das Register kopiert, das anschließend "gepusht" wird.
Snapshot davon habe ich angefügt.
Eigentlich sieht es so aus, als würde es funktionieren.
Das ist der einzige Aufruf von RegSetValueExA, der diesen Schlüssel ändert, dennoch ist der Wert dieses Schlüssels am Ende immer 0 und nicht, wie erwartet und gewünscht, die richtige Seriennummer.
Hat jemand eine Idee, woran das liegen kann?
cu Gabriel
Edit:
Die geänderte Zeile ist diese: 00446102 MOV ECX,WmrProFi.0049FE10
Im Original stand dort: LEA ECX,DWORD PTR SS:[ESP+18]
Wobei das Ziel hier die vom User eingegebene Serial war.