Wie crack ich Xara'S WebStyle v1.2 ?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Yo, hallo jetzt schreib ich auch'n Tutor fr Euch.
Zielgruppe: fortgeschrittene Anfnger.

Bentigt wird:

Xara WebStyle (http://xara.com/webstyle)
Hex-Editor eurer Wahl 
W32Dasm v8.93
und ein wenig zeit :)



So WebStyle ist instaliert und es kann los gehen.
Es erscheint ein schnes NAG-Fenster mit einem "Purchase + Continue"-Button, 
da wir ja Webstyle haben wollen gehen wir auch "Purchase".
Tippen eine nette Zahl ein und ohh
Invalid number. Please Contact Xara technical support@xara.com.
Ne also das wollen wir nicht, lieber selber nach dem Fehler gucken, gelle :)

W32Dasm starten und Webstyle.exe ffnen.
Schauen wir mal was in der Glotze luft, da dauert ja bekanntlich ....
Verona Feldbusch mit ihrem BLUP, also Verena mit Dir wrd ich alles andere (nur einS !) 
machen als nur auf den BLUP zu warten, hehe.

Gut, schauen wir mal woher die Fehlermeldung aufgerufen wird.
Wie mache ich das ?
Es gibt zwei Mglichkeiten:
Du schaust selber nach den Strings ("Strn Ref"-Button, neben dem Drucker-Button),
oder lt danach suchen (Find Text).
Ich la danach suchen, da ich so faul bin. ALso Taschenlampe-Button drcken und den
(bad guy) Text eingeben:

Also tippe wir :Invalid number ein.

Und es erscheint unser String. 
Einen weiteren gibt es auch nicht, also nach oben scrollen .....
Oh shit was'n das ?

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:0045013C(C) =1, :00450150(C) =2, :00450169(C) =3, :00450182(C) =4, :0045019B(C) =5
|:004501B4(C) =6 , :004501CD(C) =7, :004501E6(C) =8, :00450251(C) =9
|
:00450284 6A02                    push 00000002
:00450286 6A01                    push 00000001
:00450288 6A00                    push 00000000
:0045028A 6A00                    push 00000000
:0045028C 6A00                    push 00000000
:0045028E 6A00                    push 00000000

* Possible Reference to String Resource ID=18500: "Invalid number. Please contact Xara technical support@xara.c"


Von diesen ganzen Adressen erfolgt der Sprung zu Fehlermeldung ?
Oh man dauert wohl lnger der Spa, he ? 
Das waren meine ersten Gedanken.
Gut auf geht'S: 
"Goto Code Location"-Button
und 45013c eingeben.
Was fllt euch auf ?




* Referenced by a CALL at Addresses:
|:0044F9AD   , :0044FA28   
|
:00450100 64A100000000            mov eax, dword ptr fs:[00000000]
:00450106 6AFF                    push FFFFFFFF
:00450108 681FB04A00              push 004AB01F
:0045010D 50                      push eax
:0045010E 8B442410                mov eax, dword ptr [esp+10]
:00450112 64892500000000          mov dword ptr fs:[00000000], esp
:00450119 50                      push eax
:0045011A 8D4C2414                lea ecx, dword ptr [esp+14]
:0045011E E8AC520400              call 004953CF
:00450123 8D4C2410                lea ecx, dword ptr [esp+10]
:00450127 C744240800000000        mov [esp+08], 00000000
:0045012F E8CC580400              call 00495A00
:00450134 8B442410                mov eax, dword ptr [esp+10]
:00450138 8378F807                cmp dword ptr [eax-08], 00000007   
:0045013C 0F8542010000            jne 00450284				--------1\         weiter unten stehen weitere bedingte Sprnge,
:00450142 0FBE08                  movsx ecx, byte ptr [eax]			| \        
:00450145 51                      push ecx					|  \
:00450146 E8F5F20200              call 0047F440					|   \
:0045014B 83C404                  add esp, 00000004				|    \
:0045014E 85C0                    test eax, eax					|     \
:00450150 0F842E010000            je 00450284				--------2      \   wie Ihr sehen knnt hab ich Ihnen Ziffern gegeben (auch oben bei der Fehlermeldung)
:00450156 8B542410                mov edx, dword ptr [esp+10]			|	|	
:0045015A 0FBE4201                movsx eax, byte ptr [edx+01]			|	|
:0045015E 50                      push eax					|	|  Wo springen sie hin ?
:0045015F E8DCF20200              call 0047F440					|	|
:00450164 83C404                  add esp, 00000004				|	|
:00450167 85C0                    test eax, eax					|	|  Aha !
:00450169 0F8415010000            je 00450284           	        --------3	|
:0045016F 8B4C2410                mov ecx, dword ptr [esp+10]			|	|  Zur Fehlermeldung, ALLE !
:00450173 0FBE5102                movsx edx, byte ptr [ecx+02]			|	|
										|	|  Na was macht man ? 
