[R] Making a trial based Package for 30-days.

Spencer Graves spencer.graves at structuremonitoring.com
Mon May 12 17:59:33 CEST 2014


On 5/12/2014 8:21 AM, Barry Rowlingson wrote:
> On Mon, May 12, 2014 at 3:45 PM, Spencer Graves
> <spencer.graves at structuremonitoring.com> wrote:
>
>>         One company I know installed an S-Plus or R package only on
>> servers, so their customers had to use it on a server.  (In this case,
>> the customers had a GUI and may not have known that it was S-Plus or R
>> behind it.)  This company also developed techniques for encrypting their
>> code.  I don't think it was perfect, and they eventually wrote it in C
>> or C++ or Matlab.
>   If the code runs on a server controlled by the company, and the user
> uses the code via some network API, then it might be practical to give
> a user a password that is revoked after thirty days. If the server is
> controlled by the user, then all bets are off.
>
>   Any "encrypted" code has to be decrypted in order to be executed, so
> it is only obfuscated code. Even systems where the decryption keys are
> hidden in hardware chips covered in resin have been cracked by
> enthusiasts with a sharp blade, small probes, and a digital
> oscilloscope. We are talking hardware encryption/DRM systems developed
> by companies like SONY.
>
>>         So part of the answer is you can write part of your package in a
>> compiled language.  That part can check your web site to check the date
>> and other things.
>   Still easily circumventable (poke the code, preload a different date
> library DLL, turn the clock back...), so why bother? You can't
> consider how you'd have self-destructing code without having a debate
> about the cost and effort you want to put in and the cost and effort
> crackers want to put in. I the SONY case (or similar) crackers will
> compete like mad to crack the DRM, even if only for fame and not
> fortune or free access to pirated games.
>
>   I think it would take me under an hour to write a package that
> self-destructed. Its not difficult, you create a file somewhere when
> the system first runs, then on subsequent runs check the date is less
> than 30 days after the file, and run file.remove over the package if
> its expired.


       Agreed.  The only certainties are death, taxes, and uncertainty ;-)


       Some of us are fortunate enough to be able to contribute to R and 
CRAN without having it jeopardize our access to adequate food and 
shelter.  Many people get paid for writing code, and some of those get 
paid from license fees.  A better world is possible, but that's beyond 
the scope of this discussion.


       Spencer


> Barry



More information about the R-help mailing list