首页
社区
课程
招聘
[求助][求助]关于逆向apk过程中出现的问题:Error occurred while disassembling class s
发表于: 2014-4-23 15:21 11681

[求助][求助]关于逆向apk过程中出现的问题:Error occurred while disassembling class s

2014-4-23 15:21
11681
rt:
  过程如下,我通过apktool(2.0.XX beta版本)进行反编译该游戏,然后报错如下:
Error occurred while disassembling class Lcom.amazon.android.framework.task.pipe
line.j; - skipping class
org.jf.util.ExceptionWithContext: Encountered small uint that is out of range at
 offset 0x1b06e
        at org.jf.dexlib2.dexbacked.BaseDexBuffer.readSmallUint(BaseDexBuffer.ja
va:52)
        at org.jf.dexlib2.dexbacked.instruction.DexBackedInstruction31c.getRefer
ence(DexBackedInstruction31c.java:54)
        at org.jf.baksmali.Adaptors.Format.InstructionMethodItem.writeTo(Instruc
tionMethodItem.java:104)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:200)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDef
inition.java:322)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:113)
        at org.jf.baksmali.baksmali.disassembleClass(baksmali.java:220)
        at org.jf.baksmali.baksmali.access$000(baksmali.java:55)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:144)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)

Error occurred while disassembling class Lcom.amazon.android.k.e; - skipping cla
ss
org.jf.util.ExceptionWithContext: Encountered small uint that is out of range at
 offset 0x1d2cc
        at org.jf.dexlib2.dexbacked.BaseDexBuffer.readSmallUint(BaseDexBuffer.ja
va:52)
        at org.jf.dexlib2.dexbacked.instruction.DexBackedInstruction31c.getRefer
ence(DexBackedInstruction31c.java:54)
        at org.jf.baksmali.Adaptors.Format.InstructionMethodItem.writeTo(Instruc
tionMethodItem.java:104)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:200)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDef
inition.java:322)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:113)
        at org.jf.baksmali.baksmali.disassembleClass(baksmali.java:220)
        at org.jf.baksmali.baksmali.access$000(baksmali.java:55)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:144)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)

Error occurred while disassembling class Lcom.amazon.mas.kiwi.util.a; - skipping
 class
org.jf.util.ExceptionWithContext: Encountered small uint that is out of range at
 offset 0x22bd2
        at org.jf.dexlib2.dexbacked.BaseDexBuffer.readSmallUint(BaseDexBuffer.ja
va:52)
        at org.jf.dexlib2.dexbacked.instruction.DexBackedInstruction31c.getRefer
ence(DexBackedInstruction31c.java:54)
        at org.jf.baksmali.Adaptors.Format.InstructionMethodItem.writeTo(Instruc
tionMethodItem.java:104)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:200)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefi
nition.java:277)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:112)
        at org.jf.baksmali.baksmali.disassembleClass(baksmali.java:220)
        at org.jf.baksmali.baksmali.access$000(baksmali.java:55)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:144)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)

Error occurred while disassembling class Lcom.amazon.mas.kiwi.util.e; - skipping
 class

Error occurred while disassembling class Lcom.amazon.venezia.command.ag; - skipp
ing class
org.jf.util.ExceptionWithContext: Encountered small uint that is out of range at
 offset 0x28de2
        at org.jf.dexlib2.dexbacked.BaseDexBuffer.readSmallUint(BaseDexBuffer.ja
va:52)
        at org.jf.dexlib2.dexbacked.instruction.DexBackedInstruction31c.getRefer
ence(DexBackedInstruction31c.java:54)
        at org.jf.baksmali.Adaptors.Format.InstructionMethodItem.writeTo(Instruc
tionMethodItem.java:104)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:200)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDef
inition.java:322)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:113)
        at org.jf.baksmali.baksmali.disassembleClass(baksmali.java:220)
        at org.jf.baksmali.baksmali.access$000(baksmali.java:55)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:144)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)

org.jf.util.ExceptionWithContext: Encountered small uint that is out of range at
 offset 0x264de
        at org.jf.dexlib2.dexbacked.BaseDexBuffer.readSmallUint(BaseDexBuffer.ja
va:52)
        at org.jf.dexlib2.dexbacked.instruction.DexBackedInstruction31c.getRefer
ence(DexBackedInstruction31c.java:54)
        at org.jf.baksmali.Adaptors.Format.InstructionMethodItem.writeTo(Instruc
tionMethodItem.java:104)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:200)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeDirectMethods(ClassDefi
nition.java:277)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:112)
        at org.jf.baksmali.baksmali.disassembleClass(baksmali.java:220)
        at org.jf.baksmali.baksmali.access$000(baksmali.java:55)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:144)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)

Error occurred while disassembling class Lcom.amazon.venezia.command.ad; - skipp
ing class
org.jf.util.ExceptionWithContext: Encountered small uint that is out of range at
 offset 0x2839e
        at org.jf.dexlib2.dexbacked.BaseDexBuffer.readSmallUint(BaseDexBuffer.ja
va:52)
        at org.jf.dexlib2.dexbacked.instruction.DexBackedInstruction31c.getRefer
ence(DexBackedInstruction31c.java:54)
        at org.jf.baksmali.Adaptors.Format.InstructionMethodItem.writeTo(Instruc
tionMethodItem.java:104)
        at org.jf.baksmali.Adaptors.MethodDefinition.writeTo(MethodDefinition.ja
va:200)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeVirtualMethods(ClassDef
inition.java:322)
        at org.jf.baksmali.Adaptors.ClassDefinition.writeTo(ClassDefinition.java
:113)
        at org.jf.baksmali.baksmali.disassembleClass(baksmali.java:220)
        at org.jf.baksmali.baksmali.access$000(baksmali.java:55)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:144)
        at org.jf.baksmali.baksmali$1.call(baksmali.java:142)
        at java.util.concurrent.FutureTask.run(FutureTask.java:262)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:615)
        at java.lang.Thread.run(Thread.java:744)
等等,我只是截取了一部分,都是这种错误,然后基于这个错误进行了查找,得到两个看似靠谱的解决方案;

https://code.google.com/p/smali/issues/detail?id=202
http://blog.csdn.net/zangcf/article/details/8930758
但是经过实验发现都不能解决我目前的问题,第一个办法,我下载了smali的源码重新编译,得到baksmali-2.0.3-2d8cbfe6.jar,通过这个jar来反编译目标dex还是那个错,而第二个说apktool版本低,我这个apktool是最新版本,我感觉这个dex好像走的不是一般的加密方式,一般的是加入的一些无用的数据,而这个是改变本身一些不会被调用的数据,不知道这个想法对不对,希望各位大神一起帮忙看看,感觉这个挺新鲜的
附:由于apk文件过大,所以只上传classes.dex的压缩包,需要整个apk包的可以通过其他渠道发给各位

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
别沉,求顶
2014-4-24 10:46
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
兄弟这个问题解决了吗?
2019-12-31 22:01
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
同样的问题,顶起来
2020-2-1 11:54
0
游客
登录 | 注册 方可回帖
返回
//