Skip to content

QQBackup/x_key_scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

x_key_scanner

Tip

这是一个注意力惊人的项目

正在运行、已登录的 QQ NT 客户端进程内存中,提取 NTQQ 主数据库密钥 并可选地解密 QQ 的本地数据库。

非侵入式

本工具对 QQ 是只读的:只读取进程内存、只以只读方式打开登录锁、只复制数据库文件出来,绝不修改、注入或调试 QQ 进程。

比起常规的hook手段更方便 和 安全。 几乎不可能有被QQ检测到的风险

使用前提

  • 只登录一个 QQ 账号。工具会提取当前登录账号的密钥,多开会导致无法确定目标。
  • QQ 保持登录、保持运行。密钥只存在于运行中的进程内存里,扫描时 QQ 必须活着。
  • 若运行失败,尝试提权运行
    • Windows:在管理员终端中运行。
    • Linux:用 sudo 运行(或授予 CAP_SYS_PTRACE)。若仍失败,检查 /proc/sys/kernel/yama/ptrace_scope
    • macOS:用 sudo 运行。若 sudo 仍失败,通常是目标启用了强化运行时(hardened runtime),该系统版本无法授予任务端口,此时无法扫描内存。

快速开始

下载自己平台的release文件

# 默认:检测账号、扫描内存、打印验证过的 raw_key。
sudo ./x_key_scanner            # macOS / Linux
x_key_scanner.exe               # Windows cmd/powershell

输出中的 raw_key (hex) 就是你要的主密钥。

解密数据库

加上 --output 会在打印密钥后,把 login.db 和该账号的数据库解密到指定目录:

sudo ./x_key_scanner --output ./plain

解密数据库建议先关闭 QQ:运行中的 QQ 可能在读取过程中改写数据页,导致解密结果损坏。因此加了 --output 后:

  • 若 QQ 仍在运行,工具会暂停等待——你关闭 QQ 后它会自动继续
  • 或直接按回车忽略警告,立即解密(QQ 仍运行,结果可能不完整)。

若不想要这个等待环节,加 --force 直接跳过、立即解密:

sudo ./x_key_scanner --output ./plain --force

自动检测失败时

工具会自动定位 QQ 数据目录。若失败,用 --data-root 手动指定(指向包含各账号目录的文件夹,Windows 上通常是 .../Tencent Files):

./x_key_scanner --data-root "/path/to/QQ"

也可以在工具提示时直接输入路径。

参数一览

参数 说明
--output <目录> login.db 及账号数据库解密到该目录(不加则只打印密钥后停止)。
--data-root <目录> 手动指定数据目录,跳过自动检测。
--force 配合 --output:跳过“等待 QQ 退出”的暂停,立即解密。

支持平台

每次发布都会提供以下 6 个目标的预编译二进制:

系统 x86_64 arm64
Windows x86_64-pc-windows-msvc aarch64-pc-windows-msvc
Linux x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu
macOS x86_64-apple-darwin aarch64-apple-darwin

自行编译

cargo build --release

About

Windows MacOS Linux | 扫描内存获取QQ主密钥

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages