使用ClassEditor我可以更改常量的值,但是可以改变设置值的代码吗?
以下是文件中显示的示例代码:
this.varr[this.sval] = 11;
如何编辑文件,以便不设置11作为值,我可以设置33?
答案 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值...