:00450177 52                      push edx					|	|
:00450178 E8C3F20200              call 0047F440					|	|
:0045017D 83C404                  add esp, 00000004				|	|  Lsung ist weiter unten zu finden, aber Ihr kennt Sie schon :)
:00450180 85C0                    test eax, eax					|	|
:00450182 0F84FC000000            je 00450284				--------4	|
:00450188 8B442410                mov eax, dword ptr [esp+10]			|	|
:0045018C 0FBE4803                movsx ecx, byte ptr [eax+03]			|	|
:00450190 51                      push ecx					|	|
:00450191 E8AAF20200              call 0047F440					|	|
:00450196 83C404                  add esp, 00000004				|	|
:00450199 85C0                    test eax, eax					|	|
:0045019B 0F84E3000000            je 00450284				--------5	|
:004501A1 8B542410                mov edx, dword ptr [esp+10]			|	|
:004501A5 0FBE4204                movsx eax, byte ptr [edx+04]			|	|
:004501A9 50                      push eax					|	|
:004501AA E891F20200              call 0047F440					|	|
:004501AF 83C404                  add esp, 00000004				|	|
:004501B2 85C0                    test eax, eax					|	|
:004501B4 0F84CA000000            je 00450284				--------6	|
:004501BA 8B4C2410                mov ecx, dword ptr [esp+10]			|	|
:004501BE 0FBE5105                movsx edx, byte ptr [ecx+05]			|	|
:004501C2 52                      push edx					|	|
:004501C3 E878F20200              call 0047F440					|	|
:004501C8 83C404                  add esp, 00000004				|	|
:004501CB 85C0                    test eax, eax					|	|
:004501CD 0F84B1000000            je 00450284				--------7	|
:004501D3 8B442410                mov eax, dword ptr [esp+10]			|	|
:004501D7 0FBE4806                movsx ecx, byte ptr [eax+06]			|	|
:004501DB 51                      push ecx					|	|
:004501DC E85FF20200              call 0047F440					|	|
:004501E1 83C404                  add esp, 00000004				|	|
:004501E4 85C0                    test eax, eax					|	|
:004501E6 0F8498000000            je 00450284				--------8	|
:004501EC 8B442410                mov eax, dword ptr [esp+10]			|	|
:004501F0 0FBE4804                movsx ecx, byte ptr [eax+04]			|	|
:004501F4 8D1449                  lea edx, dword ptr [ecx+2*ecx]		|	|
:004501F7 0FBE4806                movsx ecx, byte ptr [eax+06]			|	|
:004501FB 8D0CD1                  lea ecx, dword ptr [ecx+8*edx]		|	|
:004501FE 8D1449                  lea edx, dword ptr [ecx+2*ecx]		|	|
:00450201 0FBE4802                movsx ecx, byte ptr [eax+02]			|	|
:00450205 8D0CD1                  lea ecx, dword ptr [ecx+8*edx]		|	|
:00450208 8D1449                  lea edx, dword ptr [ecx+2*ecx]		|	|
:0045020B 0FBE4805                movsx ecx, byte ptr [eax+05]			|	|
:0045020F 8D0CD1                  lea ecx, dword ptr [ecx+8*edx]		|	|
:00450212 8D1449                  lea edx, dword ptr [ecx+2*ecx]		|	|
:00450215 0FBE08                  movsx ecx, byte ptr [eax]			|	|
:00450218 8D0CD1                  lea ecx, dword ptr [ecx+8*edx]		|	|
:0045021B 8D1449                  lea edx, dword ptr [ecx+2*ecx]		|	|
:0045021E 0FBE4801                movsx ecx, byte ptr [eax+01]			|	|
:00450222 0FBE4003                movsx eax, byte ptr [eax+03]			|	|
:00450226 8D0CD1                  lea ecx, dword ptr [ecx+8*edx]		|	|
:00450229 8D1449                  lea edx, dword ptr [ecx+2*ecx]		|	|
:0045022C 8D8CD067216BFB          lea ecx, dword ptr [eax+8*edx-0494DE99]	|	|
:00450233 8B442414                mov eax, dword ptr [esp+14]			|	|
:00450237 8BD0                    mov edx, eax					|	|
:00450239 D1E8                    shr eax, 1					|      /
:0045023B 81E255555555            and edx, 55555555				|     /
:00450241 2555555555              and eax, 55555555				|    /
:00450246 8D0450                  lea eax, dword ptr [eax+2*edx]		|   /
:00450249 69C00D661900            imul eax, 0019660D				|  /
:0045024F 3BC8                    cmp ecx, eax					| /
:00450251 7531                    jne 00450284				--------9/
:00450253 8D4C2410                lea ecx, dword ptr [esp+10]			|
:00450257 C705E8FE4D0009000000    mov dword ptr [004DFEE8], 00000009		|
:00450261 C7442408FFFFFFFF        mov [esp+08], FFFFFFFF			|
:00450269 E89C520400              call 0049550A					|
:0045026E B801000000              mov eax, 00000001				|
:00450273 8B4C2400                mov ecx, dword ptr [esp]			|
:00450277 64890D00000000          mov dword ptr fs:[00000000], ecx		|
:0045027E 83C40C                  add esp, 0000000C				|
:00450281 C20800                  ret 0008					|
										|
