其他
Android逆向学习 | 绕过非标准Http框架和非系统ssl库App的sslpinning
本文为看雪论坛精华文章
第一反应就是有sslpinning,感觉挺简单的,但是几乎找了所有公开的unsslpinning脚本都无济于事, dump证书也如此。
对apk解包时发现里面有okhttp3,以为使用了okhttp3库,但hook后发现并不如此。
既然okhttp3 hook不到,就找了更深层次点的函数SSLOutputStream的write, 奇怪的是也没发现有调用,突然意识到事情可能没那么简单了!
对于这种情况,貌似就只能多对一些底层或者基础的涉及网络的函数进行hook,终于在java.net.url函数打开了突破口。
在okhttp3中,tls连接的部分在倒数第二个拦截器中,但是在本app上并没有这样做,所以重要分析了最后一个拦截器callServerInterceptor,具体如下:
看这个excutecall函数很关键,继续往下跟,其实hook这个地方就已经能拿到请求体和响应内容了,但是以学习为目的的话还是要搞明白它是怎么做的。
这个executel最终会调到com.ttnet.org.chromium.net.impl.CronetUrlRequest$1 中,然后就进入了native层。
回调函数的返回值用来确认证书验证是否成功,具体如下:
验证:
看雪ID:。_879907
https://bbs.pediy.com/user-home-848410.htm
# 往期推荐
球分享
球点赞
球在看
点击“阅读原文”,了解更多!