记一次提取Shaft缓存

版权

License:CC BY-SA 4.0 International
首发于:https://www.h-sr.cn/index.php/2023/04/09/22.html

引子

众所周知,pixiv在境内没办法正常访问,于是有了一众第三方App能够实现直连pixiv的操作。通过绕过SNI审查的方式实现直连,其中我所提到的Shaft就是其中之一。
ref: https://github.com/CeuiLiSA/Pixiv-Shaft/issues/243
ref: GitHub - CeuiLiSA/Pixiv-Shaft: Pixiv第三方Android客户端

背景介绍

有一台旧手机,里面有一些Shaft的缓存的图片和小说,解了bl锁但是没有root,没有办法直接获取缓存文件。

过程简介(仅包含原理) TL; DR

  1. Shaft是开源项目,可以直接阅读其源代码。
  2. 根据其源码,得知其使用了sqlite3来保存源网址和文件名的对照关系。缓存文件位于/data目录下、
  3. 数据库可以通过MIUI的备份和还原提取,但是缓存无法提取。
  4. 修改Shaft源代码,增加通过tar命令打包缓存到正常可访问目录的代码。
  5. 编译新版本apk,安装。
  6. 将第五步提取所得到的可读取tar文件导出。

至此,缓存提取完成。

详解

1. 分析

分析其通过MIUI备份提取出的文件,可以得到多个数据库,如下:

  • google_app_measurement_local.db
  • roomDemo-database

其中,roomDemo-database包含了文件名与网址的对应关系,较为重要。
该数据库架构如下:

CREATE TABLE android_metadata (locale TEXT)
CREATE TABLE 	
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值