在次求助:被joc.jar混淆过的文件如何反编译为JAVA文件.有什么好的软件和方法吗?  可以加我QQ:16368728 ,分数多多送。

解决方案 »

  1.   

    JAD反编译后,相关代码:import java.sql.*;
    import java.util.Vector;public class CachedRowSet
    {    public CachedRowSet()
        {
            0;
            this;
            JVM INSTR swap ;
            _$2;
            0;
            this;
            JVM INSTR swap ;
            _$3;
            _$1 = new Vector();
            -1;
            this;
            JVM INSTR swap ;
            _$4;
            0;
            this;
            JVM INSTR swap ;
            _$5;
        }    public boolean absolute(int i)
            throws SQLException
        {
            return false;
        }    public void addRow(Vector vector)
        {
            _$1.add(vector);
            _$3++;
        }    public void afterLast()
            throws SQLException
        {
        }    public void beforeFirst()
            throws SQLException
        {
        }    public boolean first()
            throws SQLException
        {
            return false;
        }    public int getCachedCount()
        {
            return _$3;
        }    public String getColumn(int i)
        {
            String s = "";
            if(_$4 < 0 || _$4 >= _$1.size()) goto _L2; else goto _L1
    _L1:
            Vector vector = (Vector)_$1.elementAt(_$4);
            if(vector == null || i < 0) goto _L2; else goto _L3
    _L3:
            vector;
            i;
            JVM INSTR swap ;
            size();
            JVM INSTR icmpge 66;
               goto _L4 _L2
    _L4:
            i;
            vector;
            JVM INSTR swap ;
            elementAt();
            (String);
            s;
    _L2:
            return s;
        }    public int getColumnAsInt(int i)
        {
            String s = "";
            if(_$4 < 0 || _$4 >= _$1.size()) goto _L2; else goto _L1
    _L1:
            Vector vector = (Vector)_$1.elementAt(_$4);
            if(vector == null || i < 0) goto _L2; else goto _L3
    _L3:
            vector;
            i;
            JVM INSTR swap ;
            size();
            JVM INSTR icmpge 66;
               goto _L4 _L2
    _L4:
            i;
            vector;
            JVM INSTR swap ;
            elementAt();
            (String);
            s;
    _L2:
            int j = 0;
            try
            {
                j = Integer.parseInt(s);
            }
            catch(Exception _ex) { }
            return j;
        }    public int getCurrentRow()
        {
            return _$4;
        }    public int getStartRow()
        {
            return _$2;
        }    public int getTotalRow()
        {
            return _$5;
        }    public boolean isAfterLast()
            throws SQLException
        {
            return false;
        }    public boolean isBeforeFirst()
            throws SQLException
        {
            return false;
        }    public boolean isFirst()
            throws SQLException
        {
            return false;
        }    public boolean isLast()
            throws SQLException
        {
            return false;
        }    public boolean last()
            throws SQLException
        {
            return false;
        }    public boolean next()
            throws SQLException
        {
            if(_$4 < _$5 - 1)
            {
                _$4++;
                return true;
            } else
            {
                return false;
            }
        }    public void populate(ResultSet resultset, int i, int j)
            throws SQLException
        {
            i;
            this;
            JVM INSTR swap ;
            1;
            JVM INSTR isub ;
            _$5;
            int k;
            ResultSetMetaData resultsetmetadata = resultset.getMetaData();
            k = resultsetmetadata.getColumnCount();
              goto _L1
    _L6:
            Vector vector;
            int l;
            if(j != 0 && _$5 >= j)
                continue; /* Loop/switch isn't completed */
            vector = new Vector(k);
            l = 1;
              goto _L2
    _L4:
            resultset;
            vector;
            JVM INSTR swap ;
            l;
            getString();
            add();
            JVM INSTR pop ;
            l++;
    _L2:
            k;
            l;
            JVM INSTR swap ;
            JVM INSTR icmple 57;
               goto _L3 _L4
    _L3:
            _$1.add(vector);
            _$5++;
    _L1:
            if(resultset.next()) goto _L6; else goto _L5
    _L5:
        }    public boolean previous()
            throws SQLException
        {
            return false;
        }    public boolean relative(int i)
            throws SQLException
        {
            return false;
        }    public void release()
        {
            int i = 0;
              goto _L1
    _L3:
            Vector vector = (Vector)_$1.elementAt(_$4);
            vector = null;
            i++;
    _L1:
            this;
            i;
            JVM INSTR swap ;
            _$1;
            size();
            JVM INSTR icmplt 5;
               goto _L2 _L3
    _L2:
        }    public void setStartRow(int i)
        {
            i;
            this;
            JVM INSTR swap ;
            _$2;
        }    public void setTotalRow(int i)
        {
            i;
            this;
            JVM INSTR swap ;
            _$5;
        }    private Vector _$1;
        private int _$2;
        private int _$3;
        private int _$4;
        private int _$5;
    }
      

  2.   

    上次下载过一个软件,不过需要注册就没用了。 
    建议你去google一下.