If an EXE file is disassembled, th ePSK or ReadKey would be visible. We recommend splitting the keys in different parts and variables - if possible, split it between different DLLs.
Example: PSK: This is a b1eatiful mo2rning
Split the READ in your code into variables with a$=”th”, b$=”is”, c$=”a” and define constants for numeric values. Add all variables and the constants to a string before you use the prepare method. In the example b$ can be used for the word THIS and for the word IS - use variables whose content you can use multiple times in the PSK.
If possible, only use the Read Key instead of the PSK and split the Read Key in the same way.
Sample
Read Key:
r1nBLCV1rZLZI0YyG7J1BiGNc2cLtZg21pfxm1nv9Jl2f34fs2ajVw31ToTQL1QYtDg21mdF5285UTM24Huyj1zSmDp1Eytat2dLCLB1XPh3Z292dIG11XErz134VPv1nsIxW0SWjHC1Tg4v9280TSr1tbt6o1Tu5Je0SVKh71c8Vtx12XtvM1pTIxi1lgBca2acLYI1Dv5wb11Y7Cd12XcVO1pPfXm1XYppC0ZM37R1yXsvn27WwPF1qVcY12eLrUF1UAjZl26Y1xe17wY4j
A very simple method would be to hide the strings in different program parts and make calculations. You can implement more sophistic code like the one below. This is just to outline an idea.
x$=”2”
a$=r1nBLCV1rZLZI0YyG7J1BiGNc2cLtZg21pfxm1nv9Jl2f34fs2ajVw31ToTQL1QYtDg21mdFb$=str$((500+28)) c$=5UTM+x$+4Huyj1zSmDp1Eytat+x$+dLCLB1XPh3Z+x$+9+x$+dIG11XErz134VPv1nsIxW0SWjHC1Tg4v9+x$+80TSr1tbt6o1Tu5Je0SVKh71c8Vtx1+x$+XtvM1pTIxi1lgBca+x$+acLYI1Dv5wb11Y7Cd1+x$+XcVO1pPfXm1XYppC0ZM37R1yXsvn+x$+7WwPF1qVcY1+x$+eLrUF1UAjZl+x$+6Y1xe17wY4j
readkey$=a$+b$+c$
.NET offers a SecureString Class. It represents text that should be kept confidential. The text is encrypted for privacy when being used, and deleted from computer memory when no longer needed. For details see: http://msdn2.microsoft.com/en-us/library/system.security.securestring.aspx
Another good idea is to use 2 license files with different encryption. One file to store configuration data (config.lic) and one file to store the license information (license.lic)
•Create a config.lic with a different encryption (ReadKey / Writekey)
•Store the ReadKey of the license.lic in the data area of the config.lic or in the TAG value
•You can additionally store the CRC values of your other program components in the config.lic
•Hide the ReadKey of the config.lic as described above in your Source Code
•To open the license file, first open the config.lic, retrieve the ReadKey of the license file license.lic and then open the license.lic file