dy过ssl charles抓包
及xposed的justtrustme安装到手机上只能过系统的ssl。
抖音写了一个非系统的ssl所以需要反编译so来处理。
第一步,charles
我用的是magisk手机,先重charles把证书下载到pc端
选项1,安装证书到本地
选项2,查看ip
选项3,导出证书
在通过adb push 传入到sdcard
通过手机安装证书[wifi 的高级选项中,安装证书]
把用户证书通过[mt管理器]移动到系统证书目录[或者通过shell指令cp移动,但是需要挂在system目录]
* 用户证书目录
/data/misc/user/0/cacerts-added/
* 系统证书目录
/system/etc/security/cacerts/
在把手机的ip代理到charles的ip。
第二步,dy23.3.0版本的so处理
安装dy23.3.0版本的x音
通过adb拉取ssl的so。[so路劲]:/data/data/com.ss.android.ugc.aweme/lib/libsscronet.so
用shell file libsscronet.so 可以查看so是32位的。
libsscronet.so: ELF shared object, 32-bit LSB arm, for Android 16,
built by NDK r21b (6352462), BuildID=fa904331dfa77de8b969d0d90561bc3e40c2c9e5, stripped
所以我们用ida32位的打开这个so。
等待几分钟等待so加载完毕,然后在左侧根据关键字"SSL_CTX_set_custom_verify"找到
通过搜索“SSL_CTX_set_custom_verify”选择第一项,再通过[text view]显示
双击进入sub_1C99CC到汇编位置 通过f5查看伪代码
双击进入sub_1C9404 的伪代码,把里面3个return值改为0[我这里是改过之后的]
第一个
再搜索sub_1C9404 IDA VIEW 查看汇编位置
loc_1C94B4位置双击进入
提示:
你可以通过f5进入查看伪代码就是return的位置
可以把地址单独拎出来,这样就可以实时查看到对应的地址
通过winhex修改保存即可
第二个第三个在底部的返回函数里面sub_1C9640双击进入伪代码[这个修改就补贴了,自行按照1第一个流程去做就行了]
第二个
第三个
第三部,替换so
看这个文件夹下应该是没有文件的(A) /data/data/com.ss.android.ugc.aweme/app_librarian/23.3.0.6525026484/libsscronet.so
删除 /data/data/com.ss.android.ugc.aweme/lib/libsscronet.so
再打开抖音,(A)应该有文件libsscronet.so包显示了,替换修改的so
我是通过mt文件管理器替换的
再重启。即可抓包