我使用反编译器在编译代码中找到以下函数:
public static void sub_e5b()
{
var_972 = null;
System.gc();
vservConfigHashTable = new Hashtable();
vservConfigHashTable.put("appId_end", "498");
vservConfigHashTable.put("showAt", "both");
vservConfigHashTable.put("categoryId", "22");
vservConfigHashTable.put("viewMandatory_end", "true");
(new VSERV_BCI_CLASS_000(var_93a, vservConfigHashTable)).showAtEnd();
}
现在我想将"true"
值更改为"false"
。
可以使用哪些工具和/或技术进行此更改?
答案 0 :(得分:1)
这可以使用像Krakatau这样的反汇编程序轻松完成(披露,我写了)。
在反编译器上使用反汇编程序的优点是它可以保证工作。并非所有代码都可以反编译,但它总是可以反汇编。
例如,参加这样的课程。
public class A{
public static void main(String[] args)
{
System.out.println("true");
}
}
与Krakatau拆解后,你会得到类似的东西。
.version 51 0
.class super public A
.super java/lang/Object
.method public <init> : ()V
.limit stack 1
.limit locals 1
aload_0
invokespecial java/lang/Object <init> ()V
return
.end method
.method static public main : ([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
getstatic java/lang/System out Ljava/io/PrintStream;
ldc 'true'
invokevirtual java/io/PrintStream println (Ljava/lang/String;)V
return
.end method
将行ldc 'true'
更改为ldc 'false'
,重新组合,现在将打印为false而不是true。
答案 1 :(得分:-1)
获取反编译代码,编辑代码,编译代码并使用它。
我会认真考虑删除System.gc();