[Openmcl-devel] CCL images, consumer apps, and piracy
stassats at gmail.com
Sat Apr 9 10:50:13 PDT 2011
Brandon Van Every <bvanevery at gmail.com> writes:
> Hi, I'm pretty new to Common Lisp and Clozure CL. I'm using Windows
> Vista. I have been reading a lot of materials to try to understand
> how CLL produces standalone apps.
> Let's say I write a commercial app for a consumer audience, such as a
> game. Aside from a few system .dlls accessed by CFFI, it is written
> entirely in CL. I save-application with prepend-kernel to create a
> standalone .exe. What's to stop some hacker from extracting my Lisp
> image from the standalone .exe, loading it with a CCL kernel of their
> choosing, and then using my code in any way they like? It seems like
> not only could they pirate my game, they could mod it in any way they
> like, and easily distribute their own derivative works. If there's
> something about the internals of a CCL image that would make this
> difficult, I would be grateful for an explanation. Or, if it's easy
> by default but can be made difficult, I'd welcome that too.
> I'd rather not get into a big discussion about the merits / demerits
> of worrying about game piracy in the first place. Recent evidence
> from Stardock's "Sins of a Solar Empire" suggest that up to a certain
> number of sales, piracy is not worth worrying about.
> http://forums.sinsofasolarempire.com/post.aspx?postid=303512 Their
> philosophy is to concentrate on their core paying customers, who are
> not pirates and are annoyed by anti-piracy measures. However, the
> evidence from other sources is that once one is selling millions of
> copies of a game, piracy is rampant. There's a smaller market of
> conscientious consumers who just pay for stuff, and a mass market of
> cheapskate consumers who love to get everything for free. Suffice it
> to say that "I am ambitious," so I keep my eye on such issues.
In CCL, by default, you can retrieve the sources of compiled
(ccl:source-note-text (ccl:function-source-note #'foo))
=> "source code"
You can circumvent that by setting ccl:*save-source-locations* to NIL.
With best regards, Stas.
More information about the Openmcl-devel