在最终编译之前如何使用java注释来修改源代码?
发布时间:2020-12-14 17:42:37 所属栏目:Java 来源:网络整理
导读:我从apt工具页面读取可以创建AnnotationProcessors到 generate new derived files (source files,class files,deployment descriptors,etc.).我正在寻找例子来做到这一点. 我的需要是在编译时对所有注释字符串进行编码,以便读取类文件不允许读取静态字符串:
我从apt工具页面读取可以创建AnnotationProcessors到
generate new derived files (source files,class files,deployment descriptors,etc.).我正在寻找例子来做到这一点.
我的需要是在编译时对所有注释字符串进行编码,以便读取类文件不允许读取静态字符串: 基本代码: String message = (@Obfuscated "a string that should not be readable in class file"); 应该重做: String message = new ObfuscatedString(new long[] {0x86DD4DBB5166C13DL,0x4C79B1CDC313AE09L,0x1A353051DAF6463BL}).toString(); 基于静态 任何关于如何编写AnnotationProcessor的process()方法来编辑注释代码的想法? 提前致谢, 解决方法
你可以有
String message = Obfuscated.decode("a string that should not be readable in class file"); 然而在编译之后,您有一个工具来检查字节码例如使用ObjectWeb的ASM,更改字符串文字,因此它看起来像 String message = Obfuscated.decode("u86DDu4DBBu5166uC13Du4C79uB1CDuC313uAE09u1A35u3051uDAF6u463B"); 为了更容易地识别需要更改的字符串,您可以为它们添加前缀,并且可以确保在前缀已经被模糊化之后出现. String s = "Obfuscate: a string that should not be readable in class file"; // later String message = Obfuscated.decode(s); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |