type
status
date
slug
summary
tags
category
icon
password
一、分析执行流程
版本:djYuOTcuMA==
查看java代码,发现首先执行了initializeNative,intercept的第二个参数是,initialize获取到的,所有执行过程如下。
initializeNative()---->cPtr = initialize(str)----->intercept(Interceptor.Chain chain, long j2)
.png?table=block&id=b9a0b20d-4576-40d2-910d-7741172879ef&t=b9a0b20d-4576-40d2-910d-7741172879ef&width=1104&cache=v2)
.png?table=block&id=f2183d19-4d8e-4012-bf68-ec6ae3717abe&t=f2183d19-4d8e-4012-bf68-ec6ae3717abe&width=1104&cache=v2)
二、Unidbg
框架搭好,尝试运行,缺啥补啥。
.png?table=block&id=3e9bb357-eeb3-49ad-9339-4fb307b0d3fe&t=3e9bb357-eeb3-49ad-9339-4fb307b0d3fe&width=1104&cache=v2)
初步运行没有问题。
.png?table=block&id=ecd4e916-ff59-4778-b301-040ce35e74b1&t=ecd4e916-ff59-4778-b301-040ce35e74b1&width=1104&cache=v2)
构建initializeNative函数,运行,报错,缺啥补啥。
补环境的时候回遇到一个getSharedPreferences,SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。
通过输出可证明,在/data/data/com.xingin.xhs/shared_prefs这个目录下有个s.xml文件,然后取里面值,使用adb找到文件所在。
.png?table=block&id=adb02c81-3ee0-4200-955b-570b97259923&t=adb02c81-3ee0-4200-955b-570b97259923&width=1104&cache=v2)
比较要注意的几个点:整个执行过程中,有很多要对Request进行操作的,所以要初始化好,方便操作,有一些不动的方法,就去文档查询在做什么操作。
最后的最后补完环境。
.png?table=block&id=9a6c94b0-049e-4eae-a809-cd3e0dea299d&t=9a6c94b0-049e-4eae-a809-cd3e0dea299d&width=2000&cache=v2)
完整代码放在知识星球,关键词为xiao。
- 本案例仅做分析参考,如有侵权请联系删除
- 作者:404False
- 链接:https://blog.404nofoundx.top//article/4ed53721-eb40-47e3-83af-21a417d05bcf
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。