Dark Heaven - Tutorial: Registrierung von CDEdit

Programm: 	CDEdit v1.0
Beschreibung: 	Erstellung von CD-Labels
Autor: 		(C) 1998 by Stefano Falda
Groesse: 	788.992 Bytes (CDEDIT.EXE)


Werkzeug: - W32DASM v8.93


1. Lade CDEDIT und anschlieend W32DASM.


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


3. Leider finden wir ber [Refs/String Data References] keine Fehlermeldung.
   Jedoch existiert die Referenz "Username". Durch einen Doppelklick auf die
   Referenz wird die entsprechende Zeile im Listing angezeigt: 00469E06.

* Referenced by a CALL at Address:
|:00469C41   
|
:00469DA0 55                      push ebp            ; <- Sprung hierher suchen
:00469DA1 8BEC                    mov ebp, esp
:00469DA3 83C4F4                  add esp, FFFFFFF4
:00469DA6 894DF8                  mov dword ptr [ebp-08], ecx
:00469DA9 8955FC                  mov dword ptr [ebp-04], edx
:00469DAC 8B45FC                  mov eax, dword ptr [ebp-04]
:00469DAF E8009FF9FF              call 00403CB4
:00469DB4 8B45F8                  mov eax, dword ptr [ebp-08]
:00469DB7 E8F89EF9FF              call 00403CB4
:00469DBC 33C0                    xor eax, eax
:00469DBE 55                      push ebp
:00469DBF 685B9E4600              push 00469E5B
:00469DC4 64FF30                  push dword ptr fs:[eax]
:00469DC7 648920                  mov dword ptr fs:[eax], esp
:00469DCA B201                    mov dl, 01
:00469DCC A190FE4300              mov eax, dword ptr [0043FE90]
:00469DD1 E8EE61FDFF              call 0043FFC4
:00469DD6 8945F4                  mov dword ptr [ebp-0C], eax
:00469DD9 33C0                    xor eax, eax
:00469DDB 55                      push ebp
:00469DDC 68399E4600              push 00469E39
:00469DE1 64FF30                  push dword ptr fs:[eax]
:00469DE4 648920                  mov dword ptr fs:[eax], esp
:00469DE7 BA02000080              mov edx, 80000002
:00469DEC 8B45F4                  mov eax, dword ptr [ebp-0C]
:00469DEF E86462FDFF              call 00440058
:00469DF4 B101                    mov cl, 01

* Possible StringData Ref from Code Obj ->"\Software\Talpaz Software\CDEdit"
                                  |
:00469DF6 BA709E4600              mov edx, 00469E70
:00469DFB 8B45F4                  mov eax, dword ptr [ebp-0C]
:00469DFE E8B962FDFF              call 004400BC
:00469E03 8B4DFC                  mov ecx, dword ptr [ebp-04]

* Possible StringData Ref from Code Obj ->"Username"
                                  |
:00469E06 BA9C9E4600              mov edx, 00469E9C      ; <- gefundene Referenz
:00469E0B 8B45F4                  mov eax, dword ptr [ebp-0C]
:00469E0E E84564FDFF              call 00440258
:00469E13 8B4DF8                  mov ecx, dword ptr [ebp-08]

* Possible StringData Ref from Code Obj ->"Code"
                                  |
:00469E16 BAB09E4600              mov edx, 00469EB0
:00469E1B 8B45F4                  mov eax, dword ptr [ebp-0C]
:00469E1E E83564FDFF              call 00440258
:00469E23 33C0                    xor eax, eax
:00469E25 5A                      pop edx
:00469E26 59                      pop ecx
:00469E27 59                      pop ecx
:00469E28 648910                  mov dword ptr fs:[eax], edx
:00469E2B 68409E4600              push 00469E40


