WindySha / Xpatch

This is a tool to repackage apk file, then the apk can load any xposed modules installed in the device. It is another way to hook an app without root device.
Apache License 2.0
2.54k stars 388 forks source link

打包一个没有加固的有特殊字符混淆app,失败了。 #29

Closed lanshifu closed 2 years ago

lanshifu commented 5 years ago

. Error process class: [2394]Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource; .. while accept method:[Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource;.(Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/བཅོམ/ལྡནའ;Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/དས;Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/དས;Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/གིས;I)V] ... while accept parameter annotation in method:Lcom/google/android/exoplayer2/upstream/cache/CacheDataSource;.(Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/བཅོམ/ལྡནའ;Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/དས;Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/དས;Lདསམཤ/སྐདབ/བཅོམ/བཅོམ/ལདག/གིས;I)V. .... while accept parameter annotation in parameter:[5] ..... ROOT cause: java.lang.ArrayIndexOutOfBoundsException: 5 at com.googlecode.d2j.node.DexMethodNode$1.visitAnnotation(DexMethodNode.java:111) at com.googlecode.d2j.node.DexAnnotationNode.accept(DexAnnotationNode.java:124) at com.googlecode.d2j.reader.DexFileReader.read_annotation_item(DexFileReader.java:901) at com.googlecode.d2j.reader.DexFileReader.read_annotation_set_item(DexFileReader.java:891) at com.googlecode.d2j.reader.DexFileReader.read_annotation_set_ref_list(DexFileReader.java:1095) at com.googlecode.d2j.reader.DexFileReader.acceptMethod(DexFileReader.java:1048) at com.googlecode.d2j.reader.DexFileReader.acceptClass(DexFileReader.java:855) at com.googlecode.d2j.reader.DexFileReader.accept(DexFileReader.java:662) at com.googlecode.d2j.reader.DexFileReader.accept(DexFileReader.java:625) at com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:95) at com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:377) at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:118) at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:293) at com.storm.wind.xpatch.task.ApkModifyTask.dex2JarCmd(ApkModifyTask.java:87) at com.storm.wind.xpatch.task.ApkModifyTask.dumpJarFile(ApkModifyTask.java:68) at com.storm.wind.xpatch.task.ApkModifyTask.run(ApkModifyTask.java:40) at com.storm.wind.xpatch.MainCommand.doCommandLine(MainCommand.java:165) at com.storm.wind.xpatch.base.BaseCommand.doMain(BaseCommand.java:123) at com.storm.wind.xpatch.MainCommand.main(MainCommand.java:56) . Error process class: [8779]Lབཅོམ/དག/བཅོམ/དསམཤ; .. while accept method:[Lབཅོམ/དག/བཅོམ/དསམཤ;.གིས(Landroid/app/Activity;)V] ... while accept parameter annotation in method:Lབཅོམ/དག/བཅོམ/དསམཤ;.གིས(Landroid/app/Activity;)V. .... while accept parameter annotation in parameter:[1] ..... ROOT cause: java.lang.ArrayIndexOutOfBoundsException: 1 at com.googlecode.d2j.node.DexMethodNode$1.visitAnnotation(DexMethodNode.java:111) at com.googlecode.d2j.node.DexAnnotationNode.accept(DexAnnotationNode.java:124) at com.googlecode.d2j.reader.DexFileReader.read_annotation_item(DexFileReader.java:901) at com.googlecode.d2j.reader.DexFileReader.read_annotation_set_item(DexFileReader.java:891) at com.googlecode.d2j.reader.DexFileReader.read_annotation_set_ref_list(DexFileReader.java:1095) at com.googlecode.d2j.reader.DexFileReader.acceptMethod(DexFileReader.java:1048) at com.googlecode.d2j.reader.DexFileReader.acceptClass(DexFileReader.java:855) at com.googlecode.d2j.reader.DexFileReader.accept(DexFileReader.java:662) at com.googlecode.d2j.reader.DexFileReader.accept(DexFileReader.java:625) at com.googlecode.d2j.dex.Dex2jar.doTranslate(Dex2jar.java:95) at com.googlecode.d2j.dex.Dex2jar.to(Dex2jar.java:377) at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:118) at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:293) at com.storm.wind.xpatch.task.ApkModifyTask.dex2JarCmd(ApkModifyTask.java:87) at com.storm.wind.xpatch.task.ApkModifyTask.dumpJarFile(ApkModifyTask.java:68) at com.storm.wind.xpatch.task.ApkModifyTask.run(ApkModifyTask.java:40) at com.storm.wind.xpatch.MainCommand.doCommandLine(MainCommand.java:165) at com.storm.wind.xpatch.base.BaseCommand.doMain(BaseCommand.java:123) at com.storm.wind.xpatch.MainCommand.main(MainCommand.java:56) jar2dex /Users/lanshifu/Documents/反编译/猫咪/2019-07-20-14-03-31-tmp/output-jar.jar -> /Users/lanshifu/Documents/反编译/猫咪/2019-07-20-14-03-31-tmp/com.xmvideo.app.LovelyApp-apk-unzip-files/classes.dex call com.android.dx.command.Main.main[--dex, --no-strict, --output=/Users/lanshifu/Documents/反编译/猫咪/2019-07-20-14-03-31-tmp/com.xmvideo.app.LovelyApp-apk-unzip-files/classes.dex, /Users/lanshifu/Documents/反编译/猫咪/2019-07-20-14-03-31-tmp/output-jar.jar] Uncaught translation error: com.android.dex.util.ExceptionWithContext Uncaught translation error: com.android.dex.util.ExceptionWithContext 2 errors; aborting

看到 .... while accept parameter annotation in parameter:[5] ..... ROOT cause: java.lang.ArrayIndexOutOfBoundsException: 5 数组定太小了?

WindySha commented 5 years ago

过段时间出一个android App,应该可以规避此问题

WindySha commented 2 years ago

使用修改manifest模式,不存在此问题