1,安卓apk反编译需要的东西:jdk 安卓sdk apktool
下载地址:jdk当然是oracle官网http://www.oracle.com/technetwork/java/javase/downloads/index.html
安卓sdk谷歌安卓官网http://developer.android.com/sdk/index.html
apktool http://code.google.com/p/android-apktool/
下载完成后安装配置相应的环境变量 然后将apktool解压到硬盘某盘英文路径下
2,如果想查看apk里面的java文件的话可以直接将apk修改后缀名因为apk本身就是zip格式的可以直接打开如果采用安卓原生api编写的应用一般都可以直接拿到资源文件,但是如果使用ndk或者其他的资源文件局有可能直接被打包成二进制文件,解压后可以将class.dex采用dex2java工具直接反编译成java的jar文件 使用jd-gui-0.3.5.windows反编译成可以见的java文件但是java文件也是混淆过的只有动态调试的时候比对着调试。
3,windows cmd进入到apktool文件夹内将要反编译的apk放到对应的目录下 采用命令 apktool d - d ***.apk out进行反编译out为输出文件夹 具体参数是否反编译资源文件 可以参考相应的参数一般报错有可能就是apktool的jar包有问题或者资源文件加密了可以使用apktool -r -d *.apk不反编译资源文件,out里面为反编译的输出文件夹 如果对smali语法比较熟悉的话可以查看对应的smali文件夹下文件 也可以加入自己的调试代码进去 然后再使用命令apktool b -d out 可以打包将反编译出来的文件在打包成apk 生成的apk在dist文件夹下。
这样的apk是不能直接安装的需要签名 使用安卓sdk自带的debugkey签名 具体命令可以参考网上的 我一般使用自动签名工具Auto-sign直接可以签名了 这样就可以了 可以采用netbeans对程序进行动态调试 这也是smali官网上推荐的工具
ps:以上内容虽经过实践但是纯手工敲出来可能会有问题欢迎指正