修改Java字节码(jar)中的字符串

puf*_*ish 3 java decompiling jar reverse-engineering

我想修改一个在Java应用程序(没有源代码的jar)中硬编码的连接字符串.

我认为可以反编译jar,然后更改源代码并重新编译到一个新的jar,但是有更快的方法吗?

编辑:

  • 它是一个独立的应用程序,而不是我从我自己的代码加载的jar
  • 我怀疑它会被混淆:利基科学应用,作者AWOL.
  • 在app运行时需要修改字符串"in memory"的解决方案也足够了,但并不理想

b.r*_*oth 10

在使用该jar的应用程序中,您可以使用反射来设置连接String.(即使私人制定者也可以使用反思).

显然,如果setter是公共的,你可以在没有反射的情况下调用它.

  • JavaS专家对此有一个兴趣帖子('Insane Strings'):http://www.javaspecialists.eu/archive/Issue014.html; 另见http://www.javaspecialists.eu/archive/Issue096.html(''final'不再是最终'). (2认同)