-
-
[原创]最新版dy抓包&RPC&Unidbg模拟执行生成7神
-
-
[原创]最新版dy抓包&RPC&Unidbg模拟执行生成7神
本文章中所有内容仅供学习交流使用,不用于其他任何目的,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!若有侵权,请联系删除。
unidbg模拟执行以出值为目的补环境,未进行unidbg指纹进行去除和风控对抗,所以最终结果并不可用于实际请求,只能作为算法分析使用;抓包方案采用的frida hook libsscronet.so的SSL_CTX_set_custom_verify的方式;undibg版本0.9.8,dy版本v38.0.0(搞的时候这还是最新,然后写文章时最新版变成了38.1.0……)。
参考大佬们分享的脚本,hook libsscronet.so的SSL_CTX_set_custom_verify方法。
评论列表、用户详情这些接口可以找到明文,作品列表不知道是没抓到还是返回的压缩或者密文。

参考大佬们的文章,直接在libsscronet.so中搜索http_request_headers。

在sub_37ED64内,那么hook地址应该就是 0x37ED64。

hook他。
可以发现有两处调用。
先选第一处看看,0x47abc8,在sub_47A31C内。

然后看v76(忘记为啥是看这个了……),v76 = (char *)v73(v74, v75),然后看v73,也就是x23。

x23对应的地址为0x47AAEC。

在hookSetHeaders方法中添加对x23的hook,然后attach进去。
可以看到此时x23的地址为0x709bb39e38。
计算以下在so中的偏移地址,看一下dy的maps,可以发现x23的地址在libmetasec_ml.so中。
计算偏移为0x2A6E38,跳转到对应位置。

然后hook他。
可以看到入参和7神了。
然后就是封装rpc调用(ps:生成的7神没有测试是否真实可用)。

先搭个基础框架。
运行一下,出现报错:libmetasec_ml.so load dependency libandroid.so failed。

有两个方案:1.Patch/Hook 这个不支持的SO所使用的函数,2.使用unidbg VirtualModule,这里选择第2个方案。
继续运行出现了checkVersion相关的报错。
那就使用骚操作把checkVersion注释掉吧(不确定这样做会有什么后果)。
继续,可以看到查找了com/bytedance/mobsec/metasec/ml/MS这个类。
jadx中看一下这个类。

补。
继续,出现了callStaticObjectMethodV相关的报错。
看一下java层对应的方法。

那我们打印一下入参,再做处理。
执行了268435470这个分支。
补。
继续,出现了callLongMethodV报错。

补。
然后就运行结束了。

传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2天前
被Rocky虞编辑
,原因: