August 1999

"Image Optimizer V1.10"

Win Code Reversing

 

vom Instructor

 
 

Finden der korrekten Serial mit SoftIce

   

 

Programm- Name: xatio.exe     Programm-Typ:     Grafik -Tool

                    Programm- URL:    Hier

          Programm-Größe:  506K  

 
                       Tools :                      Softice V4.0                                        

Level

Leicht ( )  Mittel ( X )  Schwer (   ) 

 

 


 

Die Einleitung

 Der Autor von    Image Optimizer V1.10  sagt:
 
" Image Optimizer " ist ein Tool, mit dem man Graphiken im Format Gif, JPEG und PNG erzeugen kann, die durch Komprimierung nur noch bis zu 50 Prozent ihrer ursprünglichen Größe besitzen.

Das Sicherungssystem

 
" Image Optimizer " ist ein 30 Tage Trial Programm, mit eingeschränktem Funktionsumfang in der Shareware - Version. Um den Registrations Screen zu erreichen gehe in  ' Help ' /  ' Enter Release Code ' :

Du wirst nach folgenden Angaben gefragt:

Release Code: xxxxxxxxxxxx

Der eingegebene Code wird in der Registrierungsdatei abgespeichert, egal ob er falsch oder richtig war.

HKCU\Software\xat.com\xat.com Image Optimizer\Application\Code        xxxxxxxxx 

 

Die Lösung

 
Das Programm nutzt die 32 Bit Funktion RegQueryValueExA, um die Registrationseingaben auszulesen.
Gerade dieses Programm hat mir gezeigt, daß man bei jedem Crack zuerst RegMon und FileMon laufen lassen sollte, um zu sehen, was beim Programmstart so alles passiert. Starte nun " Image Optimizer " und mach die geforderten Eingaben.

1. Wenn du das getan hast, starte Softice durch Drücken von CTL-D.

2. Tippe ein: bpx RegQueryValueExA if *(ESP->8) == 'Code' do "D ESP->14;"  

     (SI unterbricht durch diese Anweisung beim Zugriff auf die Registrierung im oben benannten Abschnitt).

3. Verlasse Softice und starte das Programm.

4. Softice unterbricht das Programm beim Beginn der 1. System Funktion RegQueryValueExA.

5. Drücke F11  einmal.
    wir sind jetzt im "Image Optimizer" Code, und steppen mit F10 durch den Code bis hierhin :

Ab Adresse 41A5DD wird unsere gefakte Serial Zahl für Zahl eingelesen mit xor verschlüsselt und verglichen, wenn der Vergleich stimmt, geht es weiter, ansonsten erfolgt ein Sprung zur Fehlermeldung ( jne 0041A63E). 

Wenn alle 8 Stellen der Serial verglichen wurden und alle Vergleiche stimmten, springt das Programm zum Codeabschnitt der Vollversion. Um die Verschlüsselung mit xor besser zu verdeutlichen, habe ich ein kleines Proggi beigelegt ( xor.zip). Einfach bei A und B die HexWerte eingeben und dann auf den Button drücken.

Bitte beachten, daß die HexWerte mit $ vorangestellt werden müssen. (Beispiel $A3 $90). So könnt ihr die im Listing blau markierten Stellen besser verstehen.

 

Das Finale

Das wars dann auch schon wieder, entweder die Serial auslesen  " 378keoiu ", oder die JNE's ausnoppen.

-- Mein Dank geht an 'Sandman' für seine hervorragenden Tutorials --


Tutorial von:          Instructor
Page gestaltet:      21.August 1999