Dark Heaven - Tutorial: Registrierung von ClipMate


Programm: 	ClipMate v4.5.2 Build 189
Beschreibung: 	Verwaltung der Zwischenablage.
Autor: 		(C) 1991-1997 THORNSOFT Development
Groesse: 	975.872 Bytes (CLIPMT45.EXE)


Werkzeug: - W32DASM v8.93


1. Lade CLIPMATE und anschlieend W32DASM.


2. Deassembliere CLIPMT45.EXE ber [Debug/Attach to an Active Process].


3. Suche nun mittels [Refs/String Data References] nach der Fehlermeldung
   "This Is An Invalid Name/Number Combination". Mit einem Doppelklick auf
   die Referenz wird die zugehrige Zeile im Listing angezeigt: 0045A5D9.

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0045A43A(C), :0045A44B(C), :0045A4BE(C)
|
:0045A5C5 833DA4A04A0000          cmp dword ptr [004AA0A4], 00000000 ; Sprung ?
:0045A5CC 7515                    jne 0045A5E3
:0045A5CE 6A00                    push 00000000
:0045A5D0 668B0D20A64500          mov cx, word ptr [0045A620]
:0045A5D7 B201                    mov dl, 01

* Possible StringData Ref from Code Obj ->"This Is An Invalid Name/Number "
                                        ->"Combination"
                                  |
:0045A5D9 B880A74500              mov eax, 0045A780     ; <- gefundene Referenz
:0045A5DE E8315BFEFF              call 00440114


4. Nun mssen wir mittels [Search/Find Text] den Sprungbefehl zu dieser Fehler-
   meldung finden. Wir suchen also mittels [Search/Find Text] nach der Adresse
   0045A5C5.

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0045A41A(C)
|
:0045A421 B960A04A00              mov ecx, 004AA060
:0045A426 BA01000000              mov edx, 00000001
:0045A42B E8E4CDFFFF              call 00457214
:0045A430 8BC6                    mov eax, esi
:0045A432 E87DDBFAFF              call 00407FB4
:0045A437 83F80B                  cmp eax, 0000000B ; <- Codelnge = 11 ?; 1. BP
:0045A43A 0F8585010000            jne 0045A5C5     ; <- Sprung zur Fehlermeldung
:0045A440 8D45F4                  lea eax, dword ptr [ebp-0C]
:0045A443 E86CDBFAFF              call 00407FB4
:0045A448 83F80B                  cmp eax, 0000000B        ; <- Codelnge = 11 ?
:0045A44B 0F8574010000            jne 0045A5C5     ; <- Sprung zur Fehlermeldung
:0045A451 8D85F0FEFFFF            lea eax, dword ptr [ebp+FFFFFEF0]
:0045A457 50                      push eax
:0045A458 8D95E8FEFFFF            lea edx, dword ptr [ebp+FFFFFEE8]
:0045A45E 8BC6                    mov eax, esi
:0045A460 E843DEFAFF              call 004082A8
:0045A465 8B85E8FEFFFF            mov eax, dword ptr [ebp+FFFFFEE8]
:0045A46B B908000000              mov ecx, 00000008
:0045A470 BA04000000              mov edx, 00000004
:0045A475 E8EA9AFAFF              call 00403F64
:0045A47A 8B85F0FEFFFF            mov eax, dword ptr [ebp+FFFFFEF0]
:0045A480 E8C3D4FAFF              call 00407948
:0045A485 8BF8                    mov edi, eax
:0045A487 8D85F0FEFFFF            lea eax, dword ptr [ebp+FFFFFEF0]
:0045A48D 50                      push eax
:0045A48E 8D95E8FEFFFF            lea edx, dword ptr [ebp+FFFFFEE8]
:0045A494 8D45F4                  lea eax, dword ptr [ebp-0C]
:0045A497 E80CDEFAFF              call 004082A8
:0045A49C 8B85E8FEFFFF            mov eax, dword ptr [ebp+FFFFFEE8]
:0045A4A2 B908000000              mov ecx, 00000008
:0045A4A7 BA04000000              mov edx, 00000004
:0045A4AC E8B39AFAFF              call 00403F64
:0045A4B1 8B85F0FEFFFF            mov eax, dword ptr [ebp+FFFFFEF0]
:0045A4B7 E88CD4FAFF              call 00407948        ; <- 2. Breakpoint setzen
:0045A4BC 3BF8                    cmp edi, eax
:0045A4BE 0F8501010000            jne 0045A5C5     ; <- Sprung zur Fehlermeldung
:0045A4C4 A1487F4A00              mov eax, dword ptr [004A7F48]
:0045A4C9 50                      push eax
:0045A4CA 6860A04A00              push 004AA060


5. Wir finden diesmal drei Sprungbefehle (jne 0045A5C5) zur Fehlermeldung:
   0045A43A, 0045A44B und in Zeile 0045A4BE. Die ersten beiden werden nur
   dann ausgefhrt, wenn die eingegebene Codelnge nicht 11 Zeichen lang ist.

   Dies kann man einfach kontrollieren, wenn man auf den ersten Vergleich
   (cmp eax, 000000B) in Zeile 0045A437 einen Breakpoint setzt [F2], zu
   CLIPMATE wechselt und folgende Registrierdaten benutzt:

   z.B. Name            : Dark Heaven
        Registration Key: 1122334455

   Nach der Besttigung wird W32DASM beim Breakpoint aktiv. Wir wechseln nun
   die Ansicht "Source for Data Disp 2" von "Disp 1" auf "Oper". Jetzt sehen
   wir den Inhalt von EAX beim Vergleich (EAX = 0000000A = 10 Zeichen).

   Wir wissen also nun, da wir einen Code der Lnge 11 (0B) eingeben mssen.

   genderter Registration Key: 11223344556 (11 Zeichen)


6. Jetzt lschen wir den 1. Breakpoint wieder [F2] und setzen einen neuen
   Breakpoint [F2] in Zeile 0045A4B7 auf den Funktionsaufruf (call 00407948).

   Wir wechseln zu CLIPMATE und geben die genderten Registrierdaten ein:

   z.B. Name            : Dark Heaven
        Registration Key: 11223344556


7. Nach der Eingabebesttigung wird W32DASM beim Breakpoint aktiv und wir knnen
   uns den Inhalt der einzelnen Register anschauen:

   ESI = 004AA07C: ESI+00000000 = 11223344556
                   ESI-0000010C = Dark Heaven

   EBP = 0072F614: EBP-0000000C = F0108700188 (0 = 30hex; unser Code)


8. Mit dem gefundenen Code knnen wir nun CLIPMATE registrieren und erhalten
   die Erfolgsmeldung "You Have Successfully Registered ClipMate. Thank You!".

   z.B. Name            : Dark Heaven
        Registration Key: F0108700188


9. Nach der erfolgreichen Registrierung trgt CLIPMATE folgende Zeilen in die
   Datei CLIPMT40.INI im Windows-Verzeichnis ein:

   [clipmt40]
   SystemSettings=626502042
   VideoProfile=29341
   DialogConstants=31101317
   DiagSettings=0
   Name=Dark Heaven
   RegistrationNumber=F0108700188



Viel Spa beim CRACKEN!
Dark Heaven
01.01.1999


