Copy protection, licensing library and license generator for Windows and Linux.
Protect the software you develop from unauthorized copies, limit the usage in time, to a specific set of machines, or prevent the usage in virtualized environments. It is an open source license manager that helps to keep your software closed 😏 . Among other features if it runs on a "real hardware" it can generate a signature of that hardware and report if the signature doesn't match.
A comprehensive list of features, and their status is available in the project site.
If you're experiencing problems, or you just need informations you can't find in the documentation please contact us on github discussions, we'll be happy to help.
Remember to show your appreciation giving us a star here on GitHub.
This fork introduces a new cross-platform licensing strategy based on motherboard and disk information, using the HWInfo library for hardware identification.
- Motherboard and Disk-Based Licensing: Generates hardware signatures based on motherboard and disk properties, providing stronger protection against virtualization and hardware tampering.
- Cross-Platform Compatibility: On Windows, the motherboard (mainboard) serial number is used for identification, while on Linux, the disk serial number is utilized.
- Minimal Impact on Existing Functionality: Integrated into the
licensecc
library with minimal disruption to existing features.
- Clone the repository with the
--recursive
flag to include thehwinfo
submodule:git clone --recursive https://github.com/giedrius-N/licensecc.git
- Refer to the example
motherboard_disk_strategy.cpp
for implementation details.
- Adds a new licensing strategy based on motherboard and disk properties.
- Enhances hardware signature robustness for cross-platform environments.
More about linking to other projects
The project is donated to the community. It comes with freedom of use for everyone, and it always will be. It has a BSD 3 clauses licensing schema, that allows free modification and use in commercial software.
The software is made by 4 main sub-components:
- a C++ library with a nice C api,
licensecc
with minimal (or no) external dependencies (the part you have to integrate in your software) that is the project you're currently in. - a license debugger
lcc-inspector
to be sent to the final customer when there are licensing problems or for calculating the pc hash before issuing the license. - a license generator (github project lcc-license-generator)
lccgen
for customizing the library and generate the licenses. - Usage examples to simplify the integration in your project.
Below an overview of the basic build procedure, you can find detailed instructions for Linux or Windows in the project web site.
- Operating system: Linux(Ubuntu, CentOS), Windows
- compilers : GCC (Linux) MINGW (Linux cross compile for Windows), MINGW or MSVC (Windows)
- tools : cmake(>3.6), git, make/ninja(linux)
- libs : If target is Linux Openssl is required. Windows depends only on system libraries. Boost is necessary to build license generator and to run the tests but it's NOT a dependency of the final
licensecc
library.
For a complete list of dependencies and supported environments see the project website
Clone the project. It has submodules, don't forget the --recursive
option.
git clone --recursive https://github.com/open-license-manager/licensecc.git
cd licensecc/build
cmake .. -DCMAKE_INSTALL_PREFIX=../install
make
make install
cmake .. -G "Visual Studio 15 2017 Win64" -DBOOST_ROOT="{Folder where boost is}" -DCMAKE_INSTALL_PREFIX=../install
cmake --build . --target install --config Release
x86_64-w64-mingw32.static-cmake .. -DCMAKE_INSTALL_PREFIX=../install
make
make install
make test
ctest -C Release
The examples repository that shows various ways to integrate licensecc
into your project.
The easiest way you can solve your problems or ask help is through the discussions tab above, otherwise if you think there is a problem you can open an issue in the issue system.
Have a look to the contribution guidelines before reporting.
We use GitFlow (or at least a subset of it).
Remember to install the gitflow git plugin and use develop
as default branch for your pull requests.