java – 将JVM字节代码往返文本表示和返回的故障安全方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 将JVM字节代码往返文本表示和返回的故障安全方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1191字,纯文字阅读大概需要2分钟。
内容图文
我正在寻找一种在JVM类文件和文本表示之间往返的故障安全方法,然后再返回.
一个严格的要求是,只要文本表示保持不变,生成的往返JVM类文件在功能上与原始JVM类文件完全等效.
此外,文本表示必须是人类可读和可编辑的.应该可以对文本表示进行小的更改(例如更改文本字符串或类名等),这些更改会反映在生成的类文件表示中.
最简单的解决方案是使用Java反编译器(如JAD)生成文本表示,在这种情况下,它只是重新创建的Java源代码.然后使用javac生成字节码.但是,鉴于免费Java反编译器的状态,这种方法在所有情况下都不起作用.创建混淆的字节代码相当容易,这些字节代码不能在完整的往返类文件/ java-source / class-file中存活(部分原因是因为JVM字节代码之间没有1:1的映射) Java源代码).
根据上述要求,是否存在实现JVM类文件/文本表示/类文件往返的故障安全方法?
更新:在回答之前 – 通过阅读上述所有要求节省时间和精力,并特别注意:
>“JVM字节码的文本表示”并不一定意味着“Java源代码”.
解决方法:
BCEL project提供了一个JasminVisitor,它将类文件转换为jasmin程序集.
这可以修改,然后重新组装成类文件.如果没有进行编辑并且版本保持兼容,则往返应该导致相同的类文件,除了行号映射可能丢失.如果您需要为往返案例提供一点点相同的副本,您可能需要更改工具以获取纯元数据的代码方面.
jasmin相当陈旧,并不是很容易在汇编中实际编写完整的程序,但是为了修改字符串常量表和常量,它应该是足够的.
内容总结
以上是互联网集市为您收集整理的java – 将JVM字节代码往返文本表示和返回的故障安全方法全部内容,希望文章能够帮你解决java – 将JVM字节代码往返文本表示和返回的故障安全方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。