4. Um den Sprungbefehl zu dieser Referenz zu finden, suchen wir mittels [Search/
   Find Text] nach der Adresse 00469DA0.

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:00469BA9(C), :00469BD4(C)
|
:00469BE5 8D55FC                  lea edx, dword ptr [ebp-04]
:00469BE8 8B83E4010000            mov eax, dword ptr [ebx+000001E4]
:00469BEE E8994CFBFF              call 0041E88C
:00469BF3 8B45FC                  mov eax, dword ptr [ebp-04]
:00469BF6 8D55F4                  lea edx, dword ptr [ebp-0C]
:00469BF9 E8A2F1FFFF              call 00468DA0
:00469BFE 8B45F4                  mov eax, dword ptr [ebp-0C]
:00469C01 50                      push eax
:00469C02 8D55FC                  lea edx, dword ptr [ebp-04]
:00469C05 8B83EC010000            mov eax, dword ptr [ebx+000001EC]
:00469C0B E87C4CFBFF              call 0041E88C
:00469C10 8B55FC                  mov edx, dword ptr [ebp-04]
:00469C13 58                      pop eax
:00469C14 E8F79FF9FF              call 00403C10           ; <- Breakpoint setzen
:00469C19 756A                    jne 00469C85     ; <- Sprung zur Fehlermeldung
:00469C1B 8D55FC                  lea edx, dword ptr [ebp-04]
:00469C1E 8B83EC010000            mov eax, dword ptr [ebx+000001EC]
:00469C24 E8634CFBFF              call 0041E88C
:00469C29 8B45FC                  mov eax, dword ptr [ebp-04]
:00469C2C 50                      push eax
:00469C2D 8D55F8                  lea edx, dword ptr [ebp-08]
:00469C30 8B83E4010000            mov eax, dword ptr [ebx+000001E4]
:00469C36 E8514CFBFF              call 0041E88C
:00469C3B 8B55F8                  mov edx, dword ptr [ebp-08]
:00469C3E 8BC3                    mov eax, ebx
:00469C40 59                      pop ecx
:00469C41 E85A010000              call 00469DA0    ; <- Aufruf der Registrierung
:00469C46 6A40                    push 00000040
:00469C48 8D55F4                  lea edx, dword ptr [ebp-0C]
:00469C4B A14C6D4800              mov eax, dword ptr [00486D4C]
:00469C50 8B00                    mov eax, dword ptr [eax]
:00469C52 E84945FCFF              call 0042E1A0
:00469C57 8B45F4                  mov eax, dword ptr [ebp-0C]
:00469C5A E865A0F9FF              call 00403CC4
:00469C5F 50                      push eax
:00469C60 A1F4774800              mov eax, dword ptr [004877F4]
:00469C65 E85AA0F9FF              call 00403CC4
:00469C6A 8BD0                    mov edx, eax
:00469C6C A14C6D4800              mov eax, dword ptr [00486D4C]
:00469C71 8B00                    mov eax, dword ptr [eax]
:00469C73 59                      pop ecx
:00469C74 E8534AFCFF              call 0042E6CC
:00469C79 A1EC774800              mov eax, dword ptr [004877EC]
:00469C7E E85529FCFF              call 0042C5D8
:00469C83 EB33                    jmp 00469CB8


5. In Zeile 00469C41 finden wir den gesuchten Funktionsaufruf (call 00469DA0).
   Etwas hher finden wir in Zeile 00469C19 den Sprungbefehl zur Fehlermeldung
   (jne 00469C85). Auf den darberstehenden Funktionsaufruf (call 00403C10)
   setzen wir mittels [F2] einen Breakpoint, wechseln zu CDEdit und geben be-
   liebige Registrierdaten ein:

   z.B. Username: Dark Heaven
        Code    : 1122334455


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

   EDX = 00C549C4: EDX+00000000 = 1122334455
   EAX = 00C683F4: EAX-00000030 = Dark Hea
                   EAX-00000018 = 1122334455
                   EAX+00000000 = 21658981185 ( der gesuchte Code )


7. Mit dem gefundenen Code knnen wir nun CDEDIT registrieren und erhalten die
   Erfolgsmeldung "Thank you for registering.":

   z.B. Username: Dark Heaven
        Code    : 21658981185


7. Nach der erfolgreichen Registrierung trgt CDEDIT folgenden Schlssel in
   die Registry:

   [HKEY_LOCAL_MACHINE\Software\Talpaz Software\CDEdit]
   "VersInfo"=dword:004df2e9
   "Username"="Dark Heaven"
   "Code"="21658981185"

   [HKEY_LOCAL_MACHINE\Software\Talpaz Software\CDEdit\Preferences]
   "NewInstall"="False"



Viel Spa beim CRACKEN!
Dark Heaven
21.02.1999


