1999 by Fisch for ThP

Hallo,

fr dieses Tutorial bentigt ihr:
        
        - SOFTICE
        
und natrlich das Programm um das es hier geht:

        * Teleport Pro Version 1.29 (Build 976) (War auf der letzten c't CD 1'99, Heft ?/99)

Da das Programm relativ einfach zu cracken ist dachte ich mir da ich darber gleich mal mein erstes Tutorial verfassen kann.
Unser Ziel ist es den richtigen REG.-CODE herauszufinden, der sich aus dem Namen und der Company berechnet.
Als erstes Teleport Pro starten und schauen was das Programm von einem will. Das Programm startet ohne einen dmlichen 
NAG-Screen gut! Dann das Registrier-Fenster suchen - es verbirgt sich unter Help und dann Register - und ffnen.
Nun das Registrierungsfeld ausfllen. 
z.B.:
Your Name:              cracked by Fisch
Company:                -       
Registration Code:      7777777

Achtung!!!!! Der Name mu mindestens 6 Zeichen lang sein!!!!!!!

Klicke testhalber auf OK, jetzt mte eigentlich ein Fenster erscheinen in dem steht, da man den falschen Reg.-Code 
eingegeben hat. 

Ist das der Fall dann noch mal von vorne:

        1. Register Fenster ffnen
        2. Name, Company und beliebigen Registration Code eingeben

Nicht auf OK klicken!!!!!

Nun ist es Zeit unter Softice einen Breakpoint zu setzen. Strg+D drcken (Softice ffnet)  "bpx getwindowtexta" (Breakpoint)
eingeben Return drcken und mit x (oder STRG-D) Softice verlassen.
Im Registrier-Fenster von Teleport auf OK klicken. Softice ffnet sich, 1x F12 drcken.
Nun sollte folgendes auf dem Bildschirm zu sehen sein:

.0044BB90: FF1518644600                 call      GetWindowTextA ;USER32.dll   
.0044BB96: 8B4D10                       mov       ecx,[ebp][00010]             
.0044BB99: 6AFF                         push      0FF                          
.0044BB9B: E83793FFFF                   call     .000444ED7   -------- (1)     
.0044BBA0: EB0B                         jmps     .00044BBAD   -------- (2)     
.0044BBA2: 8B4510                       mov       eax,[ebp][00010]             
.0044BBA5: FF30                         push      d,[eax]                      
.0044BBA7: 56                           push      esi                          
.0044BBA8: E835EDFFFF                   call     .00044A8E2   -------- (3)     
.0044BBAD: 5F                           pop       edi                          
.0044BBAE: 5E                           pop       esi                          
.0044BBAF: 5D                           pop       ebp                          
.0044BBB0: C20C00                       retn      0000C ;"  "                  
.0044BBB3: 56                           push      esi                          
.0044BBB4: 8B742408                     mov       esi,[esp][00008]             
.0044BBB8: 57                           push      edi                          
.0044BBB9: 8BCE                         mov       ecx,esi                      
.0044BBBB: FF742410                     push      d,[esp][00010]               
.0044BBBF: E8C6FDFFFF                   call     .00044B98A   -------- (4)     
.0044BBC4: 33FF                         xor       edi,edi                      
.0044BBC6: 393E                         cmp       [esi],edi                    
.0044BBC8: 7416                         je       .00044BBE0   -------- (5)     
.0044BBCA: 57                           push      edi                          

Mit Einzelschritten sich nach unten durch den Quellcode durcharbeiten (mit F10).
Nachdem man ungefhr 85 - 90 mal F10 gedrckt hat sieht man folgendes: Hier anhalten und kurz verschnaufen!!!

:0042571C E85BE10100              call 0044387C
:00425721 33DB                    xor ebx, ebx
:00425723 6A0A                    push 0000000A
:00425725 53                      push ebx
:00425726 FFB7DD000000            push dword ptr [edi+000000DD]
:0042572C E89F720000              call 0042C9D0
:00425731 8B0DF8324800            mov ecx, dword ptr [004832F8]
:00425737 83C40C                  add esp, 0000000C
:0042573A 8945EC                  mov dword ptr [ebp-14], eax
:0042573D 3899CD040000            cmp byte ptr [ecx+000004CD], bl
:00425743 0F841B020000            je 00425964
:00425749 3BC3                    cmp eax, ebx
:0042574B BEC0E84700              mov esi, 0047E8C0
:00425750 0F840B010000            je 00425861
:00425756 FFB7D5000000            push dword ptr [edi+000000D5]
:0042575C E894090000              call 004260F5                                 <=====  in diesem Unterprogramm wird der
:00425761 3945EC                  cmp dword ptr [ebp-14], eax                           richtige Reg.-Code berechnet und
:00425764 59                      pop ecx                                               im Register EAX hinterlegt
:00425765 753A                    jne 004257A1                                  <=====  hier wird bei falschem Reg.-Code
:00425767 8D4DF0                  lea ecx, dword ptr [ebp-10]                           weggesprungen    
:0042576A E81FF20100              call 0044498E

Mit Einzelschritten weiter und sptestens in Zeile .00425764 Anhalten!!!!!

Jetzt nur zur Erklrung!!!
        Wenn man in Zeile .00425765 steht und F10 drcken wrde springt man in Zeile .004257A1. Wenn man dann mit STRG-D 
        Softice verlassen wrde, wrde sich das Fenster, in dem einem mitgeteilt wird da der Reg.-Code falsch ist, ffnen.
        Wenn man verhindert, da der Sprung in Zeile 004257A1 ausgefhrt wird - das geht in dem man r eip=425767 eingibt
        und RETURN drckt - und dann mit STRG-D Softice verlt worauf das Programm Teleport fortgesetzt wird, wird einem
        zwar fr die Registrierung gedankt. Jetzt steht im Registrier-Fenster zwar Registriert, wenn man Teleport aber 
        beendet und wieder neu startet ist das Programm wieder Unregistriert. 
        Das bedeutet, da beim Start nochmals der Reg.-Code berprft wird.  

Man befindet sich jetzt hoffentlich immer noch in Zeile .00425764. Hier "? eax" eintippen, RETURN drcken.
Der richtige Registration Code wird angezeigt. 
70D1CA80     1892797056   
Die Zahl ohne Buchstaben ist der richtige Reg.-Code!

Fertig!!!



Noch Fragen? Fehler? Unverstndlich? Dann mailt mir an chfisch@gmx.net.


