Android之反编译

2019-01-24  本文已影响0人  gooddaytoyou

如何进行反编译

这里我们需要用到几个工具

apktool

源代码 https://github.com/iBotPeaches/Apktool

对于 apk包来说,如果直接改后缀名的,打开的布局文件是乱码,原因在于打包成apk文件,对原始的文件进行特殊压缩处理,而通过apktool工具就可以看来原始的布局文件。

命令

apktool d xxx.apk

或者

java -jar apktool.jar d xxx.apk

如下图


apktool

解压后生成test的文件,里面就有布局文件


解压后生成test的文件

dex2jar

我们生成apk,将所有java类都编译放在了classes.dex文件中。

classes.dex
命令

dex2jar classes.dex

dex2jar classes.dex

会自动生成classex-dex2jar.jar文件,而jar文件中包含的都是类的class文件,是不可读的,因此需要第三个工具,jd-gui。
jar文件


jar文件

jd-gui

jd-gui可以查看具体class文件


jd-gui

smalidea

smalidea源代码 https://github.com/JesusFreke/smali/wiki/smalidea
smalidea包 https://bitbucket.org/JesusFreke/smali/downloads/

通过Android Studio 动态调试安卓app

这里有个前提是手机Root过。

安装smalidea

得到smali代码

有两种方式

apktool反编译

参考上面的apktool使用方法。

baksmali反编译

将Apk后缀名改成rar 解压得到 classes.dex。
命令

java -jar baksmali-2.2.5.jar d classes.dex

通过以上命令得到smail文件。

导入smail文件到Android Studio

通过 File->New->Import Project,导入项目

配制端口

Edit Configurations… 添加一个remote调试 修改调试的端口 用8900端口。

调试app

当运行到断点时应用就会被暂停,就像平时调试操作一样。

工具下载地址

apktool 链接:http://pan.baidu.com/s/1skm3d6l 密码:6525
dex2jar 链接:http://pan.baidu.com/s/1jHdTNka 密码:8jlh
jd-gui 链接:http://pan.baidu.com/s/1kUsfbDH 密码:jhbw
apktool官方下载
smalidea 下载

上一篇 下一篇

猜你喜欢

热点阅读