UniKey Protects Software from Reverse Engineering
(24/10/2009)
Software reverse engineering is the technique of getting the original source code from the binary. Competitors might use reverse engineering to figure out how you implemented that cool feature. Crackers might use it to see how they can bypass your license policy.
Tools of the Reverse Engineering
Dis-assemblers are used to dis-assemble the binary into readable (at least, semi-readable) code.
De-compilers convert programs from an intermediate language like Java byte code to their more highly readable original source code.
Resource monitoring tools are used to track the usage of files and registry entries.
How to beat reverse engineering
There are several strategies available to defend against reverse engineering. Code obfuscation, which we discussed in depth two years ago, is the simplest (and cheapest) method to deter reverse engineers. Code obfuscation changes function names, alters the sequence of code, and adds noise, without changing the functionality of the code itself.
Strong encryption with hardware keys. UniKey is a popular commercial solution that uses this technique, and we will be citing many of the techniques it uses in this article.
The approach is simple – encrypt the binary, attach it to a decryption engine and store the encryption key in a hardware key. The decryption engine loads the binary to memory, decrypts it with the key from the key and then runs the binary. Since the hardware key is required to decrypt the binary, this is also an effective mechanism for license control.
How UniKey Protect Software from Reverse Engineering
UniKey Software Protection System has two methods to protect your programs: Envelope and API. API Protection involves modifying the source code using an API (Application Programming Interface), by inserting function calls to a DLL to perform the protection process. On the other hand, the Envelope protection does not need to make changes in your source code because it directly protects the executable adding Anti-hacking and Anti-debugging routines.
Furthermore, the protected application is encrypted to prevent Reverse Engineering. All this influences your product is protected by an impenetrable fortress for hackers avoiding loss of revenue due to piracy. You can use one or both of the two modes of protection to increase the security of your system at maximum.
UniKey Envelope automatically "wraps" applications with a protective shield that incorporates anti-reverse engineering, file encryption, code obfuscation, system-level anti-debugging and automatic licensing. Within minutes, software is completely protected against outside threats without requiring any changes to the source code itself, allowing software engineers to focus on core capabilities to streamline business processes.
Using UniKey developers can specify the individual way to encrypt and decrypt the program only at execution. The result is that smaller portions of code are exposed in memory for shorter periods of time, making the source code far less vulnerable. Therefore they cannot simply be dumped from memory to form usable code – even while decrypted.
Software vendor can license and control each individual features separately using UniKey envelope protection.
Benefits of using the Envelope:
Protects your software against unauthorized use by binding the software to UniKey
Prevents reverse engineering by encrypting the software files
Prevents debugging of your application code by using strong anti-debugging schemes
Prevents attacks on your software by wrapping the files with multiple, randomly-assembled layers of protection.
UniKey API protection
UniKey offers a second layer of protection that can be customized for each application. The UniKey dongle can store secret strings, in addition to the UniKey dongle for decrypting the binary. You can store custom secrets in the dongle and then periodically query the dongle to see if it’s present. If the dongle is absent, you may choose to exit the program. It is an additional layer of security, beyond the standard envelope. This allows you to check the presence of the dongle from deep within your source code. This makes reverse engineering even more difficult. Software developers could even generate noise through red herring calls and confound the attacker further.
UniKey dongles include back office APIs that enable you to integrate fulfillment of software licenses into your organization’s process. With back office APIs, you can create custom applications to program UniKey using your own internal applications without interruption to your existing business model. This facilitates automation and provides more flexibility with your internal manufacturing and delivery systems, greatly reducing the time required to fulfill UniKey.
Using the UniKey API utility in conjunction with the Envelope tool to protect the intellectual property present in your source code and associated data files should be an integral part of your overall software protection plan.
Related topics: Application and software security Encryption
Print version |
Email to a friend |
Related articles
Data breaches: Trends, costs and best practices gives you all the latest information on securing personal and corporate data, key recommendations for immediate action to improve data security, and how to respond to data breaches.
Other Security news and resources
Security News
Suppliers Directory
Jobs forum
Classifieds
Knowledge base
White papers
Research library
Security books
Special reports
Security interviews
Security companies
Security events
Security links
Security market
Product channels
Access Control Biometrics CCTV Intruder Alarms IT Security Manned Guarding Perimeter Protection Physical Security Remote Monitoring Security Services Fire, Health & Safety Other Security Products
IT Security white papers and research library
Access Control Authentication Data Management Data Security Digital Signatures Email Security Identity Management Internet Security Intrusion Prevention Network Security Remote access security Security Management Security Policies Security Software Security Threats Virus Detection Software Virus Protection VPN Vulnerability Assessment Wireless Security
Security books, guides, standards and toolkits
RFID and Smart Cards books, guides and reference documents Biometric books, guides and reference documents CCTV books, guides and reference documents Intruder alarms and intrusion detection systems books, guides and reference documents Monitoring and surveillance books, guides and reference documents IT Governance, ISO 27001 ISO 17799 and BS 7799 toolkits Fire, Health & Safety books, guides and reference documents


