09-27-2010 04:10 PM
We can tell that an entity has stolen our code and are using them in their .exe file.
We used to distribute our program as a light exe layer that dynamically loads some source code distribution vis (block diagram striped) off disk and runs them.
What we don't know is whether they actually got our in house source code, or if they are somehow taking the distributed vi's and compiling them into their exe.
So the question is: Is it possible to take vis compiled for a 'source distribution' with the block diagrams removed (but front panels not removed) and compile them into an executable?
09-27-2010 04:22 PM - edited 09-27-2010 04:25 PM
Thomas robertson wrote:So the question is: Is it possible to take vis compiled for a 'source distribution' with the block diagrams removed (but front panels not removed) and compile them into an executable?
Yes, although you are talking about two different things. For a source distribution in the Source File Settings page for the build settings you can click on the "Customize VI Settings" button and check the "Remove Diagram" option. Check the LabVIEW documentation on details. For an application I don't understand what you would be referring to. Are you referring to including the source distribution into the exe? That doesn't make much sense.
Are you using an older version of LabVIEW?
09-27-2010 04:25 PM
That seems to be an answer to the question "how do I strip block diagrams". But the question I'm asking is, can someone take those and compile them into their own executable, effectively stealing them from you as we suspect that a competitor may have done?
I tried doing it myself and failed (which is a good thing in our case), but I'm afraid I may have just not done it right.
09-27-2010 05:12 PM
Yes, someone could use the source distribution VIs for another executable. They would not need the block diagram - they would just need to call the VIs within the source distribution. That's probably all they did.
If you can prove they stole your work why not just sue them?
09-28-2010 08:23 AM
Oh wow, so you're certain that they can include such VIs into any executable? That's news, and can potentially change our approach to the problem... I failed to be able to compile them into an exe using Application builder when I tried, is there a special trick I have to use (I assume it has to be the same version of LabVIEW that the VI was created in, since there's no BD for it to recompile)?
I may have to demonstrate to a lawyer how they could have accomplished this.
09-28-2010 09:08 AM
It's actually quite possible to use a source distribution VI for a new app. You need to select the "Do not disconnect type definitions or remove unreferenced members" option in the "Additional Exclusions" page.
I've attached an example on how this can be done. Untitled Project 1 would be your project, which has a build target of your app, along with the source distribution for a VI with the block diagram stripped. Untitled Project 2 would be your competitor's project, which is a VI that uses your subVI directly and builds a separate application. As you can see, I can successfully build an application using your code.
09-28-2010 09:12 AM
Thanks. I will be looking at this in the next few days.
But, I should add that it was an older version of LabVIEW we were using back in the source code distribution days. LabVIEW 6 or 7. So I'll be pulling out one of those versions of LabVIEW to try to compile the exe in. (Unless a more recent version can include older vis even with the block diagram stripped which I'm pretty sure can't be done)
09-28-2010 09:28 AM
Thomas robertson wrote:But, I should add that it was an older version of LabVIEW we were using back in the source code distribution days. LabVIEW 6 or 7.
Ah, that's a completely different story. although the process is similar to the example I showed you for 8.2. Those versions of LabVIEW built applications in a different manner than 8.x. In those days the VIs were basically packed into a library (LLB) and a simple wrapper was added to make an executable. Anybody could look at (and extract) the contents of the executable directly - they would not need a source distribution. All you had to do was change the extension of the executable from .exe to .llb and then you could plop a VI from inside the executable right on your block diagram. The icon would have a big question mark, but you'd probably be able to guess what the VI did. It was not very secure in the least.
09-28-2010 09:45 AM
...and if they could guess at your icon layout, VI server would let them call any VI and is some cases (most?) not even require the same version of LV.
Ben
09-28-2010 04:00 PM
Note that it is possible (but a little trickier), to extract VIs from a .exe compiled from LV 8+.