1.工具准备
1.1 apktool
用于将apk逆向为目录,内含字节码文件。使用好压软件可以将apk解压为目录,但没有反编译的效果,看不到smali文件。下载地址: http://download.csdn.net/detail/chuchus/9425744
其他参考: http://apktool.shoujifans.com/
1.2 smali2java:
将字节码反编译为java。
自行百度,这个很好拿到。2.拿到apk
拿到apk。
可以直接用好压解压,看一下。
图2-1 好压直接解压apk文件
一般来讲,xxx.dex文件就是编译后的业务代码。
但图2-1这个例子中有一个xxx.des文件,是加密、混淆后的业务代码。
3.apktool反编译到字节码
注意apktool的版本号。过低的话逆向高版本apk可能报错。
命令为: apktool d -o outPutDir xxx.apk
完成后得到目录。大致结构见图3-1。
图3-1 apktool逆向后的目录结构
smali目录主要是由classes.dex文件逆向得到。
.smali文件类似java中的.class文件,为字节码文件,被Dalvik VM解释执行。
图3-2 smali目录下的文件
观察图3-2可以看到有secneo目录,这是个app加密的公司,官网见:http://www.secneo.com 中文网站叫梆梆加固,见http://www.bangcle.com/
4.字节码反编译到java
使用smali2java工具即可。