Wie registriere ich mir "PC-Freezer 1.1.4" und schreibe dafr ein KeyGen ???

Target: - PC-Freezer 1.1.4           (http://www.datasec.de)
ToolZ : - Smartcheck 6.01 oder 6.03  (http://w3.to/protools)
        - einen Compiler (Ich hab in diesem Tutor VB 6.0 benutzt)

	- etwas Programmierkenntnisse 


Zuerst einmal sollet ihr SmartCheck installieren und fr "unsere" Zwecke 
konfigurieren.Wie das geht, habe ich bereits in meinem 1. SmartCheck Tutorial 
ausfhrlich erlutert. (SC_Tutor.zip) ... gibts auch auf dieser Site !

So, als Nchstes flux PC-Freezer installiert und mal gestartet....
... bhh ...  ein hlicher Nag sagt mir das ich nicht berechtigt bin, da 
Programm zu benutzen (? hh ?), oder es noch nicht registriert haben (! aha !).
 Darum werden wir uns unverzglich kmmern !
 
Wir sehen jetzt den Serial Eingabe Screen ..... hmmm .... Das Programm gibt also 
eine Registriernummer vor und verlangt von uns einen Registrierschlssel und 
einen Namen.

Da die Registrierungsnummer fest ist und nicht gendert werden kann, heit das 
wohl das sie bei jedem PC verschieden ist, und sich irgendwie berrechnet, oder 
zufllig erzeugt wird .... damit fllt die Mglichkeit weg, nur eine passende 
Serial zu releasen. Es gibt 2 Mglichkeiten : 
  
                  1. Einen Crack 
                  2. Einen KeyGen

Ich habe mich fr dieses Tutorial fr das Zweite entscheiden, da das die
elegantere Lsung ist !!!!

Erst mal ein paar Fake Daten eingeben.

Na, gut, soll es bekommen:   Registrierungsnummer: 97413323  (die hat er bei 
                                                              mir vorgegeben)
                             Registrierschlssel : 1234567890 
                             Name                : Andrenalin [GWA]

Nach einem gezielten Click auf "Registrieren" sagt das Programm "Registrierung 
abgeschlossen. Bitte Neustarten" und beendet sich .....

Die Vermutung liegt also nahe, da das Proggi die Serial noch gar nicht gecheckt 
hat, sondern dies erst beim Aufruf tut .... hmm....  auch gut !

Jetzt starten wir mal SmartCheck und laden die "Freezer95.exe".
So jetzt starten wir das Proggi ("grner Pfeil") und warten ....

Das Proggi meldet sich mit dem uns bereits bekannten Nag zurck .... scheint so, 
als ob die von uns eingegebene Serial falsch war *lol*  ...  
HALT !
Wir wissen jetzt, da das Programm zu diesem Zeitpunkt unsere Fake Serial bereits 
mit der richtigen Serial verglichen haben muss.... sonst wte er ja nicht ob wir 
registriert sind oder nicht !

Gut, deshalb klicken wir nicht auf "OK", sondern wechseln rber zu SmartCheck.
Jetzt klicken wir erstmal die gelbe Sprechblase an, um "Show all events" 
einzustellen...
BTW: Falls Du jetzt nicht weit worber ich rede, empfehle ich Dir, erst einmal
 mein 1. SmartCheck Tutor zu lesen, um mit SmartCheck vertraut zu werden !

so, jetzt haben wir unser Programmlog .....  jetzt mten wir eigentlich nur noch
die richtige Serial finden, was in diesem Fall wirklich schnell und einfach 
geht.... aber wir wollen ja einen KeyGen schreiben und aus diesem Grund mssen 
wir herausbekommen, wie sich die richtige Serial berechnet......

Auf gehts !

Wir sollten zuerst einmal die Registriernummer die uns das Proggi vorgegeben hat 
suchen, da sie in diesem Fall eine Art "Name zum Registrieren" ist aus der sich 
die Serial berechnet ist.

Wir suchen also nach den ersten 5 Stellen (97413 in meinem Fall, aber Eure Nummer 
ist garantiert anders !!!)

gesagt getan und ich lande bei Event: 1351 
Long(97413323)->String("97413323")     (Umwandlung von Zahl nach String)

bei Event 1362 steht ein weiterer String "weDD@"  ... Damit knnen wir (noch) 
                                                  nichts anfangen

aber das Programm "arbeitet" mit diesem String !

1370: Mid$(String:"97413323",long 1,variant 1)    aha! er "holt" sich die 
                                                  erste Zahl "9"
BTW: Mid$(string, anfang, lnge)

1374: Asc(String "9")                             wandelt den String in AscII um 
                                                  -> 57

1385: Mid$(String:"weDD@",long 1,variant 1)       das sollte uns bekannt
                                                  vorkommen *lol*

1389: Asc(String "w")                             "w" -> 119

1392: __vbaVarXor(Integer 119, Integer 57)        aha... ein exclusives Oder 
                                                  zwischen den beiden Werten !!!
                                                  => 119 XOR 57 = 78 

BTW:  XOR macht wie gesagt ein Exclusives Oder. Es "vergleicht" die Beiden Zahlen
      auf binrebene , z.B: 
                            10011001  Xor
                            11010100
                            --------
                            01001101   , d.h. nur wenn die Bits unterschiedlich 
                                        sind, ist das Ergebnis eine "1" sonst "0"
ok, weiter im Programm:

1394: Chr$(Integer: 78)                          das Ergebnis wird wieder in 
                                                 einen Ascii String umgewandelt,
                                                 in diesem Fall ein "N"

1409: Mid$(String:"97413323",long 2,variant 1)   jetzt geht das Spielchen mit 
                                                 der 2. Zahl weiter

1413: Asc(String "7")                            wandelt den String in AscII um
                                                 -> 55

1424: Mid$(String:"NeDD@",long 2,variant 1)       er hat also das "N" ber das
                                                  "w" geschrieben

1428: Asc(String "e")                             "e" -> 101

1431: __vbaVarXor(Integer 101, Integer 55)        aha... ein exclusives Oder 
                                                  zwischen den beiden Werten !!!
                                                  => 101 XOR 55 = 82 
   
aha... er macht es also mit allen Werten... wenn man dem Programmverlauf folgt, 
stellt man fest, da er diese Prozedur genau 5 mal macht und aus dem ehemaligen
"weDD@" ist ein neuer String mit 5 Buchstaben geworden, in meinem Fall "NRpus".
Diese Aktion ist in Event 1569 abgeschlossen .... hmm, ob das schon schon die 
gesuchte Serial ist ??? nein, sie ist es nicht .... noch nicht ! 

Aber wir wissen jetzt das das Programm nur die ersten 5 Zahlen der
Registrierungsnummer bentigt, und der Rest einfach nur Optional ist !!!

Fassen wir nochmal zusammen:  

1. das Programm nimmt jeweils eine Zahl der Reg Nummer und wandelt sie in ASCII
   um.
2. es tut das gleiche mit "weDD@"
3. es XORrd die beiden und schreibt die neue Zahl als ASCII String weg ...
4. ein neuer String entsteht ..

Noch alles klar soweit ?!?  hoffentlich ......

jetzt schauen wir mal weiter im Programm was es nun mit dem neu generierten 
String macht !

1571: Mid$(String: "NRpus",long 1, integer 1)        ersten Buchstaben aus dem 
                                                     String

1575: ASC(String:"N")                                "N" -> 78

1578: Hex$(Integer 78)                               jetzt wird 78 in Hex umge-
                                                     wandelt
                                                     78 -> 4E  (4*16 + 14)

1596: Mid$(String: "NRpus",long 2, integer 1)        zweiten Buchstaben aus dem 
                                                     String

1600: ASC(String:"R")                                "R" -> 82

1603: Hex$(Integer 82)                               jetzt wird 82 in Hex umge-
                                                     wandelt
                                                     82 -> 52  (5*16 + 2)

So geht das Spielchen mit allen fnf Buchstaben des Strings weiter !

Die neu errechnet Werte werden nach der Berechnung aneinandergehngt:

4E & 52 & ..... usw....

Die ganze Aktion ist bei Event 1715 abgeschlossen !

Nachdem wir auf die Zeile geklickt haben, sehen wir im rechten oberen Fenster:

"4E52707573"

1."4E"  2."52"  3."70"  4."75"  5."73"  (diese Werte hatte er ja berechnet !)

Dies ist die gesuchte Serial (natrlich nur fr meinen Rechner !!!) 

Aber wir haben jetzt die bentigten Infos um einen KeyGen daraus zu machen !!!


Ich habe fr dieses Beispiel VB benutzt, da man die in SmartCheck gefundenen 
Befehle fast 1-zu-1 bernehmen kann !

also, vb gestartet und eine Form mit 2 Textboxen und einem OK Button "gemalt"

(Ihr knnt die Form natrlich gestalten wie ihr wollt !!!)

In text1 soll die vom Proggi vorgegebene Registriernummer eingegeben werden, und
nach einem Click auf den OK Button die errechnete Serial in Text2 ausgegeben 
werden.

ok, dann klicken wir doppelt auf den OK Button um dort Code einzugeben:


Private Sub Command1_Click()
    Reg_Num = Text1.Text                ' Registriernumer aus Textbox1 einlesen

    if len(Reg_Num) < 5 then            ' min. 5 Zahlen ???
       msgbox("Mindestens 5 Zahlen !")  ' wenn nicht sag "doofer User"
       exit sub                         ' und mach Feierabend
    end if

    konst = "weDD@"                     ' konst ist der String, der 
                                        ' fr den XOR gebraucht wird
    serial = ""                         ' Variable serial initialisieren
    
    For i = 1 To 5                      ' alles bis zum next 5 mal ausfhren und
                                        ' i immer +1 erhhen

        a = Mid$(konst, i, 1)           ' den i. Buchstaben aus der Reg Num holen
        a = Asc(a)                      ' und in Ascii umwandeln

        b = Mid$(Reg_Num, i, 1)         ' den i. Buchstaben aus der Konstante 
                                        ' holen
        b = Asc(b)                      ' und ebenfalls in Ascii umwandeln

        c = a Xor b                     ' Exclusives Oder zwischen den beiden 
                                        ' Werten
        serial = serial + Hex$(c)       ' in Hex umwandeln und an die neue 
                                        ' Serial anhngen
    Next i

    Text2.Text = ""                     ' Textbox2 lschen
    Text2.Text = serial                 ' die errechnete Serial in die Textbox2
                                        ' schreiben
End Sub

So, und damit sind wir fertig !!!!!!!!  Der KeyGen ist fertig !

jetzt knnt ihr es bei euch ausprobieren ......

Wenn ihr das Programm wieder "de-registrieren" wollt, sucht ihr mit RegEdit in 
der Registry nach eurer Serial und lscht alle Reg-Schlssel ... danach ist das 
Proggi wieder unregistered !!!!!!!!!!!

Ich hoffe ihr habt ein bischen Spa gehabt und hoffentlich auch was gelernt !!!

Wrde mich freuen wenn ihr mir Eure Meinung und Erfahrungen mit diesem Tutor 
schildern knntet!

Ich erreicht mich im Effnet unter: #CUG


CU
Andrnalin
