前段时间找到一个不错的应用程序,想进行反编译,看看他的代码结构。但是在反编译的时候,遇到了
反编译不过的错误。
对于android中反编译apk网上很多介绍 ,我想大家百度一下就能找到对应的文章,今天主要就说在反编译 apk的xml文件时
错误问题。
现在说一下解决的思路:
首先创建一个简单的工程----为了生成自己的apk
进行编译,并对apk中res\main.xml通过rar的方式解压出来,并利用AXMLPrinter2.jar的方式进行反编译
发现能正常反编成功。----但是为什么下载的apk进行xml文件反编译时 就过不去呢。
通过分析发现在AndroidManifest.xml中存在差异。-----刚开始创建工程的时候有留意sdk版本,开始只是猜测
能反编译成功的工程AndroidManifest.xml
后来通过改正minSdkVersion的版本
再生成apk并对main.xml文件进行反编译发现产生
错误。
最后结论:
在minSdkVersion <= 7 时,利用AXMLPrinter2.jar 就能正常反编译出xml文件
大于7以后就不能正常反编译xml文件(AndroidManifest.xml除外)
再给大家分享一个批量反编译xml文件的方式:
首先创建一个 *.txt文件
讲里面内容编写成
for /r layout %%a in (*.xml) do @java -jar AXMLPrinter2.jar "%%a" >>"%%a".txt
然后将此txt文件扩展名改成 bat形式,并将此BAT文件和AXMLPrinter2.jar放在同一个目录下,将要反编译的xml都放到layout目录下,
通过执行bat文件就可以生成多个xml文件的反编译结果。