首页
社区
课程
招聘
[求助]java字节码的翻译~
发表于: 2012-8-24 13:10 8401

[求助]java字节码的翻译~

2012-8-24 13:10
8401
我在学习一个android版软件的时候,反编译后,有几个函数是字节码,看不懂,拜托大牛们,给解释解释,谢谢~
public SecretKey readKey(java.io.InputStream paramInputStream)
  {
    // Byte code:
    //   0: aconst_null
    //   1: astore_2
    //   2: aload_1
    //   3: ifnonnull +9 -> 12
    //   6: aconst_null
    //   7: astore 9
    //   9: aload 9
    //   11: areturn
    //   12: new 145        java/io/ObjectInputStream
    //   15: dup
    //   16: aload_1
    //   17: invokespecial 148        java/io/ObjectInputStream:<init>        (Ljava/io/InputStream;)V
    //   20: astore_3
    //   21: aload_3
    //   22: invokevirtual 152        java/io/ObjectInputStream:readObject        ()Ljava/lang/Object;
    //   25: checkcast 154        javax/crypto/SecretKey
    //   28: astore 8
    //   30: aload_3
    //   31: invokevirtual 157        java/io/ObjectInputStream:close        ()V
    //   34: aload_1
    //   35: invokevirtual 160        java/io/InputStream:close        ()V
    //   38: aload 8
    //   40: astore 9
    //   42: goto -33 -> 9
    //   45: astore 5
    //   47: new 33        java/lang/Exception
    //   50: dup
    //   51: ldc 162
    //   53: aload 5
    //   55: invokespecial 165        java/lang/Exception:<init>        (Ljava/lang/String;Ljava/lang/Throwable;)V
    //   58: athrow
    //   59: astore 6
    //   61: aload_2
    //   62: ifnull +7 -> 69
    //   65: aload_2
    //   66: invokevirtual 157        java/io/ObjectInputStream:close        ()V
    //   69: aload_1
    //   70: invokevirtual 160        java/io/InputStream:close        ()V
    //   73: aload 6
    //   75: athrow
    //   76: astore 7
    //   78: aload_3
    //   79: astore_2
    //   80: aload 7
    //   82: astore 6
    //   84: goto -23 -> 61
    //   87: astore 4
    //   89: aload_3
    //   90: astore_2
    //   91: aload 4
    //   93: astore 5
    //   95: goto -48 -> 47
    //
    // Exception table:
    //   from        to        target        type
    //   12        21        45        java/lang/Exception
    //   12        21        59        finally
    //   47        59        59        finally
    //   21        30        76        finally
    //   21        30        87        java/lang/Exception
  }

  // ERROR //
  public SecretKey readKey(String paramString)
  {
    // Byte code:
    //   0: aconst_null
    //   1: astore_2
    //   2: aload_1
    //   3: ifnull +10 -> 13
    //   6: aload_1
    //   7: invokevirtual 169        java/lang/String:length        ()I
    //   10: ifgt +7 -> 17
    //   13: aconst_null
    //   14: astore_3
    //   15: aload_3
    //   16: areturn
    //   17: new 171        java/io/FileInputStream
    //   20: dup
    //   21: aload_1
    //   22: invokespecial 172        java/io/FileInputStream:<init>        (Ljava/lang/String;)V
    //   25: astore 4
    //   27: new 145        java/io/ObjectInputStream
    //   30: dup
    //   31: aload 4
    //   33: invokespecial 148        java/io/ObjectInputStream:<init>        (Ljava/io/InputStream;)V
    //   36: astore 5
    //   38: aload 5
    //   40: invokevirtual 152        java/io/ObjectInputStream:readObject        ()Ljava/lang/Object;
    //   43: checkcast 154        javax/crypto/SecretKey
    //   46: astore 10
    //   48: aload 5
    //   50: invokevirtual 157        java/io/ObjectInputStream:close        ()V
    //   53: aload 4
    //   55: invokevirtual 173        java/io/FileInputStream:close        ()V
    //   58: aload 10
    //   60: astore_3
    //   61: goto -46 -> 15
    //   64: astore 7
    //   66: aconst_null
    //   67: astore 5
    //   69: new 33        java/lang/Exception
    //   72: dup
    //   73: ldc 162
    //   75: aload 7
    //   77: invokespecial 165        java/lang/Exception:<init>        (Ljava/lang/String;Ljava/lang/Throwable;)V
    //   80: athrow
    //   81: astore 8
    //   83: aload 5
    //   85: ifnull +8 -> 93
    //   88: aload 5
    //   90: invokevirtual 157        java/io/ObjectInputStream:close        ()V
    //   93: aload_2
    //   94: ifnull +7 -> 101
    //   97: aload_2
    //   98: invokevirtual 173        java/io/FileInputStream:close        ()V
    //   101: aload 8
    //   103: athrow
    //   104: astore 8
    //   106: aconst_null
    //   107: astore 5
    //   109: goto -26 -> 83
    //   112: astore 12
    //   114: aconst_null
    //   115: astore 5
    //   117: aload 4
    //   119: astore_2
    //   120: aload 12
    //   122: astore 8
    //   124: goto -41 -> 83
    //   127: astore 9
    //   129: aload 4
    //   131: astore_2
    //   132: aload 9
    //   134: astore 8
    //   136: goto -53 -> 83
    //   139: astore 11
    //   141: aconst_null
    //   142: astore 5
    //   144: aload 4
    //   146: astore_2
    //   147: aload 11
    //   149: astore 7
    //   151: goto -82 -> 69
    //   154: astore 6
    //   156: aload 4
    //   158: astore_2
    //   159: aload 6
    //   161: astore 7
    //   163: goto -94 -> 69
    //
    // Exception table:
    //   from        to        target        type
    //   17        27        64        java/lang/Exception
    //   69        81        81        finally
    //   17        27        104        finally
    //   27        38        112        finally
    //   38        48        127        finally
    //   27        38        139        java/lang/Exception
    //   38        48        154        java/lang/Exception
  }

  // ERROR //
  public void saveDesKey(SecretKey paramSecretKey, String paramString)
  {
    // Byte code:
    //   0: aconst_null
    //   1: astore_3
    //   2: aload_1
    //   3: ifnull +40 -> 43
    //   6: new 177        java/io/FileOutputStream
    //   9: dup
    //   10: aload_2
    //   11: invokespecial 178        java/io/FileOutputStream:<init>        (Ljava/lang/String;)V
    //   14: astore 4
    //   16: new 180        java/io/ObjectOutputStream
    //   19: dup
    //   20: aload 4
    //   22: invokespecial 183        java/io/ObjectOutputStream:<init>        (Ljava/io/OutputStream;)V
    //   25: astore 5
    //   27: aload 5
    //   29: aload_1
    //   30: invokevirtual 187        java/io/ObjectOutputStream:writeObject        (Ljava/lang/Object;)V
    //   33: aload 4
    //   35: invokevirtual 188        java/io/FileOutputStream:close        ()V
    //   38: aload 5
    //   40: invokevirtual 189        java/io/ObjectOutputStream:close        ()V
    //   43: return
    //   44: astore 7
    //   46: aconst_null
    //   47: astore 5
    //   49: new 33        java/lang/Exception
    //   52: dup
    //   53: aload 7
    //   55: invokespecial 192        java/lang/Exception:<init>        (Ljava/lang/Throwable;)V
    //   58: athrow
    //   59: astore 8
    //   61: aload_3
    //   62: ifnull +7 -> 69
    //   65: aload_3
    //   66: invokevirtual 188        java/io/FileOutputStream:close        ()V
    //   69: aload 5
    //   71: ifnull +8 -> 79
    //   74: aload 5
    //   76: invokevirtual 189        java/io/ObjectOutputStream:close        ()V
    //   79: aload 8
    //   81: athrow
    //   82: astore 8
    //   84: aconst_null
    //   85: astore 5
    //   87: goto -26 -> 61
    //   90: astore 11
    //   92: aconst_null
    //   93: astore 5
    //   95: aload 4
    //   97: astore_3
    //   98: aload 11
    //   100: astore 8
    //   102: goto -41 -> 61
    //   105: astore 9
    //   107: aload 4
    //   109: astore_3
    //   110: aload 9
    //   112: astore 8
    //   114: goto -53 -> 61
    //   117: astore 10
    //   119: aconst_null
    //   120: astore 5
    //   122: aload 4
    //   124: astore_3
    //   125: aload 10
    //   127: astore 7
    //   129: goto -80 -> 49
    //   132: astore 6
    //   134: aload 4
    //   136: astore_3
    //   137: aload 6
    //   139: astore 7
    //   141: goto -92 -> 49
    //
    // Exception table:
    //   from        to        target        type
    //   6        16        44        java/io/IOException
    //   49        59        59        finally
    //   6        16        82        finally
    //   16        27        90        finally
    //   27        33        105        finally
    //   16        27        117        java/io/IOException
    //   27        33        132        java/io/IOException
  }

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 317
活跃值: (72)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
估计没人看得懂,不如直接看smali文件。
2012-8-25 21:52
0
游客
登录 | 注册 方可回帖
返回
//