On 3/26/06, firstname.lastname@example.org email@example.com wrote:
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.