A crippled tl32v20.dll protection scheme: diskeeper

(Cracking efficiently)

by as65pp

(12 October 1997, slightly edited by fravia+)


Courtesy of fravia's page of reverse engineering

Well, another very interesting essay from a "new" collaborator... Timelock protection scheme, once more... this new "breed" of tl32v20.dll protection (timelock) must have been created as a consequence of our own work on these pages, which is pretty interesting... not all shareware authors have the courtesy of telling us that they learned from our site :-)

Cracking efficiently - by as65pp - 12 October 1997
A crippled tl32v20.dll protection scheme: diskeeper

Hidden register button
tl32v20.dll once more: Timelock-protected software
A small +HCU exercise for you clever reverser

Here as65pp's letter to the +HCU Caretakers (i.e. me and +gthorne :-)

Hi Fravia, Hi Greythorne

I've followed your site for quite a while now and I have to say it's for sure the most interesting place on the net. Thank you for maintaining it for such a long time and giving us the chance to learn!
I must admit that I'm not that excited about staring at huge code-listings for hours on end, so your "dead-listing" approach is definitely not for me.
To be honest, I wasn't any good at maths in school either :(
Nevertheless I was able to crack some programs by using a bit of common-sense and imagination. This one is a good example:

- "Fooling" Diskeeper -
-----------------------

Diskeeper from Executive Software is a defragmentation 
tool for Windows NT, it can handle NTFS- and 
FAT-Partitions and comes in two flavours: a 
'lite'-version (free of charge) and a 'pro'-version 
(prices from around $200 to $1500 for the NT-Server 
version), the main difference being that the 
pro-version can defrag in the background. 
Now guess which version I wanted to use :)
A free 30-day-demo of the pro-version can be downloaded 
from their website at www.execsoft.com. 
As I fetched and installed it, I saw that one of the files 
copied was named tl32v20.dll :)))
Great, I thougt, this will be dead in two minutes. 
(See Xoanon's essay on how to crack this lame 
protection). I didn't plan to patch the whole dll, I 
just wanted to use SoftICE to sniff the correct 
'unlock-code' from memory, as I had done many times 
before. Generally I prefer not to change too much of 
the code, if I can avoid it. So I started Diskeeper and 
up comes the familiar Nagscreen with it's three 
buttons... But hey, where is the infamous 'Purchase' 
button gone? Nothing there just 'OK' & 'Cancel'! The 
Nag-Text says something about contacting 
Executive-Software by phone if you would like to spend 
big bucks for their efforts (Ha!), but there is no 
option to 'Register by phone', as there normally would. 

What's going on here? In my opinion, the people at 
Executive-Software had read Xoanon's essay too (grin) 
and decided to be clever: 
"Let's disable the 'purchase' option, so bad, bad cracker 
gets no chance to sniff our unlock-code". 
By looking a bit deeper on 'tl32v20.dll' you can see that 
it has a different size than usual (86.528 bytes to 91.648 
bytes for the regular version). 
So what do we have here? A crippled protection scheme! 
Nice one, this.

Think a (tiny) bit about it all:

-  tl32v20.dll has to be called by the main module (DkWork.exe)
-  there are two copys of the dll installed by the program, one in 
   the main program directory and another one in the \defrag subdir
	IMPORTANT: If you haven't installed any Timelock-software before, 
        it is possible that another copy will be installed in the \WINNT 
        directory. 
        This wasn't the case on my machine, as I already had a 'uncrippled' 
        tl32v20.dll (91.648 bytes) from an earlier Timelock-protected 
        software (Boundschecker 5.0).
-  most likely, 'dkwork.exe' will call 'tl32v20.dll' only by it's name 
   no size-checking)
-  the whole point of the missing 'Purchase' option is that, if you enter 
   the correct code, it will modify an existing '*.tsf' - file (different 
   for each product) and put the correct code in there. 
   If 'tl32v20.dll' is called the next time (by 'DkWork.exe') it will in 
   turn look for the '*.tsf' - file, check the code in it, and won't pop-up 
   anymore if the code is right.

Got it ?! Exactly! We just have to replace the crippled 
version of 'tl32v20.dll' with the uncrippled one (both 
copyes of it must be replaced), run the app (Now the 
purchase-button is right there where it should be, 
fine), sniff the correct code with SoftICE and Bang!: 							
Thank you for your purchase!

For some reason, after you've done all this and let 
Diskeeper defrag for the first time, it will pop up 
with a "copy protect violation". You are then again 
presented with the Nagscreen - dont worry! Just enter 
the sniffed code for a second time and you'll be safe, 
it won't bother you again. I suppose this has something 
to do with the second copy of 'tl32v20.dll' in the 
\defrag - subdir, but that's only a guess.
training

This is intended as +HCU (easy) exercise for beginners: EXPLAIN this point. Best explanation(s) will be inserted here with the name of the author(s) on 1 Novemeber 1997, so don't rush, work deep: you have enough time to explain well this point (which is important)... send solutions to fravia+ and/or +gthorne
As you see there are three things needed to crack 
Diskeeper: 
- SoftICE for NT (3.0 or higher) to sniff the code 
  (you'll find it everywhere on the Net) 
- Xoanons essay about cracking the Timelock scheme 
  (read the others timelock essays too) 
- an 'uncrippled' copy of the Timelock-dll 
  (peruse your old "magazines" CD-roms or download any Timelock-protected 
  software (GeoBoy, Boundschecker, etc.) 
Small hint if you follow Xoanons essay: 'task' & 'hwnd' won't work in NT 
(error: no LDT), so a reverse engineer has to use 'bpx getwindowtexta' instead.

Conclusion: Well, nothing special really, except that 
it is possible to crack without knowing much about 
Assembler and without risking to get lost in the dark 
codewoods - just by using your brain and trying to 
understand the protectionist's reasons. 
In a quite similar way I managed to avoid the whole checksum-stuff 
(far too complicated!) when cracking SoftICE 3.01 for NT, but that's a 
different story (and maybe not that interesting anymore since v3.20 is 
already out).

That's all folks - bye for now!

-- as65pp  
(c) as65pp 1997. All rights reversed
You are deep inside fravia's page of reverse engineering, choose your way out:

redhomepage redlinks redanonymity +ORC redstudents' essays redacademy database
redtools redcocktails redantismut CGI-scripts redsearch_forms redmail_fravia
redIs reverse engineering legal?