27.08.  1999

"Applet Navigation Factory 1.0"

( "Enter anything to register"  )

Win '99 PROGRAM Win Code Reversing  

 

von PhatAzz

 

 

Code Reversing für Anfänger 

   

 

  Programm Details :

Programm Name: Applet Navigation Factory.exe Programm Typ: Html Special FX  Url zum Prog: Hier  Programm-Grösse:  871 Kb  

 
 

    Gebrauchte Tools :  W32Dasm,Hex-Editor

 

Schwierigkeit

Leicht (X)  Mittel (   )  Schwer (    )  Profi (    ) 

 

 

"Applet Navigation Factory 1.0"   Geschrieben von PhatAzz
 
 

Einführung

Der Autor sagt : "The Applet Navigation Factory offers a fast, simple way to create fascinating Java Applets without needing to write any Java or HTML code. With the Navigation Factory, you can enhance navigation on your web pages with customized Java menus"

Über die Schutztechnik

Das Proggy startet mit einem Nag Screen. Hergestellte Applets mit der unregistrierten Version funktionieren nur auf der Festplatte, nicht im Web. Das ist natürlich blöd, denn wer will denn seineApplets auf seiner Festplatte lassen ??? :-)  Nachdem dieser hässliche Nag-Screen aufgepopptist klicken wir mal auf Register und geben irgendwelche Dummy Infos ein. Username : Bitch     Password : 1234-1234Register klicken und ....  "Icorrect username and Password"          Das merken wir uns und....

Das Essay 

Wir machen eine Kopie von Applet Navigation Factory.exe und laden sie in W32Dasm. (Dissasembler--» Open File to Disassemble) und warten eine halbe Stunde :) Fertig ??? ...                                                        Wir schauen uns die SDR (Strind Data References) an. (Refs --» String Data References) an und suchen die Fehlermeldung... und klicken ein paar mal darauf, um zu sehen, wie oft es aufgerufen wird....                            Nur ein mal ?  Das wird ein schneller Job :) Wir sind jetzt hier angekommen :                                                                                                            

* Possible StringData Ref from Code Obj ->"Registration is complete. Thanks "
->"for purchasing the Navigation "
->"Factory! Would you like to print "
->"the codes for future reference?"
|
:0046F1E5 B89CF24600 mov eax, 0046F29C
:0046F1EA E8AD3AFEFF call 00452C9C
:0046F1EF 83F806 cmp eax, 00000006
:0046F1F2 7510 jne 0046F204
:0046F1F4 33D2 xor edx, edx
:0046F1F6 8B83C4020000 mov eax, dword ptr [ebx+000002C4]
:0046F1FC 8B08 mov ecx, dword ptr [eax]
:0046F1FE FF91E0000000 call dword ptr [ecx+000000E0]

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046F1F2(C)
|
:0046F204 A1905A4A00 mov eax, dword ptr [004A5A90]
:0046F209 8B00 mov eax, dword ptr [eax]
:0046F20B BA11000000 mov edx, 00000011
:0046F210 E87BE1FDFF call 0044D390
:0046F215 8BC3 mov eax, ebx
:0046F217 E85CABFDFF call 00449D78
:0046F21C EB0A jmp 0046F228

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0046F168(C), :0046F190(C) «-- Wichtig !!!
|

* Possible StringData Ref from Code Obj ->"Incorrect username and password." «-- Wir landen hier
|
:0046F21E B824F34600 mov eax, 0046F324
:0046F223 E86C3BFEFF call 00452D94

Wir scrollen einmal hoch zu dem ersten der beiden Condtional Jumps 0046F168.

* Possible StringData Ref from Code Obj ->"78efg"
|
:0046F15C BA4CF24600 mov edx, 0046F24C
:0046F161 E89A9CF9FF call 00408E00
:0046F166 85C0 test eax, eax
:0046F168 0F85B0000000 jne 0046F21E   «-- Bad Boy #1 (Sorry, but I have to say it : "Tupac rulez")
:0046F16E 8D55FC lea edx, dword ptr [ebp-04]
:0046F171 8B8318030000 mov eax, dword ptr [ebx+00000318]
:0046F177 E8D019FCFF call 00430B4C
:0046F17C 8B45FC mov eax, dword ptr [ebp-04]
:0046F17F E8744EF9FF call 00403FF8

* Possible StringData Ref from Code Obj ->"pk753"
|
:0046F184 BA54F24600 mov edx, 0046F254
:0046F189 E8729CF9FF call 00408E00
:0046F18E 85C0 test eax, eax

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0046F129(C)
|
:0046F190 0F8588000000 jne 0046F21E  «-- Bad Boy #2
:0046F196 A1645B4A00 mov eax, dword ptr [004A5B64]
:0046F19B 8B00 mov eax, dword ptr [eax]
:0046F19D 8B8038030000 mov eax, dword ptr [eax+00000338]
:0046F1A3 33D2 xor edx, edx
:0046F1A5 E89218FCFF call 00430A3C
:0046F1AA A1645B4A00 mov eax, dword ptr [004A5B64]
:0046F1AF 8B00 mov eax, dword ptr [eax]

* Possible StringData Ref from Code Obj ->"Applet Navigation Factory"

 

Beim Bad Boy #1 müssen wir das jne in ein je umwandeln.                                                                          Beim Bad Boy #2 müssen wir das jne in ein je umwandeln.

Das Programm akzeptiert nun jede eingegebene Serial und denkt auch nach erneutem Programmstart, es sei registriert.

Der Patch 

Ersetzt bei  Offset 6E568 das 0F85 mit 0F84.

Ersetzt bei  Offset 6E590 das 0F85 mit 0F84.

Letzte Worte

Mein Dank geht an The Sandman und Torn@do für ihre hervorragenden Tutorials

und The Keyboard Caper - tKC für die besten tuts die es gibt.

Erreicht mich unter :


http://bounce.to/phatazz «--- www # 1

http://phatazz.da.ru         «--- www # 2

phatazz@gmx.net           «--- Mail Me

44633204                      «--- ICQ Me



Essay von:             PhatAzz
Page gestaltet:       27.08.1999 17:27 PM