android反编译Writer.write报错

apk反编译需要

apktool-1.0.0.tar.bz2(http://android-apktool.googlecode.com/files/apktool-1.0.0.tar.bz2)

apktool-1.0.0.tar.bz2解压后是一个apktool.jar文件。

apktool-install-windows-2.1_r01-1.zip(http://android-apktool.googlecode.com/files/apktool-install-windows-r04-brut1.tar.bz2 )


最新版本在http://code.google.com/p/android-apktool/中可下载

解压apktool-install-windows-2.1_r01-1.zip其中的apktool.bat文件。

apktool.bat 中只有两行批处理,

@echo off
java -jar "%~dp0\apktool.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9

第一样注释,不管它;

第二行是运行apktool.jar,"%~dp0\apktool.jar"是在当前路径寻找apktool.jar,可以改成自己的apktool.jar所在的路径。


apktool 1.4.1反编译错误如下:

C:\Documents and Settings\Administrator>apktool d D:\clocksync.apk D:\clocksync0
1
I: Baksmaling...
I: Loading resource table...
I: Loaded.
W: Could not decode attr value, using undecoded value instead: ns=android, name=
versionCode, value=0x0000000a
W: Could not decode attr value, using undecoded value instead: ns=android, name=
versionName, value=0x00000011
Exception in thread "main" java.lang.NullPointerException
        at java.io.Writer.write(Unknown Source)
        at brut.androlib.res.util.ExtMXSerializer.writeAttributeValue(ExtMXSeria
lizer.java:38)
        at org.xmlpull.mxp1_serializer.MXSerializer.attribute(MXSerializer.java:
673)
        at org.xmlpull.v1.wrapper.classic.XmlSerializerDelegate.attribute(XmlSer
ializerDelegate.java:106)
        at org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper.writeStartT
ag(StaticXmlSerializerWrapper.java:267)
        at org.xmlpull.v1.wrapper.classic.StaticXmlSerializerWrapper.event(Stati
cXmlSerializerWrapper.java:211)
        at brut.androlib.res.decoder.XmlPullStreamDecoder.decode(XmlPullStreamDe
coder.java:46)
        at brut.androlib.res.decoder.ResStreamDecoderContainer.decode(ResStreamD
ecoderContainer.java:34)
        at brut.androlib.res.decoder.ResFileDecoder.decode(ResFileDecoder.java:1
00)
        at brut.androlib.res.AndrolibResources.decode(AndrolibResources.java:114
)
        at brut.androlib.Androlib.decodeResourcesFull(Androlib.java:93)
        at brut.androlib.ApkDecoder.decode(ApkDecoder.java:98)
        at brut.apktool.Main.cmdDecode(Main.java:120)
        at brut.apktool.Main.main(Main.java:57)


apktool为1.4.1版本(http://android-apktool.googlecode.com/files/apktool1.4.1.tar.bz2),换成apktool 1.0.0 就好了。

注意:在使用1.0.0版本的时候, apktool apktool d D:\clocksync.apk D:\clocksync0 会删掉后面路径中的内容,所以最好新建一个文件夹;而1.4.1版本会提示文件夹已存在。

正确反编译,如下:

C:\Documents and Settings\Administrator>apktool d D:\clocksync.apk D:\clocksync0
1
I: Baksmaling...
I: Decoding resource table...
I: Decoding resources...
I: Copying assets and libs...


C:\Documents and Settings\Administrator>


解压完成后会有一个smali文件夹,下面的文件都是.smali格式。使用dex2jar工具将clocksync.apk中的dex文件编译成.class文件,

然后使用jd-gui工具将.class文件转成.java文件,把这些文件替换掉smali文件夹下的文件。OK,反编译完成,但这并不能保证反编译的源代码能够在eclipse中正确运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值