Software and file protection — frequently asked questions
How protection works, where its limits are, and how licences get broken.
What are the main ways to protect software?
There are two techniques: authentication (checking a key, serial number or value) and code porting (running part of your program inside the dongle).
What is authentication?
Verifying a string, number or combination — for example a licence key, the serial number of a USB flash drive or CPU, or a key stored inside a dongle.
What is code porting?
Programs are made of functions, often kept in library files. With code porting, one or more functions are stored and run inside the dongle. Because they cannot be extracted, it is considered the safest technique — usable even for open-source and .NET software. Functions are written in C and ported to the dongle as a HEX file.
Which protection methods are common?
Hardware IDs (CPU, hard disk, USB flash, motherboard), USB dongles, static licence keys, keys tied to hardware serial numbers and activated online (our net activation), and online portals that license use while the user is logged in.
What is reverse engineering?
Decompiling software to recover its code. A cracker can then bypass the authentication code and recompile a version that runs without a licence. With code porting, the important functions stay inside the dongle.
How can reverse engineering be prevented?
No method is 100% safe — you can only make reversing harder. Our iBinder envelope adds a binary layer and runs the program in a virtual environment; for .NET, obfuscation helps. Combining several methods makes cracking progressively harder.
What are the limits of hardware-serial-number protection?
The software works only on the licensed system. If the user changes hardware, they need a new licence. Also, techniques exist to clone hardware serial numbers.
What are the limits of USB dongles?
Dongles give users freedom to move between computers — and they can even resell the licence unless your terms forbid it.
What are the risks with authentication dongles?
Most have a developer ID plus read and write passwords and stored keys. If the dongle maker or distributor assigns the ID, sign a non-disclosure agreement. Keep IDs and keys known only to a few senior people, and sign NDAs with employees — people are the weakest link in security.
How are software licences usually broken?
By using debuggers (such as WinDbg) or hex editors to bypass checks; editing memory while a demo runs; replacing the dongle DLL with a fake one (validate your DLL with a hash, or link libraries statically in C++); sniffing unencrypted dongle communication; or writing key generators for static keys. Research the risks for your programming language, or ask us.
Protect your software, files or data
Tell us what you want to protect and how you sell it. We will suggest the right dongle or tool and send a quote.