Let's see what kind of
protection it has.So,fire up the program,and we see evaluation
notice: a
nag screen.You have an option to purchase the software,so click on
Purchase button,and enter some codel like 323323213
and press Unlock software button.A message
appears sayin' that you entered an invalid code. OK.Disassembly the Xara3d with
W32Dasm.When disassembled goto String Data References and look for a
messge "You entered and invalid...",double click on it,now you should be
here:
* Referenced
by a (U)nconditional or (C)onditional Jump at
Addresses: |:0040F434(C), :0040F448(C), :0040F464(C),
:0040F480(C), :0040F49C(C) |:0040F4B8(C),
:0040F4D4(C), :0040F4F0(C), :0040F55C(C) |
* Possible
Reference to Dialog: DialogID_0133, CONTROL_ID:00FF,
""
| :0040F615
6AFF
push FFFFFFFF :0040F617
6A10
push 00000010
* Possible
Reference to String Resource ID=03005: "You entered an invalid unlock
code. The program has not
been"
| :0040F619
68BD0B0000
push 00000BBD :0040F61E
E809D30700
call 0048C92C
* Referenced
by a (U)nconditional or (C)onditional Jump at
Address: |:0040F424(C) | :0040F623
8A442413
mov al, byte ptr [esp+13]
Look above at
all those jumps,so scroll up to the first one(:0040F434) and you should be
here:
:0040F42A
8B842440010000 mov
eax, dword ptr [esp+00000140] :0040F431
3958F8
cmp dword ptr [eax-08], ebx :0040F434
0F85DB010000
jne
0040F615 <--- Bad
jump :0040F43A
0FBE10
movsx edx, byte ptr [eax] :0040F43D
52
push edx :0040F43E
E8DD700500
call 00466520 :0040F443
83C404
add esp, 00000004 :0040F446
85C0
test eax, eax :0040F448
0F84C7010000
je
0040F615 <--- Bad
jump :0040F44E
8B842440010000 mov
eax, dword ptr [esp+00000140] :0040F455
0FBE4801
movsx ecx, byte ptr [eax+01] :0040F459
51
push ecx :0040F45A
E8C1700500
call 00466520 :0040F45F
83C404
add esp, 00000004 :0040F462
85C0
test eax, eax :0040F464
0F84AB010000
je
0040F615 <--- Bad
jump :0040F46A
8B942440010000 mov
edx, dword ptr [esp+00000140] :0040F471
0FBE4202
movsx eax, byte ptr [edx+02] :0040F475
50
push eax :0040F476
E8A5700500
call 00466520 :0040F47B
83C404
add esp, 00000004 :0040F47E
85C0
test eax, eax :0040F480
0F848F010000
je
0040F615 <--- Bad
jump :0040F486
8B8C2440010000 mov
ecx, dword ptr [esp+00000140] :0040F48D
0FBE5103
movsx edx, byte ptr [ecx+03] :0040F491
52
push edx :0040F492
E889700500
call 00466520 :0040F497
83C404
add esp, 00000004 :0040F49A
85C0
test eax, eax :0040F49C
0F8473010000
je
0040F615 <--- Bad
jump :0040F4A2
8B842440010000 mov
eax, dword ptr [esp+00000140] :0040F4A9
0FBE4804
movsx ecx, byte ptr [eax+04] :0040F4AD
51
push ecx :0040F4AE
E86D700500
call 00466520 :0040F4B3
83C404
add esp, 00000004 :0040F4B6
85C0
test eax, eax :0040F4B8
0F8457010000
je
0040F615 <--- Bad
jump :0040F4BE
8B942440010000 mov
edx, dword ptr [esp+00000140] :0040F4C5
0FBE4205
movsx eax, byte ptr [edx+05] :0040F4C9
50
push eax :0040F4CA
E851700500
call 00466520 :0040F4CF
83C404
add esp, 00000004 :0040F4D2
85C0
test eax, eax :0040F4D4
0F843B010000
je
0040F615 <--- Bad
jump :0040F4DA
8B8C2440010000 mov ecx, dword
ptr [esp+00000140] :0040F4E1
0FBE5106
movsx edx, byte ptr [ecx+06] :0040F4E5
52
push edx :0040F4E6
E835700500
call 00466520 :0040F4EB
83C404
add esp, 00000004 :0040F4EE
85C0
test eax, eax :0040F4F0
0F841F010000
je
0040F615 <--- Bad
jump :0040F4F6
8B842440010000 mov eax,
dword ptr [esp+00000140] :0040F4FD
0FBE4804
movsx ecx, byte ptr [eax+04]
...
:0040F554
69D251ED8764
imul edx, 6487ED51 :0040F55A
3BCA
cmp ecx, edx :0040F55C
0F85B3000000
jne
0040F615 <--- Bad
jump :0040F562
8B0D70EB4D00
mov ecx, dword ptr [004DEB70]
You see that we must NOP
every single jump that jumps to 0040F615,in order to
register. So
make sure the line is at :0040F434 and look what offset it is(it should be E834),now open your favourite hexeditor
and goto offset E834 and
enter OF84.You must do
this for every other jump that jumps to 0040F615. Example if the jump is jne 0040F615 then you must change it to
je 0040F615 (in hex it
would be 0F85 to
0F84) and if it is
je 0040F615 then change it
to jne 0040F615 (in hex:
0F84 to 0F85). When done all this,then save and
start Xara3D and enter any code press to register.And it accepts the
code.
After you register it
creates a key in registry:
HKEY_CURRENT_USER/SOFTWARE/XARA/X3D3/INSTALL/KEY
0x1da8403d (497565757) The key could be different on your
computer.
Job
done.
|