TORN@DO presents: cRACKER's n0TES
Tips & Tricks for cracking Time Limits


30-Day-Time-Limit (Cruehead)
Many programs only work for a sertain number of days (mostly 30 = 1 month), but the apart from this limit, the program is fully functional. What you must do in this case, is to find where the "number of days used" get compared to "30", and modify the code. Here is what the code may look like:

    mov ecx,1E               ; mov 1E hex (30 dec) into ecx
    mov eax,[esp+10]         ; mov number of days used into eax
    cmp eax,ecx              ; compare eax (number of days used) with ecx (30)
    jl ...                   ; if eax is less then 30 we can still evaluate the program.
    
A simple way to crack this would be to change "mov eax,[esp+10]", into "mov eax,1" or something like that. Then the program will always think that we are on our first evaluation day. Another way to crack this would be changing the conditional jump, into a unconditional jump.




Expired (CbD)
If the program you're trying to crack has expired, you should look in the Registry under CURRENT_USER and LOCAL_MACHINE and check if there are any entries for the prorgram you're using and delete them to reinstall (Make sure you delete all files that were installed the first time... also use a registry logger such as cleansweep to monitor the files that your program puts on the drive ...




Lazy Programmer's Trial Check (CrackZ)
Your program allows you e. g. 30 days trial so lets just think about how a lazy programmer might check this or how it might look in assembly, perhaps something like this:


    CMP DWORD PTR register, 1E      <-- 1E of course is 30 days
    JLE/JGE address                 <-- Most likely these conditional jumps
    
So lets think in terms of opcodes, we have 83 for CMP, only several likely register options (when you've seen lots of time-trials you'll begin to feel which registers are used more commonly), then 1E for the 30 days and either 7E (JLE) or 7D (JGE) for the conditional jump. So lets grab our HEX editor and perform a little searching. You may find this on one or more locations. Immediately this location feels as if it must be a time-trial check. I didn't even feel the need to verify this, lets make the JLE (7E 33) that we've found into an unconditional jump (EB 33), I'm sure this program will never expire (in fact I would check it - just in case).




Time Limit Cracking using W32DASM (TORN@DO)
Set your system time ahead, so that the program has expired or better said: the trial period is over. Start the program. If a Message-Box is displayed, which says, that your Trial Time has expired, note down this and run W32DASM. If not, try to use a menu command in the program. Then the Message-Box will be displayed. Next thing to do is to search the string reference for the text, you wrote down, when the Message-Box expired. Then double click on it to go to that section. Then it's normally easy: analyze the code and well, crack it.





The cRACKER's n0tES are divided into 10 main parts:
 00. INDEX
 01. Assembly for Crackers (CoRN2)
 02. SoftICE (Boot Menu, Setup, Commands)
 03. Breakpoints & Win API Details
 04. Jump Instructions
 05. SET Instructions
 06. Tips & Tricks for Cracking
        1 Crippled Programs
        2 Dongles
        3 General
        4 InstallSHIELD Setups
        5 Key File Protections
        6 NAG Screens
        7 Runtime Limits
        8 Serials
        9 Time Limits
       10 Visual Basic 'Programs'
 07. Window Messages For Crackers
 08. Identifying Functions, Arguments, and Variables (Rhayader)
 09. Commerical Protection Systems
 10. Bitmanipulation (Cruehead)
 11. General Cracking Theory
 12. FAQ

 +A. How to contact me
 +B. What's New?



The cRACKER's n0TES are Copyright © 1998-2000 by TORN@DO of ID. All Rights Reserved. Archived and Re-hosted by Werdstaff