Algorithms

Moderators: None (Apply to moderate this forum)
Number of threads: 402
Number of posts: 786

This Forum Only
Post New Thread
Single Post View       Linear View       Threaded View      f

Report
Need Help on a Date Encryption Algorithm Posted by MacMurks1482 on 8 Nov 2002 at 9:37 AM
Hello!
My friend wrote a program that is "Expire-Ware",
i.e. this program expires after 30 days and refuses to run.
The bad thing about this is that this program STORES something into the registry when it expires,
so a reinstallation does not patch the date check.
Its a very good prog(some Shell integration to quickly navigate
through a lot of folders).
So i thought by myself, "What about cracking this prog?", and tracked
the timeout back into the registry, with a value named "InstallDate" and a 5 to 10 digit number. I tried some days by changing
the system date, this value is non-linear, seems to be some professional Algorithm.
does anyone of you have an idea about such a Date encryption Algorithm?
If so, PLEASE help me!

Thank you in Advance
MacMurks
Report
Re: Need Help on a Date Encryption Algorithm Posted by cherio on 9 Nov 2002 at 5:22 AM
: Hello!
: My friend wrote a program that is "Expire-Ware",
: i.e. this program expires after 30 days and refuses to run.
: The bad thing about this is that this program STORES something into the registry when it expires,
: so a reinstallation does not patch the date check.
: Its a very good prog(some Shell integration to quickly navigate
: through a lot of folders).
: So i thought by myself, "What about cracking this prog?", and tracked
: the timeout back into the registry, with a value named "InstallDate" and a 5 to 10 digit number. I tried some days by changing
: the system date, this value is non-linear, seems to be some professional Algorithm.
: does anyone of you have an idea about such a Date encryption Algorithm?
: If so, PLEASE help me!
:
: Thank you in Advance
: MacMurks
:

Well there can be any-number of such invertible tranformations,
for a n-digit number the number of such transformations is surprisingly
close to s = (n^n)! where ^ = power, != factorial.Having said that , the program could be using a simple mod encryption, but this is just one
possibility .If it is using a mod encryption, then probably there is
a constant or variable k, which is added to the time.If k is variable
then it could be dependent on time again,so unless you are aware of
some standard techniques that are employed, the possibilities are too many to consider.However,you could try to break the code systematically,
because out of the s possibilities some possibilities will have t
transformations common.If you happen to stumble upon just one combination which works for that value of time then you have broken the
code, to an extent, at least ,but it might just take forbiddingly
too much of your time , and effort and it may just be easier to register the software, but then again if you do come up with a general
private-key hacking solution, you could break into virtually any
private encryption system,cause you have the routine to generate the
necessary permutations anyway, which is why most password encryption
routines are not invertible, but that again has it's pitfalls.So this
does appear to be a no-win situation for anybody, unless n is sizeable,
in which case it might take too much computation time.
Forgive me,if I sound too pessimistic,and have'nt really answered the
question with a master-key solution.
Report
How to encrypt an encrypted date ... ;-) Posted by MacMurks1482 on 10 Nov 2002 at 12:42 AM
This message was edited by MacMurks1482 at 2002-11-10 0:47:9

Okay, here it is...

Key /Value

InstallDate 2452587
InstallDateKey 928109
LastRunDate 2452589

now the Values:

InstallDate (here:2002-11-08)
LastRunDate (here:2002-11-10)

I suppose both to be "linear" around some YearMonthDay formula, havent
tried much other dates to trace the formula

InstallDateKey (here:2002-11-08)
Installation date ENCRYPTED

So here the way the app checks the date:

"Today" is transformed into a value of this stuff
and compared to LastRunDate
If mismatch:ShareWare Dialog, calc&write NEW LastRunDate

LastRunDate is compared to InstallDate
if less:Error! ("Very first run" before installation!! )

InstallDate is "encrypted" and compared to InstallDateKey
if mismatch:Error!


This seems to be all!

So im not looking for an algo to encrypt some DATE,
but to encrypt an ENCRYPTED DATE!!!

Hoping someone can help me
Mac


Report
Re: How to encrypt an encrypted date ... ;-) Posted by cherio on 10 Nov 2002 at 3:20 AM
: This message was edited by MacMurks1482 at 2002-11-10 0:47:9

