相关疑难解决方法(0)

java反汇编重新组装

假设我想获取一个java类文件,反汇编它,调整java字节码输出,然后再重新组装它.

我需要重命名常量池表中的符号.我也无法访问源代码,使用反编译器似乎有点过分.我不是想优化任何东西 - java在那方面做得很好.

有......一个简单的方法吗?我找到了几种用于拆卸或重新组装的工具,但两者都没有; 或者没有一对工具似乎使用相同的格式来表示文本中的字节码.

java bytecode-manipulation

4
推荐指数
3
解决办法
3345
查看次数

将JVM字节码往返的文本表示和返回的故障安全方法

我正在寻找一种在JVM类文件和文本表示之间往返的故障安全方法,然后再返回.

一个严格的要求是,只要文本表示保持不变,生成的往返JVM类文件在功能上与原始JVM类文件完全等效.

此外,文本表示必须是人类可读和可编辑的.应该可以对文本表示进行小的更改(例如更改文本字符串或类名等),这些更改会反映在生成的类文件表示中.

最简单的解决方案是使用Java反编译器(如JAD)生成文本表示,在这种情况下,它只是重新创建的Java源代码.然后使用javac生成字节码.但是,鉴于免费Java反编译器的状态,这种方法在所有情况下都不起作用.创建混淆的字节代码相当容易,这些字节代码不能在完整的往返类文件/ java-source/class-file中存活(部分原因是因为JVM字节代码之间没有1:1的映射) Java源代码).

根据上述要求,是否存在实现JVM类文件/文本表示/类文件往返的故障安全方法?

更新:在回答之前 - 通过阅读上述所有要求节省时间和精力,并特别注意:

  • "JVM字节码的文本表示"并不一定意味着"Java源代码".

java obfuscation jvm decompiling bytecode

3
推荐指数
1
解决办法
921
查看次数