Categories: Protection
From IP Protection to Monetization: Safeguarding Your LabVIEW Applications
LabVIEW developers pour expertise into crafting powerful applications, but without robust protection, their intellectual property is at risk. AxProtector, combined with the CodeMeter API, offers a straight forward and powerful way to secure LabVIEW executables and introduce advanced licensing models.
In the realm of visual programming, instrument control and industrial automation, LabVIEW is a cornerstone for engineers worldwide. Developed by National Instruments, LabVIEW has revolutionized how complex systems are designed, tested, and deployed since its inception in 1986. With its intuitive graphical user interface, where users connect functional blocks to create virtual instruments (VIs), LabVIEW enables rapid development in fields such as automation and measure ment technology. From controlling industrial machinery to analyzing biomedical signals, LabVIEW applications drive innovation across industries.
Yet, this power comes at a cost. LabVIEW users invest vast resources and significant intellectual property to build powerful applications for their customers. These applications are often compiled into standalone executables for distribution. In our era, where reverse engineering, piracy, and intellectual property theft are endemic, safeguarding these assets is paramount. AxProtector delivers robust software protection and flexible licensing, ensuring that your LabVIEW applications remain secure and monetizable.
How AxProtector Secures LabVIEW Executables
Protecting a LabVIEW application with AxProtector is straight forward and requires no coding expertise.
Once your executable is compiled with LabVIEW’s Application Builder, AxProtector steps in to wrap that binary with multiple defense layers. Advanced anti-debugging and anti-disassembly mechanisms make reverse engineering prohibitive ly difficult. The binary is then encrypted, and the AxEngine is integrated. At runtime, the AxEngine decrypts the application only in memory – and only if a valid license is present. This approach guarantees that your intellectual property is never exposed in plain code, while licensing becomes the key that governs access.
To protect your LabVIEW executable:
- Launch AxProtector and select the target platform.
- Specify the source file (your executable) and the destination for the protected version.
- In the Licensing Systems tab enter your Firm Code and Prod uct Code. This specifies the cryptographic material that is used to encrypt your application. The Firm Code is unique to your company; for the Product Code you can choose from 1 up to more than 4 billion unique values.
- For now, you can keep all the other options at their default values.
- Proceed to the Summary tab and click Finish. AxProtector will encrypt the executable and bundle it with the AxEngine.
Once protected, your application will only run if a matching license is present. This setup prevents piracy and enables flexible distribution models.
Beyond Basic Protection: Usage-Based Licensing
For scenarios where consumption-based billing is relevant to your business model, unit counters are the way to go. Unit counters let licenses track usage with a decreasing count, where each app launch or specific action consumes units until the balance is depleted.
Adding the CodeMeter API
To implement this, we must go beyond automatic protection by integrating CodeMeter API. This API provides programmatic access to license operations directly from your LabVIEW program. It is available as C API via a shared library and a corresponding header file. This makes it easy to integrate into your project via the Shared Library Wizard. This will generate a wrapper Virtual Instrument (VI) for each function and con vert all data types in the shared library to LabVIEW data types.
Here is a high-level integration outline:
- Use CmAccess2(..) to access the license and retrieve a handle
- Use CmCrypt2(..) with an appropriate Encryption Code Options configuration to decrement the Unit Counter
- You can use CmGetInfo(..) to read the current state of the Unit Counter and display a message to the user
- Release the handle with CmRelease(..)
This can then be used to gatekeep core functionality in your application, consuming a unit each time a specific action is performed.
AxProtector’s seamless encryption shields your intellectual property from piracy, while CodeMeter API Unit Counters enable dynamic licensing models such as pay per-use, feature-based activation, or time-limited trials. Together, they give you the tools to safeguard innovation, strengthen customer trust, and create new revenue streams.
KEYnote 50 - Edition Fall/Winter 2025