: Okay, here it is...
:
: Key /Value
:
: InstallDate 2452587
: InstallDateKey 928109
: LastRunDate 2452589
:
: now the Values:
:
: InstallDate (here:2002-11-08)
: LastRunDate (here:2002-11-10)
:
: I suppose both to be "linear" around some YearMonthDay formula, havent
: tried much other dates to trace the formula
:
: InstallDateKey (here:2002-11-08)
: Installation date ENCRYPTED
:
: So here the way the app checks the date:
:
: "Today" is transformed into a value of this stuff
: and compared to LastRunDate
: If mismatch:ShareWare Dialog, calc&write NEW LastRunDate
:
: LastRunDate is compared to InstallDate
: if less:Error! ("Very first run" before installation!! )
:
: InstallDate is "encrypted" and compared to InstallDateKey
: if mismatch:Error!
:
:
: This seems to be all!
:
: So im not looking for an algo to encrypt some DATE,
: but to encrypt an ENCRYPTED DATE!!!
:
: Hoping someone can help me
: Mac
:

Here

InstallDate is "encrypted" and compared to InstallDateKey
if mismatch:Error!

what you probably mean is, both install date and last run date are
considered for encryption, something like:

if (encrypt(installdate,lastrundate) > dateinstallkey)
return END_OF_TRIAL;

where encrypt() could be something like
f(installdate + (lastrundate - installdate)).

It is this f which I was talking about, because again you can define
any number of transformaions for f,but fewer then I said because ,the
> sign or < sign is probably involved in the comparison rather than
the == sign.
Report
Re: Need Help on a Date Encryption Algorithm Posted by cherio on 10 Nov 2002 at 3:27 AM
: Hello!
: My friend wrote a program that is "Expire-Ware",
: i.e. this program expires after 30 days and refuses to run.
: The bad thing about this is that this program STORES something into the registry when it expires,
: so a reinstallation does not patch the date check.
: Its a very good prog(some Shell integration to quickly navigate
: through a lot of folders).
: So i thought by myself, "What about cracking this prog?", and tracked
: the timeout back into the registry, with a value named "InstallDate" and a 5 to 10 digit number. I tried some days by changing
: the system date, this value is non-linear, seems to be some professional Algorithm.
: does anyone of you have an idea about such a Date encryption Algorithm?

Probably the only way to fool this system is to manipulate the last-run
date or basically ensure that computer always returns an early
last-run date, which means overriding the function which basiclly
invokes or returns the system time.
: If so, PLEASE help me!
:
: Thank you in Advance
: MacMurks
:

Report
Re: Need Help on a Date Encryption Algorithm Posted by cherio on 10 Nov 2002 at 3:28 AM
Probably the only way to fool this system is to manipulate the last-run
date or basically ensure that computer always returns an early
last-run date, which means overriding the function which basiclly
invokes or returns the system time.

Report
Re: Need Help on a Date Encryption Algorithm Posted by kor on 19 Nov 2002 at 2:38 PM
This message was edited by kor at 2002-11-19 14:42:17

: Probably the only way to fool this system is to manipulate the last-run
: date or basically ensure that computer always returns an early
: last-run date, which means overriding the function which basiclly
: invokes or returns the system time.
:
:
You could just delete the registry keys, increase the current system date to something in 3000, reinstall, and reset the date to the current date, and, unless the program checks to see if today is before the install date, you'll have no problems.

Erm... I missed the part of the post that said this is impossible. You could use repeated installs via the previous method and generate a list of dates and codes. From that information, you could write a batch file to update the registry every time you try to run and it has expired.
Report
Re: Need Help on a Date Encryption Algorithm Posted by MacMurks1482 on 9 Dec 2002 at 3:15 AM
SO!
Thats all for now!
I genereted a list of those "Eval2" Values for about 25 days
and did following:
1) Checked WHERE the program writes its initial values:
AT INSTALLATION TIME
2) Downloaded some InstallShield Script Decompiler and ran it
over the Installation Script->Source Code!
3) Analysed this source code to find out how the script
calculates the Date Value
This is Status Quo.
The last operation the script does is
x = x MOD [some HEX number]
the step before looks like(in BASIC)
Select case x mod 2
case 0
x = ThisOne
case 1
x = TheOtherOne
end select
i.e. even values are processed
different from odd ones.
this is the end of my analysis for now.
im glad to be a hacka!
if anyone is interested in a MPMAN F60 Manager
WITHOUT COPY PROTECTION, just tell me!

Greetz MAC



 

Recent Jobs

Official Programmer's Heaven Blogs
Web Hosting | Browser and Social Games | Gadgets

Popular resources on Programmersheaven.com
Assembly | Basic | C | C# | C++ | Delphi | Flash | Java | JavaScript | Pascal | Perl | PHP | Python | Ruby | Visual Basic
© Copyright 2011 Programmersheaven.com - All rights reserved.
Reproduction in whole or in part, in any form or medium without express written permission is prohibited.
Violators of this policy may be subject to legal action. Please read our Terms Of Use and Privacy Statement for more information.
Operated by CommunityHeaven, a BootstrapLabs company.