Introduction:
Well, here we are again, another version of the Voodoolights
screensaver..........and still
the same old protection. The only difference being it is now a 21 day
trial limit rather than 30 days.
The Crack:
Well, let's see, we have to remove the check that
is made for the 21 days expiring and
change a bit of text in the main file referring this fact.
Tools needed:
WDASM, Hex-editor
Let's go........
First of all try putting your system
clock forward by a month and run the screensaver
to see what happens. You get a message at the bottom of the screen 'Evaluation
period is over' then the screensaver quits. So we need to find areference
to this string
in the main file.
There are 2 files we need to be concerned with here: VoodooLights.scr
and
VoodooLightsCP.exe. They are both in the
windows\system folder. So disassemble
VoodooLights.scr first.
Search for the string 'evaluation period' amd you will find what your
looking for at
the code shown below:
* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
:00408AE5(C), :00408AE9(C)
* Possible StringData Ref
from Data Obj ->"Evaluation period
is over."
:00408B3A 68F08D4500 push 00458DF0
:00408B3F 6858D54500 push 0045D558
|
If you trace the calls highlighted in blue
then you will end up here:
:00408AD6 E8A5840200 call 00430F80
:00408ADB B915000000 mov ecx, 00000015
> Put value 15h in ecx
:00408AE0 2BC8 sub ecx, eax ------------------->
Subtract from ecx
:00408AE2 83F9FF cmp ecx, FFFFFFFF
------> Test for value -1
:00408AE5 7C53 jl 00408B3A -------------------->
Jumps to 'evaluation period is over'
:00408AE7 85C9 test ecx, ecx
:00408AE9 7E4F jle 00408B3A ------------------>
Jumps to 'evaluation period is over'
:00408AEB 56 push esi
:00408AEC 8D4C2408 lea ecx, dword ptr [esp+08]
:00408AF0 E8EB810200 call 00430CE0 |
Let's take a closer look at this
code:
At 00408ADB a value of 15h is placed
in register ecx.
At 00408AE0 the value of eax is
subtracted from ecx.
At 00408AE2 a test is made for ecx
being -1.
At 00408AE5
and 00408AE9 the program jumps to the evaluation notice if
ecx is -1 or 0.
The value 15h is 21 in decimal, so this is the number of days we had
originally to evaluate
the program.
The value in eax is the number of days we have been using the program.
The value in ecx after the subtraction is the number of days we have
left to evaluate the
program.
So if the resultant value is 0 days or less then the time limit is up
and the program issues
the 'evaluation period is over' notice then quits.
To crack this routine we need the
value in ecx to be 1 or greater. So by removing the
subtraction part of the routine the value will always be 21. Simply
replace it with 2 NOPs.
What
we now have to do is check how many times this routine appears in the
code and
alter them all.
Do a search from the top of the dissasembled listing for 'mov ecx, 00000015'.
You need to find the below code around it as well.
call 00430F80
mov ecx, 00000015
sub ecx, eax
cmp ecx, FFFFFFFF |
You
will find it 5 times, here are the offsets to patch with 9090.
8809,
8AE0, 8A07, 8A28, 8B01. So load the VoodooLights.scr
into your hex-editor and patch it.
We can make things even neater by getting the program to generate the
'Registered to'
message by patching 9090 at offset 8A9D.
And make it even neater still by patching the VoodoolightsCP.exe
at offset 852E with 9090
and patch two spaces at offset 58DAB.
|