您的位置:首页 > 移动开发 > Android开发

Android截包与反编译

2016-03-26 18:07 330 查看
近期由于学习需要,尝试了下截包与反编译,发现对于简单的反编译与截包其实挺简单的,而本文也主要介绍截包与反编译工具的使用.

截包

截包的工具有很多,我这里主要介绍简单实用的fiddler.

官网下载地址:http://www.telerik.com/fiddler

下载完成后打开fiddler

1.首先,确保安装 Fiddler 的电脑和你的手机在同一局域网内,因为Fiddler只是一个代理,需要将手机的代理指向 PC 机,不能互相访问是不行的。

2.打开菜单栏中的Tools>Fiddler Options,打开“Fiddler Options”对话框。



在Fiddler Options”对话框切换到“Connections”选项卡,然后勾选“Allow romote computers to connect”后面的复选框,然后点击“OK”按钮,设置允许远程链接.



3.然后在本机命令行输入ipconfig命令行找到本机ip,由于我这里手机和电脑都是连得无线网所以使用电脑无线网ip 192.168.0.102



4.打开手机设置无线网代理界面 服务器设置为电脑无线网ip 端口为fiddler监听端口8888



5.现在就可以抓包了打开fiddler



6还可以设置过滤器 过滤掉不想要的信息



反编译

apktool : 它可以解码资源接近原始形式和重建后做一些修改,可以提取出图片文件和布局文件进行使用查看

下载链接:http://download.csdn.net/detail/zly921112/9472996

dex2jar : 将apk反编译成java源码(classes.dex转化成jar文件)

下载链接:http://download.csdn.net/detail/zly921112/9473310

jd-gui : 查看用dex2jar转换生成的jar文件,查看源码

下载链接:http://download.csdn.net/detail/zly921112/9473311

apktool(反编译资源文件)

将工具中apktool,解压得到aapt.exe,apktool.bat,apktool.jar,将需要反编译的APK文件放到该目录下,然后将命令行目录切换至该目录下.输入apktool d test.apk,命令中test.apk指的是要反编译的APK文件全名,反编译后生成文件名与APK文件名相同



虽然这里有部分资源未能解码但是大部分资源都得到了,



test文件内部



如果你想将反编译完成的文件重新打包apk,那你可以输入 apktool b test(编译出来文件夹):



在test文件下会发现多了两个文件 build 和 dist(里面存放着打包出来的APK文件)



关于命令官网有给出例子

解码:



构建:



dex2jar+jd-gui(反编译.dex文件获取java源码)

将要反编译的apk后缀改成.rar 解压,得到其中的额classes.dex文件(它就是java文件编译再通过dx工具打包而成的),将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15文件夹内,然后将命令行目录切换至该目录下.输入dex2jar.bat classes.dex



在该目录下会生成一个classes_dex2jar.jar的文件,然后用jd-gui文件夹里的jd-gui.exe,打开之前生成的classes_dex2jar.jar文件,便可以看到源码了,效果如下:



由于源码被混淆了所以只能看到abc这种,其实挺恶心的,我还专门去查了反混淆希望能还原但是未发现解决办法,如果有朋友能反混淆欢迎交流谢谢.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: