sumanta has asked for the wisdom of the Perl Monks concerning the following question:
I have been working on to find a solution to hide the business logic of a Perl code so that the project can be delivered to the customer network without much concern. Ofcourse I am sure that it's almost impossible to completely secure the code from "too curious" eyes, but I tried to make things harder for them. Now I need your thoughts/suggestions/criticism for the below mentioned approach.
I have developed 2 different executable using C programming language. (i) The first program is responsible for encrypting the Perl code with password protected custom encryption logic. This will also modify the Perl script to change Shebang line (to include custom perl intertreter) and add another BEGIN block which restricts use of default Perl interpreter & debugger. (ii) The second program (namely myPerl.exe) has actualy replaced the original "Perl.exe" interpreter. It is responsible for decrypting the encrypted Perl code and perform an in-memory execution. Now the password can be stored in a scattered way inside the encrypted Perl code. It will also restrict the debug mode so that the code can not be viewed. Although the debugging can be performed by providing a password.
I have implemented this already and it's working fine. During the time of execution it is expected to decrypt the code, so it slightly increases the execution time, but I have no problem with that. I will be very happy to receive your valuable feedback/suggestions on this approach. Thanks in advance.