We have a -government- customer that wants to buy our code so they can run the program themselves. We are using some code that we consider proprietary in nature (I.E. we developed internally how to obtain results that they seek) We want to hide that or lock their ability to understand what we do, as to retain other programs with said company - but out of good grace sell a program that is obsoleting so they may run it at their pleasure.
What sort of sneaky sneaky tricks do you guys have to bury code deep?
I was thinking of a pulling the code from a text file (have never done this). But I'm also not sure how robust that can be.
bfire85, Absolutely not. I'm part of an accredited body and that would be a huge risk with minimal reward and completely conflict with the nature of our business. The answer is actually very simple. Radii with very minimal arc length inspect more repeatable as a profile. The data is 100% raw and real, we are calculating the radii as a deviation of profile from the fix radii center to make it repeatable (Small deviations on small arc length = huge calculation ranges for circles ). There is no shortcut, and IMHO it's actually a better way of defining the feature. They just don't know how to do it and don't do research. That's why I don't care that it's posted on the internet.. Just thought it was a fair ask.
Is it possible to have the "secret code" perform outside of PC-DMIS, ie. create an executable in Visual Basic that performs whatever stuff you want to hide and call that from within PC-DMIS??
If you do it in VB.Net it's a piece of cake to transform the .exe back to source code and work out the algorithm.
In general: If the computer can execute it, a human can see what instructions are executed and, with enough time spent, the algorithms used can be re-constructed. If it's worth the time is a completely different question...
Does VB.net have obfuscators? I know there are obfuscators for Java and .NET C, but if they exist for the VB flavour is unknown to me. I was thinking maybe apply obfuscation when compiling and perhaps pack/crypt it using an EXE packer/crypter...
No doubt, but to them it's proprietary. Our QM has the acceptance of methods that are reliable/repeatable as the standard. I.E. it's written into our standard that the customer accepts the methods we utilize under the assumption due diligence was utilized to ensure it's accuracy. This allows 'proprietary' information to be kept confidential. Whether proprietary in nature or not, I don't have to share my methods unless otherwise agreed upon - therefore everything is 'proprietary'.
If you can't auto-obfuscate the code, you could at least scramble a bunch of variable names and use some wonky construction & formatting to accomplish the same goal.
There's no way to make it impenetrable, but you can certainly make it not worth the time