Methodology for Embedding a Digital Watermark in Java Application Class Files Resistant to Decompilation Attacks Aimed at Its Destruction
This paper examines the development of a methodology for embedding a digital watermark in class files by replacing bytecode opcodes and adding certain Java programming language constructs that hinder decompilation. The possible actions of an intruder are considered, along with the methods by which an attacker might obtain a class file or a Java application. An analysis of existing decompilers is conducted, with examples of programming language constructs that lead to decompilation errors or incorrect decompilation results. The principle of the methodology is demonstrated, and experiments are conducted to confirm that after embedding the digital watermark using the developed approach, it remains resilient to decompilation attacks aimed at its removal. The compiled class file containing the modified bytecode is analyzed. It is proven that the logic of the Java application remains unchanged after editing the bytecode of the class file and recompiling it. Certain constructs and code design patterns are examined, demonstrating that specific constructs in the source code increases the likelihood of incorrect decompilation of Java application class files, the inability to recompile the decompiled code.
Authors
- Andrey Chechulin (ORCID: https://orcid.org/0000-0001-7056-6972)
- Andrey Krasov (ORCID: https://orcid.org/0000-0002-9076-6055)
- Pavel Sharikov (ORCID: https://orcid.org/0000-0003-3996-9217)
Institutions
- Russian Academy of Sciences (RU)
- Saint-Petersburg State University of Telecommunications (RU)
- State Research Center of the Russian Federation (RU)
Publication Details
- Published
- 2025-03-24
- DOI
- https://doi.org/10.1109/smartindustrycon65166.2025.10986108
- Primary Topic
- Advanced Malware Detection Techniques
- Type
- article
- Field-Weighted Citation Impact
- 0.00