使用apktool进行apk的反汇编时,没有出现问题(有问题的自行解决),
但是进行回汇编时出现:
F:\apktool>apktool b Hello Helloapk
Exception in thread "main" brutandrolibAndrolibException: brutdirectoryPathN
otExist: apktoolyml
at brutandrolibAndrolibreadMetaFile(Unknown Source)
at brutandrolibAndrolibbuild(Unknown Source)
at brutandrolibAndrolibbuild(Unknown Source)
at brutapktoolMaincmdBuild(Unknown Source)
at brutapktoolMainmain(Unknown Source)
Caused by: brutdirectoryPathNotExist: apktoolyml
at brutdirectoryAbstractDirectorygetFileInput(Unknown Source)
5 more
经验证是,反汇编时没有生成apktoolyml
进行反汇编时,改用命令apktool d -r xxapk xx便可以解决(加上了-r选项)
编译失败是操作过程中错误造成的。解决方式如下:
1、首先去官方网站点击下载可用的最新ApkTool。
2、在上一步的弹出窗口中点击截图红圈处的位置进行下载,由于是国外服务器点击后可能出现没反应情况,稍作等待即可。
3、下载完成后将文件放到新建的一个文件夹中,然后右键点击我的电脑选择-高级系统设置。
4、然后在高级选项中选择环境变量。
5、新建一个java环境的变量点击确定。
6、配置好java环境后在开始菜单中输入cmd,打开dos命令窗口。首先输入命令f,然后回车。
7、进入对应盘符后,在此输入命令cd apktool,然后回车进入保存ApkTooljar的文件夹中。
8、随便下载一个apk文件发到apktool所在的文件夹中,然后执行命令java -jar apktooljar d -f XXXXapk文件所在的路径。然后程序就会开始反编译。
9、反编译完成后会在该文件夹内生成一个和apk同名的文件夹,apk反编译完的内容即存在于该文件夹内。
大体的意思为qihoo这个属性没有资源定义!
你这个应该是属于加了密的APK包!这类加密后的文件,是无法回编译的。要想正常回编译,首先要做的是先进行脱壳解密,脱了壳后的文件才能反编译,之后才能正常回编译!
工具:
apktool,作用:资源文件获取,可以提取出文件和布局文件进行使用查看
dex2jar,作用:将apk反编译成java源码(classesdex转化成jar文件)
jd-gui,作用:查看APK中classesdex转化成出的jar文件,即源码文件
反编译流程:
一、apk反编译得到程序的源代码、、XML配置、语言资源等文件
下载上述工具中的apktool,解压得到3个文件:aaptexe,apktoolbat,apktooljar ,将需要反编译的APK文件放到该目录下,
打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktoolbat d -f testapk test
(命令中testapk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktoolbat d -f [apk文件 ] [输出文件夹])
获取成功之后,发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。
如果你想将反编译完的文件重新打包成apk,那你可以:输入apktoolbat b test(你编译出来文件夹)便可
之后在之前的test文件下便可以发现多了2个文件夹:
build
dist(里面存放着打包出来的APK文件)
二、Apk反编译得到Java源代码
下载上述工具中的dex2jar和jd-gui ,解压
将要反编译的APK后缀名改为rar或则 zip,并解压,得到其中的额classesdex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classesdex放到之前解压出来的工具dex2jar-00915 文件夹内,
在命令行下定位到dex2jarbat所在目录,输入dex2jarbat classesdex,
在改目录下会生成一个classes_dex2jarjar的文件,然后打开工具jd-gui文件夹里的jd-guiexe,之后用该工具打开之前生成的classes_dex2jarjar文件,便可以看到源码了
本工具执行安装后,直接在鼠标右键生成快捷键,自动关联APK、DEX、Odex、Zip等文件。只要在电脑任意“非分区根目录”,鼠标右键点击相关文件,即可编译操作。如,反编译APK及DEX文件,反编译后生成可编译的同名文件夹,汉化修改完成后,对文件夹点击鼠标右键根据文件夹反编译前的文件类型,现在使用 APKDB编译即可!
同时,针对apk和zip文件增加签名操作,只要鼠标右键点击,选择使用 APKDB编译选择[S]签名APK文件即可!签名前无需删除原来的META-INF签名数据。本工具会判别apk还是zip并自动删除签名数据。
欢迎分享,转载请注明来源:品搜搜测评网