改变类文件中的值

时间:2015-10-27 14:15:52

标签: java

使用ClassEditor我可以更改常量的值,但是可以改变设置值的代码吗?

以下是文件中显示的示例代码:

this.varr[this.sval] = 11;

如何编辑文件,以便不设置11作为值,我可以设置33?

1 个答案:

答案 0 :(得分:1)

如果您想进入逆向工程,您可能需要查看BCEL(https://commons.apache.org/proper/commons-bcel/)或ASM(http://asm.ow2.org/

这里有很多关于字节码的小东西,http://www.javaworld.com/article/2077233/core-java/bytecode-basics.html

基本上java会在内存中存储一​​个值,你需要获取字节码并找出内存的位置并存储不同的值。

这里的JBE可用于简单的字节码编辑,http://set.ee/jbe/

有时代码可以受到保护,例如android java代码受proguard保护......有时人们使用ZKM http://www.zelix.com/klassmaster/features.html

有一些称为反混淆器的工具试图扭转这些类型的保护。它们通常非常好,但通常会失败,而循环你应该自己找到它们,如果你需要它们。 基本上混淆器的作用是将字符串中的正常位置从字节码中的goto函数推送到堆栈的正常位置多次......并且它们几乎总是通过使用字节移位来混淆常量int值...