本帖最后由 cai123321cai 于 2011-01-15 00:59:58 编辑

解决方案 »

  1.   

    没明白楼主在说什么….java代码编译后的是.class文件,反编译.class没那么麻烦吧。不知楼主反编译的是什么东西,用什么反编译的…
      

  2.   

    反编译的是class文件啊,上面就是class反编译后的java代码补充一点,这个是apk文件弄出来的apk文件反编译可以拆开成smali文件,修改后还可以合并成apk,签名以后可用但是smali文件可读性太差希望有了解反编译的朋友帮忙回答下
      

  3.   

    byte在运算的时候自动转换为int,可能和这有关!
      

  4.   

    很奇怪,不管我怎么编译,然后反编译这个class文件,都不可能得到大于128的数为啥我反编译目标class文件会得到那么多大数?
      

  5.   

    弄了好久还是不行,我就去分析class文件了左边是反编译后的java代码,右边对应class文件右边的class代码是连续存放的,对应java代码abyte2[0] = 65451;      2C 03 12 2B
    abyte2[1] = 36;      54 2C 04 10 24 //最后一位对应数值0x24 = 36
    abyte2[2] = 67;      54 2C 05 10 43
    abyte2[3] = 99;      54 2C 06 10 63
    abyte2[4] = 65449;   54 2C 07 12 2C
    abyte2[5] = 65474;   54 2C 08 12 2D
    abyte2[6] = 65446;   54 2C 10 06 12 2E
    abyte2[7] = 65475;   54 2C 10 07 12 2F
    abyte2[8] = 59;      54 2C 10 08 10 3B
    abyte2[9] = 55;      54 2C 10 09 10 37
    abyte2[10] = 65508;  54 2C 10 0A 12 30
    abyte2[11] = 97;     54 2C 10 0B 10 61
    abyte2[12] = 65412;  54 2C 10 0C 12 31
    abyte2[13] = 37;     54 2C 10 0D 10 25
    abyte2[14] = 65439;  54 2C 10 0E 12 32
    abyte2[15] = 65419;  54 2C 10 0F 12 33
    abyte2[16] = 63;     54 2C 10 10 10 3F右边倒数第二位是0x10的话,就正常,0x12就变大数了倒数第三位是数组下标开头0x54是分隔符很郁闷这个0x12是咋来的我手动将0x10改成0x12,java执行class就报错Exception in thread "main" java.lang.VerifyError: (class: test, method: <clinit>
    signature: ()V) Expecting to find integer on stack坐等大牛解答