[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Check for expiry in Shareware applications ?

Nuralanur

3/26/2006 2:42:00 PM

Dear all,

sometimes software that is not released as open source comes as shareware or
demo, which has limited time functionality.
How can this be achieved in Ruby in some way that it cannot be trivially
circumvented (i.e., do not allow for changes in system date to obtain another
30 days) ?

Thank you very much!

Best regards,

Axel
2 Answers

Michael Fellinger

3/26/2006 2:54:00 PM

0

Hey Axel,Well, haven't given that much of thought, but how about checking thedate from the internet?The problem being that you have to be connected, but if that fails youcould still try the following:save the dates of execution of the program, if the date of thecomputer moves before that time you know that something is going wrong- usually the user will only change the date, not the time, so youcould try to just add another day when the time is not within the lastday (or something like that)or, even more simple - restrict how often the program can be run.However, no matter what you do, there is no way to take the right fromthe user to peek into the code and figure out what's going on. In caseyou save the dates in some external file, i'm quite sure that afterdeletion he will have full charge again :)another good attempt i've seen was from komodo, they have a quitedecent system of giving licences to use the program for a giventime-span for one given machine... well, i was not too excited aboutkomodo and prefer vim, so i didn't give it a second look :|~~~~manveruOn 3/26/06, Nuralanur@aol.com <Nuralanur@aol.com> wrote:> Dear all,>> sometimes software that is not released as open source comes as shareware or> demo, which has limited time functionality.> How can this be achieved in Ruby in some way that it cannot be trivially> circumvented (i.e., do not allow for changes in system date to obtain another> 30 days) ?>> Thank you very much!>> Best regards,>> Axel>>

Meinrad Recheis

3/26/2006 9:06:00 PM

0

On 3/26/06, Nuralanur@aol.com <Nuralanur@aol.com> wrote:
> Dear all,
>
> sometimes software that is not released as open source comes as shareware or
> demo, which has limited time functionality.
> How can this be achieved in Ruby in some way that it cannot be trivially
> circumvented (i.e., do not allow for changes in system date to obtain another
> 30 days) ?
>
to secure the source code from the users i compiled the ruby code as
gzipped C-string into an executable. the executable starts the ruby
interpreter and evaluates the inflated script with rb_eval (actually
similar function of the ruby c api which i don't recall now).

to make it even more secure you could encrypt the gzipped string. also
you could check a crc of the exe to see wether it has been modified.
but with a debugger the code might be uncovered at runtime maybe.

the question is, where do you store the license info (date installed /
numer of times launched) so that the user cannot cirumvent it by
reinstalling the product / deleting that data.

-- henon