使用jad反编译jar包的有关问题

使用jad反编译jar包的问题

 

 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能通过编译器,不会出错,特别是反编译的类很多的时候,更加容易忽略。