本帖最后由 璋公子 于 2015-12-14 15:33 编辑
刚刚开始学习安卓的逆向,看到低调大神的三战寻路,正好自己也没有一个用的比较顺手的去墙外的软件。所以就想根据低调的动画教程自己动手做一做。在做的过程中遇到了很多问题。
1.我看到视频中低调用的是APK改之理对寻路这个软件进行的反编译和修改。但是我下载了APK改之理之后,却总是反编译失败。
[Asm] 纯文本查看 复制代码 > 正在清理旧工作目录 ... - 成功!旧工作目录被清理到系统回收站内。
> 正在反编译Apk... - 失败:I: Baksmaling...
I: Loading resource table...
Exception in thread "main" brut.androlib.AndrolibException: Could not decode arsc file
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:56)
at brut.androlib.res.AndrolibResources.getResPackagesFromApk(AndrolibResources.java:491)
at brut.androlib.res.AndrolibResources.loadMainPkg(AndrolibResources.java:74)
at brut.androlib.res.AndrolibResources.getResTable(AndrolibResources.java:66)
at brut.androlib.Androlib.getResTable(Androlib.java:50)
at brut.androlib.ApkDecoder.getResTable(ApkDecoder.java:189)
at brut.androlib.ApkDecoder.decode(ApkDecoder.java:114)
at brut.apktool.Main.cmdDecode(Main.java:146)
at brut.apktool.Main.main(Main.java:77)
Caused by: java.io.IOException: Expected: 0x001c0001, got: 0x00000000
at brut.util.ExtDataInput.skipCheckInt(ExtDataInput.java:48)
at brut.androlib.res.decoder.StringBlock.read(StringBlock.java:44)
at brut.androlib.res.decoder.ARSCDecoder.readPackage(ARSCDecoder.java:102)
at brut.androlib.res.decoder.ARSCDecoder.readTable(ARSCDecoder.java:83)
at brut.androlib.res.decoder.ARSCDecoder.decode(ARSCDecoder.java:49)
... 8 more
> .smali输出目录:G:\Android\ApkIDE\Work\com.biganiseed.reindeer
> .class输出目录:Not supported.
> .java输出目录:Not Supported.
2.使用了AndroidKiller这个软件后,可以反编译,修改和重新编译。但是软件会卡在签名不动或者apk编译失败,无法进行下一步签名。
[Asm] 纯文本查看 复制代码 正在编译 APK,请稍等...
>I: Using Apktool 2.0.0-RC3-androidkiller on Project
>I: Smaling smali folder into classes.dex...
>I: Building resources...
>I: Copying libs...
>I: Building apk file...
>I: Copying unknown files/dir...
>deer1480 (4)\Bin\project.apk
> at brut.androlib.Androlib.buildUnknownFiles(Androlib.java:576)
> at brut.androlib.Androlib.build(Androlib.java:289)
> at brut.androlib.Androlib.build(Androlib.java:255)
> at brut.apktool.Main.cmdBuild(Main.java:225)
> at brutdeer1480 (4)\Bin\project.apk
> at brut.androlib.Androlib.buildUnknownFiles(Androlib.java:576)
> at brut.androlib.Androlib.build(Androlib.java:289)
> at brut.androlib.Androlib.build(Androlib.java:255)
> at brut.apktool.Main.cmdBuild(Main.java:225)
> at brut.apktool.Main.main(Main.java:84)
>Caused by: java.nio.file.FileAlreadyExistsException: G:\Android\Android Killer v1.2.0 Beta\projects\reindeer1480 (4)\Bin\zipfstmp3935713755286008473.tmp -> G:\Android\Android Killer v1.2.0 Beta\projects\reindeer1480 (4)\Bin\project.apk
> at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:81)
> at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97)
> at sun.nio.fs.WindowsFileCopy.move(WindowsFileCopy.java:387)
> at sun.nio.fs.WindowsFileSystemProvider.move(WindowsFileSystemProvider.java:287)
> at java.nio.file.Files.move(Files.java:1392)
> at com.sun.nio.zipfs.ZipFileSystem.sync(ZipFileSystem.java:1297)
> at com.sun.nio.zipfs.ZipFileSystem.close(ZipFileSystem.java:277)
> at brut.androlib.Androlib.insertFile(Androlib.java:595)
> at brut.androlib.Androlib.buildUnknownFiles(Androlib.java:571)
> ... 4 more
APK 编译失败,无法继续下一步签名!
寻路的版本是1480
————————————————————
问题疑似解决,apktool.jar更新到最新好成功反编译。修改完之后做编译和签名测试。
20150202
反编译、编译和签名都成功了,确定是apktool.jar的问题
|