Android截包与反编译
2016-03-26 18:07
330 查看
近期由于学习需要,尝试了下截包与反编译,发现对于简单的反编译与截包其实挺简单的,而本文也主要介绍截包与反编译工具的使用.
官网下载地址: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还可以设置过滤器 过滤掉不想要的信息
下载链接: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这种,其实挺恶心的,我还专门去查了反混淆希望能还原但是未发现解决办法,如果有朋友能反混淆欢迎交流谢谢.
截包
截包的工具有很多,我这里主要介绍简单实用的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这种,其实挺恶心的,我还专门去查了反混淆希望能还原但是未发现解决办法,如果有朋友能反混淆欢迎交流谢谢.
相关文章推荐
- 关于AndroidStudio上链接Github上传(非完整)
- Listview item里面的textView.setMovementMethod(LinkMovementMethod.getInstance()) 让listview 点击生效解决方法
- ListView的下拉刷新和上拉加载
- 2012年的Android之旅:梦想、学习、坚持、自信、淡定
- 罗升阳:那两年炼就的Android内功修养
- Android Studio 导入百度地图jar和so的正确方式
- Android进程/线程管理——深入源码解读+分析
- 老罗专访:Android 源码之旅
- Android 学习之 开源项目PullToRefresh的使用
- Android 相机开发 三星拍照崩溃修改解决 详细
- Android中Service与Activity的有关于进程与线程的问题
- 【android】 android studio使用
- MAC OS 配置android环境
- 获取Android系统正在运行的线程
- android开发艺术探索相关问题
- Android获得线性渐变某点的颜色
- Android-CheckBox和RadioButton复习
- Android XListView实现原理讲解及分析
- android后台服务的基本用法
- Android Studio中不能显示svn的上传下载两个图标同时version control为灰,不可点击