By Christian Collberg
“This publication offers thorough, scholarly assurance of a space of turning out to be value in desktop safety and is a ‘must have’ for each researcher, pupil, and practising specialist in software program protection.”
—Mikhail Atallah, special Professor of laptop technological know-how at Purdue University
Theory, recommendations, and instruments for scuffling with software program Piracy, Tampering, and Malicious opposite Engineering
The final decade has obvious major growth within the improvement of options for resisting software program piracy and tampering. those ideas are critical for software program builders trying to safeguard important highbrow estate. Surreptitious Software is the 1st authoritative, complete source for researchers, builders, and scholars who are looking to comprehend those ways, the extent of defense they find the money for, and the functionality penalty they incur.
Christian Collberg and Jasvir Nagra assemble options drawn from comparable parts of computing device technological know-how, together with cryptography, steganography, watermarking, software program metrics, opposite engineering, and compiler optimization. utilizing large pattern code, they express readers the right way to enforce safety schemes starting from code obfuscation and software program fingerprinting to tamperproofing and birthmarking, and speak about the theoretical and functional barriers of those ideas.
- Mastering recommendations that either attackers and defenders use to research programs
- Using code obfuscation to make software program tougher to research and understand
- Fingerprinting software program to spot its writer and to track software program pirates
- Tamperproofing software program utilizing guards that become aware of and reply to unlawful ameliorations of code and data
- Strengthening content material defense via dynamic watermarking and dynamic obfuscation
- Detecting code robbery through software program similarity research and birthmarking algorithms
- Using suggestions to guard software program and media opposed to piracy and tampering
- Detecting software program tampering in disbursed system
- Understanding the theoretical limits of code obfuscation
Read Online or Download Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection PDF
Best information theory books
Krippendorff introduces social scientists to info conception and explains its program for structural modeling. He discusses key subject matters resembling: find out how to ensure a data idea version; its use in exploratory learn; and the way it compares with different ways corresponding to community research, direction research, chi sq. and research of variance.
The on-demand financial system is reversing the rights and protections staff fought for hundreds of years to win. traditional web clients, in the meantime, maintain little keep an eye on over their own info. whereas promising to be the good equalizers, on-line structures have usually exacerbated social inequalities. Can the web be owned and ruled otherwise?
- Information Measures: Information and Its Description in Science and Engineering
- Solution of Equations in Euclidean and Banach Spaces
- Maximum Principles and Their Applications
- Topics in Geometry, Coding Theory and Cryptography (Algebra and Applications)
- Mobile Authentication: Problems and Solutions
- Data and Information Quality: Dimensions, Principles and Techniques
Additional info for Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection
We will talk more about this in Chapter 3. Now that you have the Java bytecode in an assembly code format, your next step is to perform control flow analysis, which will recover the order in which the code can be executed. The result of this analysis is a control flow graph (CFG). A node of this graph consists of straight-line code, except that the last statement can be a jump. There is an edge from one node to another if it is possible for us take this path through the code during execution: The nodes in the CFG are called basic blocks.
Or if the new version of your program contains a novel algorithm that you don’t want your competitors to get their hands on and incorporate into their competing product, you can obfuscate your program and make it as convoluted and hard to understand as possible in order to slow down your competitors’ reverse engineering efforts. If you do suspect someone has stolen your code, we’ll show you how to use software birthmarking techniques to identify the offending sections. Or, say that you have included a secret in your program and you want to make sure that without this secret remaining intact, no one can execute the program.
In the real world, adversaries will then immediately try to find scenarios you didn’t think about in order to get past the defenses you’ve put up! The cheapest way to break a cryptosystem isn’t to spend $100,000 on specialized hardware to factor a key—it’s to spend $50,000 to bribe someone to give you the key. The easiest way to get secrets out of a smartcard isn’t to pry the card open (having to bypass the security features that the designers put in place to defend against exactly this attack), but to induce faults in the card by subjecting it to radiation, modifying its power supply voltage, and so on, attacks the designers didn’t have in mind.