Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

CHAPTER 13 default language tools and environment. Even with the security gains we have discussed, there are still many issues that need to be solved. Protecting software from piracy can be accom- plished using watermarking or obfuscation. However, current techniques use cryptographic or run-time protection mechanisms. Some forms of piracy protection have been met with large amounts of opposition from the end users, mainly due to the restrictions placed on the usage of the software. Future work will look at how the mechanisms discussed here can be used to protect software from piracy without harming the expe- rience of the end user. Another trend in the current technological environment is the move toward mobile comput- ing devices. Most mobile phone environments, such as the Android OS, have their own pro- tection mechanisms in place in order to miti- gate the amount of damage to the system in the Languages and Security 353 EXERCISES 1. Discuss the similarities and differences between watermarking protocols discussed in Section 13.2 and a cryptographic protocol. Is watermarking a form of steganography? 2. In Section 13.3, we discussed several uses of code obfuscators. A common technique when writing code in J2ME (Java 2 Micro Edi- tion, commonly used in mobile phone devel- opment) is to perform an obfuscation as the last step. Other than an increase in security, what other benefit can be pulled from per- forming such obfuscations. Hint: You might want to compile a sample program before and after a simple abstraction transform to compare class files. 3. Consider dynamically typed languages such as Python . Are these languages easier to obfus-