对于Android应用来说,在没有加任何保护的前提下,基本上能把所有的源码反编译出来,而且可读性很高。
先来看看如果使用工具反编译apk,通过这样可以查看其它app的实现逻辑,并且可以篡改程序。
一、使用dex2jar反编译apk
首先把.apk后缀改成.zip压缩文件,然后把里面的.dex文件拿出来,放得到dex2jar目录下面,或者将这个目录配置到环境变量也行,就无所谓放在哪里了。
然后进入命令运行dex2jar.bat classes.dex
运行完之后会在当前目录下面生成classes_dex2jar.jar文件。
然后使用jd-gui.exe打开这个文件就能看到里面的包信息以及java代码。
二、使用apktool反编译apk
首先下载apktool工具,然后将apk和该工具放在同一目录下面。
反编译:
java –jar apktool.jar d com.me.keygen.activity.apk
反编译完之后会在新生成的文件夹里面看到资源文件以及生成的smali代码。
回编译:
如果你修改了里面的smali代码或者资源文件,然后需要重新打包再安装到机器上面,那么就需要回编译成apk文件。
java –jar apktool.jar b com.me.keygen.activity
再点开文件夹,里面新生成了一个dist目录,该目录下面就有新生成的apk文件。
当然,该apk文件还不能直接安装,还需要重新签名,才能安装成功!
重新签名完成之后,会新生成一个resign.apk文件。
然后使用adb install resign.apk 安装新生成的apk文件到设备即可!
不要问我上面使用的工具是从哪里来的,请使用搜索引擎!