Abstract
In 2005, Ginger Myles and Hongxia Jin proposed a software watermarking scheme based on converting jump instructions or unconditional branch statements (UBSs) by calls to a fingerprint branch function (FBF) that computes the correct target address of the UBS as a function of the generated fingerprint and integrity check. If the program is tampered with, the fingerprint and integrity checks change and the target address will not be computed correctly. In this paper, we present an attack based on tracking stack pointer modifications to break the scheme and provide implementation details. The key element of the attack is to remove the fingerprint and integrity check generating code from the program after disassociating the target address from the fingerprint and integrity value. Using the debugging tools that give vast control to the attacker to track stack pointer operations, we perform both subtractive and watermark replacement attacks. The major steps in the attack are automated resulting in a fast and low-cost attack.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Collberg, C., Carter, E., Debray, S., Huntwork, A., Linn, C., Stepp, M.: Dynamic path-based software watermarking. In: Proceedings of Conference on Programming Language Design and Implementation, vol. 39, pp. 107–118 (June 2004)
Collberg, C.S., Huntwork, A., Carter, E., Townsend, G.: Graph Theoretic Software Watermarks: Implementation, Analysis, and Attacks. In: Fridrich, J. (ed.) IH 2004. LNCS, vol. 3200, pp. 192–207. Springer, Heidelberg (2004)
Collberg, C., Kobourov, S., Carter, E., Thomborson, C.: Error-correcting graphs for software watermarking. In: Proceedings of 29th Workshop on Graph Theoretic Concepts in Computer Science, pp. 156–167 (2003)
Collberg, C., Thomborson, C.: Software watermarking: Models and dynamic embeddings. In: Proceedings of Principles of Programming Languages 1999, POPL 1999, pp. 311–324 (1999)
Collberg, C.S., Thomborson, C.: Watermarking, tamper-proofing, and obfuscation - tools for software protection. IEEE Transactions on Software Engineering 28, 735–746 (2002)
Fukushima, K., Sakurai, K.: A Software Fingerprinting Scheme for Java Using Classfiles Obfuscation. In: Chae, K.-J., Yung, M. (eds.) WISA 2003. LNCS, vol. 2908, pp. 303–316. Springer, Heidelberg (2004)
Myles, G., Collberg, C.: Software watermarking through register allocation: Implementation, analysis, and attacks. In: Lim, J.-I., Lee, D.-H. (eds.) ICISC 2003. LNCS, vol. 2971, pp. 274–293. Springer, Heidelberg (2004)
Myles, G., Jin, H.: Self-validating Branch-Based Software Watermarking. In: Barni, M., Herrera-Joancomartí, J., Katzenbeisser, S., Pérez-González, F. (eds.) IH 2005. LNCS, vol. 3727, pp. 342–356. Springer, Heidelberg (2005)
Nagra, J., Thomborson, C.: Threading Software Watermarks. In: Fridrich, J. (ed.) IH 2004. LNCS, vol. 3200, pp. 208–223. Springer, Heidelberg (2004)
Qu, G., Potkonjak, M.: Analysis of watermarking techniques for graph coloring problem. In: Proceedings of International Conference on Computer Aided Design, pp. 190–193 (1998)
Qu, G., Potkonjak, M.: Hiding signatures in graph coloring solutions. In: Pfitzmann, A. (ed.) IH 1999. LNCS, vol. 1768, pp. 348–367. Springer, Heidelberg (2000)
Sosonkin, M., Naumovich, G., Memon, N.: Obfuscation of design intent in object-oriented applications. In: Proceedings of 3rd ACM workshop on Digital Rights Management, pp. 142–153 (2003)
Thomborson, C., Nagra, J., Somaraju, R., He, C.: Tamper-proofing software watermarks. In: Proceedings of Australasian Information Security Workshop, vol. 32, pp. 27–36 (2004)
Venkatesan, R., Vazirani, V.V., Sinha, S.: A Graph Theoretic Approach to Software Watermarking. In: Moskowitz, I.S. (ed.) IH 2001. LNCS, vol. 2137, pp. 157–168. Springer, Heidelberg (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gupta, G., Pieprzyk, J. (2006). A Low-Cost Attack on Branch-Based Software Watermarking Schemes. In: Shi, Y.Q., Jeon, B. (eds) Digital Watermarking. IWDW 2006. Lecture Notes in Computer Science, vol 4283. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11922841_23
Download citation
DOI: https://doi.org/10.1007/11922841_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48825-5
Online ISBN: 978-3-540-48827-9
eBook Packages: Computer ScienceComputer Science (R0)