07-27-2011 01:47 PM
We wish to use a product which inserts code into our executable to prevent tampering with it by crackers. The program, however, takes the executable file, as well as the map file (which is commonly generated by c++ compilers) and uses the map file to determine where in the exe the critical routines that need protection are at. I can not, however, determine how to create such a map file for a LabVIEW generated executable. Is there a special build option I need to invoke?
07-27-2011 02:08 PM
I don't think there's any way to get this from the LabVIEW compiler. My understanding (which is quite limited in this specific area) is that the map files rely on line numbers, and LabVIEW coding doesn't work from line numbers.
Admittedly just guessing here.
07-27-2011 02:56 PM
Ah.... I thought map files were about identifying blocks where functions start and end.
Is there another NI person who can confirm this 100%? Reason I ask is it's a true/false question that determines whether we purchase a $25,000 piece of security software.
07-27-2011 03:05 PM
You do know that building an exe is not at all the same thing as compiling, don't you? The VI is compiled when you click on the run arrow.
In any case, what sort of protection are you looking for? Have you seen this?
07-27-2011 03:27 PM
Yes, I'm familar with NI's licensing technology, having talked with someone (you, Dennis, I believe) about it before. The problem we have is our software is sold to factories in China where there are no internet connections. We have a physical key 'dongle' which must be present in order for the executable to be willing to run. However, it appears that people are taking the executable which LabVIEW creates and they are editing it, probably by using a a debugger and tracing to the the code which checks for the dongles presence and bypassing it. To my knoweledge, NI's products don't do anything to prevent this, right?
We found a company which sells a product that encryptes, checksums, etc... an executable file, but it needs to know the layout of functions in the exe in order to determine which areas to focus the obfuscation on. They were sort of matter of fact when they said it needs the exe and the map file, as if they expected any language which produced an exe could produce a map file.
07-27-2011 04:10 PM
You don't need an Internet connection and I don't think Dongles are supported at all.
If you only depended on something I said, you have not truly investigated anything at all about this license scheme. I would suggest contacting the actual vendor.
07-27-2011 04:13 PM
My appologies, this is something different than what I thought it was, I will investigate it. In any event, to wrap up the original question, are you quite certain that map files can't be produced by LabVIEW?
08-09-2011 10:37 AM
It indeed appears that this product is what we needed. Apparently it obfuscates the dll making it difficult to manipulate with debuggers, performs checks on it to ensure it has been tampered with, etc... It should at least make it much harder for people to crack our product.
Thank you for pointing me to it Dennis!