内容简介:作者:星星y链接:https://www.jianshu.com/p/44923e658f47
code小生 一个专注大前端领域的技术平台 公众号回复 Android
加入安卓技术群
作者:星星y
链接:https://www.jianshu.com/p/44923e658f47
声明:本文已获 星星y
授权发表,转发等请联系原作者授权
Android7.0手机抓包
在开发或者测试中,网络抓包是经常需要的。例如需要测试release包在某个bug产生时的网络请求,或者想要查看其他app的响应数据,而且绝大数的都是https请求。
在Android7.0以下,我们可以将Fiddler/Charles的证书放到手机的用户证书中来实现https抓包。
而Android7.0以上手机不再信任用户证书,一种方法是将手机Root,将证书放到系统证书目录下,但是现在刷机难度变大,刷机需求变小(有些刷机厂商倒闭),这种形式抓包不太友好。
另一种则是配置清单文件networkSecurityConfig,见官方Android网络安全配置,我们将Charles/Fiddler证书放入到apk中,这样就可以在任意Android手机中抓包了。
已有apk抓包方案
在打release包,或者我们拿到一个市场上下载的apk,想要对他们抓包操作,而且手上只有Android7.0以上的设备时,反编译重打包apk就是一个有效的方法了。
我们以美团apk为例:
相关工具
-
ApkTool
-
Charles
导出证书
首先我们要导出Charles(或者Fiddler)证书,命名为charles.cer
反编译
使用ApkTool反编译美团apk
java -jar apktool.jar d apks/meituan.apk
可以在meituan目录下看到反编译好的资源
放入证书,修改清单文件
在application中添加android:networkSecurityConfig属性(美团apk本身已配置),
<application ... android:name="com.sankuai.meituan.MeituanApplication" android:networkSecurityConfig="@xml/network_security_config" ...> </application>
然后将charles.cer证书放入到raw目录下
在xml目录下新建network_security_config.xml文件,加入
<?xml version="1.0" encoding="utf-8" standalone="no"?> <network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system"/> <certificates src="user"/> <certificates src="@raw/charles"/> </trust-anchors> </base-config> </network-security-config>
重新打包apk
修改好后,我们再使用ApkTool打包
java -jar apktool.jar b meituan/
签名
在meituan/dist/目录下可以看到打包好的apk,此时是没有签名的,我们需要给它加入签名信息。
可以通过Android Studio随便新建一个项目,通过Generate Signed apk方式生成一个签名文件,也可以通过命令的方式生成签名
keytool -genkey -alias aliasName -keyalg RSA -validity 20000 -keystore test.jks
然后我们使用这个test.jks文件对apk签名
jarsigner -verbose -keystore test.jks -storepass storePasswordxxx -keypass keyPasswordxxx meituan/dist/meituan.apk aliasNamexxx
安装apk,抓包
一键生成可抓包apk
每次都要反编译,修改配置,复制证书,重新签名比较重复繁琐。所以基于ApkTool的api开发了ApkCrack工具包,只要配置好证书路径,签名信息,即可一键生成可抓包apk(windows/mac亲测可用)。
https://github.com/iamyours/ApkCrack
下载地址
https://github.com/iamyours/ApkCrack/releases
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 数据生成工具 ZenData 1.4 发布,内置国家、日期、时间格式,支持文章生成
- ThinkphpHelper 2.0 发布,支持 ThinkPHP 5 的代码生成器
- 木兰语言 0.0.17.1:源码生成支持更多函数、类相关语法
- Wisdom RESTClient 1.2 发布,支持生成REST API文档
- Wisdom RESTClient 1.2 发布,支持生成REST API文档
- RuoYi-Vue 2.0 发布,支持代码生成器
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。