jad 反编译class文件,对于静态的方法会出现反编译逻辑错误,而这种错误不容易被发现, 比如:
如果一个类中有方法
public class TestClass
{
static Object obj1;
public static void setValue1(Object obj1)
{
TestClass.obj1 = obj1;
}
}
但是通过jad反编译后的结果为:
public class TestClass
{
static Object obj1;
public static void setValue1(Object obj1)
{
obj1 = obj1;
}
}
这样,静态变量obj1永远不会通过setValue1被赋值,这种很隐蔽的逻辑错误不容易被发现,因为反编译出来的class能通过编译器,不会出错,特别是反编译的类很多的时候,更加容易忽略。