<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>1. Put all the compiled Python bytecode in a heavily encrypted binary
<br>file. Consider using a hardware hash in the key.<br><br>2. Program a small binary executable (.exe file) in C or C++ that:<br><br>   2a. Reads the binary file.<br><br>   2b. Decrypts it to conventional Python byte code.
<br><br>   2c. Embeds a Python interpreter.<br><br>   2d. Executes the bytecode with the embedded Python interpreter.<br><br>3. Protect the executable with a licence manager such as Flexlm or<br>SoftwarePassport.<br><br>I will not make reverse engineering impossible, but it will be
<br>extremely difficult.<br><br>As noted, the only completely safe solution is to provide a web<br>application instead of distributing your program.<br><div><div></div><div class="Wj3C7c"><br><br><br>--<br><a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">
http://mail.python.org/mailman/listinfo/python-list</a><br></div></div></blockquote></div><br><br clear="all">Guidelines are good. but as you stated, web application instead of desktop apps. Well, the main aim and interest here was to protect it against piracy and web application are easier to be get shared and pirated than desk apps.
<br>And there is no foolproof method known to me. Even Flexlm used in Acrobat(Adobe) is cracked in easy manner. <br>The best thing to me looks like none. You can go with anything, and always fear that if the app is needed by many others, it will be cracked.
<br>Othewise, the method stated above is good to go.<br>Get app core into python, encrypt-assemble the compiled python code with some key.<br>When launched, get it reversed to python bytecode and there you go,.<br>Now, since your apps loader is built in C, you can apply available methods for C/C++/
<br><br>Remember, since python is readable easily, you fear so. But no language exists which humans can't read. <br>At worst level, they will have to go for Assembly Level decompiling, but thats possible too<br>-- <br>
-=Ravi=-