andriod7.0+charles抓包unknown问题

前言

之前在做手机采集调研的时候,发现对于andriod7以上的版本,很多app用charles抓包都会显示unknown,于是上网查了一下,发现是在android7之后系统证书和用户自行安装的证书被分开了,很多app可以识别到非系统证书从而不让访问了。于是上网找了找解决方法,最终是反编译apk后修改了点东西再重新安装之后好了。
在这里插入图片描述

反编译

apk反编译需要apktool这一工具,网上的下载资源很多。下载完之后将apktool.jar和需要反编译的apk放在同一路径下,随后命令行运行java -jar apktool的名字 d(反编译) 要解包的apk -o(输出) 文件名,例如java -jar .\apktool_2.6.0.jar d .\douyin.apk -o douyin,运行成功之后应该会在路径下生成一个douyin的文件夹在这里插入图片描述
打开douyin文件夹,其中res和AndroidManifest.xml是本次关注的重点。
在这里插入图片描述

修改配置

在res路径下新建network_security_config.xml,内容为

<network-security-config>
    <debug-overrides>
        <trust-anchors>
       <certificates src="user" />
        </trust-anchors>
    </debug-overrides>
</network-security-config>

在AndroidManifest.xml找到application,新增android:networkSecurityConfig="@xml/network_security_config
在这里插入图片描述

重新打包

命令行运行java -jar apktool的名字 b(打包) 要打包的文件夹名字,例如java -jar .\apktool_2.6.0.jar b .\douyin\,打包完之后会在该路径的dist目录下生成对应apk。但这个时候的apk还是不能安装的,因为还没有签名,接下来生成签名keytool -genkey -alias douyin.keystore -keyalg RSA -validity 40000 -keystore douyin.keystore该命令的使用参数为:
-genkey 产生证书文件
-alias 产生别名
-keystore 指定密钥库的.keystore文件中
-keyalg 指定密钥的算法,这里是RSA(非对称密钥算法)
-validity 为证书有效天数,这里是40000天
生成签名文件之后,运行以下命令给apk签名

jarsigner -verbose -keystore douyin.keystore douyin.apk douyin.keystore

然后这个apk就可以安装了,但是需要注意如果手机上有原来的app需要先卸载再重新安装

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值