Android安全–使用dex2jar和apktool反编译apk

对于Android应用来说,在没有加任何保护的前提下,基本上能把所有的源码反编译出来,而且可读性很高。

先来看看如果使用工具反编译apk,通过这样可以查看其它app的实现逻辑,并且可以篡改程序。

 

一、使用dex2jar反编译apk

首先把.apk后缀改成.zip压缩文件,然后把里面的.dex文件拿出来,放得到dex2jar目录下面,或者将这个目录配置到环境变量也行,就无所谓放在哪里了。

然后进入命令运行dex2jar.bat    classes.dex

image

运行完之后会在当前目录下面生成classes_dex2jar.jar文件。

然后使用jd-gui.exe打开这个文件就能看到里面的包信息以及java代码。

image

 

二、使用apktool反编译apk

首先下载apktool工具,然后将apk和该工具放在同一目录下面。

反编译:

java –jar apktool.jar d com.me.keygen.activity.apk

image

反编译完之后会在新生成的文件夹里面看到资源文件以及生成的smali代码。

image

回编译:

如果你修改了里面的smali代码或者资源文件,然后需要重新打包再安装到机器上面,那么就需要回编译成apk文件。

java –jar apktool.jar b com.me.keygen.activity

image

再点开文件夹,里面新生成了一个dist目录,该目录下面就有新生成的apk文件。

当然,该apk文件还不能直接安装,还需要重新签名,才能安装成功!

image

重新签名完成之后,会新生成一个resign.apk文件。

然后使用adb install resign.apk 安装新生成的apk文件到设备即可!

 

不要问我上面使用的工具是从哪里来的,请使用搜索引擎!

本文链接:http://www.alonemonkey.com/dex2jar-apktool.html