Two things: 1) The decrypted modules should only reside in RAM, never in virtual memory. Those RAM locations should be rendered inaccessible to Python code.
2) Only sell to an honest customer willing to be locked into nondisclosure agreements. This goes back to the maxim of good salesmanship: Know Your Customer. By definition, a lock keeps honest people out. The object of a lock is to make it too expensive for all but the most dishonest, desperate, or nihilistic to get into the house, because they can always smash a window or a door open. IMHO, I have never encountered a dishonest developer or business owner who at the same time possessed anything remotely resembling a rational business model. A person who cannot afford to get tools honestly is seldom able to accomplish anything significant or constructive from a business point of view with tools obtained dishonestly. Consider EDA software like Cadence, Matlab, or BEACON that is guarded by network license servers. The temptation is very strong for an individual to rip it off, but then consider all the user technical support and bug fixes that go into the package. Most relatively honest people see a strong lock and get the message not to try. The others who may rip off a locked package, but then the package becomes worthless not because it doesn't work, but because the thief has to work completely outside the knowledge base that an honest copy has access to. I have heard of the warez culture, but it seems to be nihilistic in the extreme. I don't search for warez, I don't touch warez, and I do not recommend anyone else to do so, because using it is simply bad business practice and will get one ostracised by the very people one wants to sell to. But at the end of the day it seems to serve as an unauthorized marketing and sales channel to whet the appetites for people to try the real thing. The Eternal Squire -- http://mail.python.org/mailman/listinfo/python-list