---------------------------------------------------------------------------------

Mehr braucht Ihr nicht zu wissen fr'S erste.
Wer noch mit Softice sein Unlock-Serial haben will, sollte wissen, da man 7 Zeichen eingeben mu ! 

Also dann mit dem Hex-Editor auf die jeweils W32Dasm angegebene Offset-Adresse und mit 90 berschreiben.

Wer ordentlich ist (sieht einfach besser aus), verndert noch
:00450138 8378F807                cmp dword ptr [eax-08], 00000007    hier findet die Zeichenabfrage statt :)
:00450138 8378F800                cmp dword ptr [eax-08], 00000000,   


So sieht es dann bei mir aus:
Offset 4F53B wurde verndert in 00909090909090
Offset 4F550 wurde verndert in 909090909090
Offset 4F569 wurde verndert in 909090909090
Offset 4F582 wurde verndert in 909090909090
Offset 4F59B wurde verndert in 909090909090
Offset 4F5B4 wurde verndert in 909090909090
Offset 4F5CD wurde verndert in 909090909090
Offset 4F5E6 wurde verndert in 909090909090
Offset 4F651 wurde verndert in 9090 


So jetzt testen. Auf Purchase und irgendwas oder gar nix eingeben und .....
Jaaaaa, so einfach kann es manchmal sein, aber nicht immer :)

Wer mir schreiben mchte kann mich unter rubor_quest@gmx.net anmailen.



