systeminfo.cfg是微信用于存储设备标识与加密密钥派生参数的关键二进制文件,位于/android/data/com.tencent.mm/目录下,其salt值与uin拼接后md5取前七位即为enmicromsg.db解密密钥。

如果您在安卓设备的 com.tencent.mm 文件夹中发现 systemInfo.cfg 文件,该文件是微信客户端用于存储本地设备标识与加密密钥派生参数的关键配置项,直接影响 EnMicroMsg.db 数据库的加解密过程。以下是识别、定位与理解该文件作用的具体方法:
一、systemInfo.cfg 的生成机制与核心作用
systemInfo.cfg 并非用户可手动编辑的常规配置文件,而是微信首次启动或更换设备时由客户端自动生成的二进制配置快照,内含 UIN(用户唯一标识)、设备 IMEI(或 Android ID 替代值)、安装时间戳及密钥盐值等不可变字段。该文件与 EnMicroMsg.db 严格绑定,缺失或损坏将导致数据库无法解密,所有本地聊天记录无法读取。
1、该文件固定位于 com.tencent.mm 根目录下,路径为 /Android/data/com.tencent.mm/systemInfo.cfg。
2、文件大小通常为 1024 字节整倍数(常见为 2048 或 4096 字节),十六进制头部特征为 0x57 0x45 0x43 0x48(ASCII “WECH”)。
3、其内容经 AES-128-CBC 加密且无明文字段,仅微信进程可在运行时通过内存密钥解封,外部工具无法直接解析原始参数。
二、验证 systemInfo.cfg 是否完整有效
该步骤用于排除因系统清理、误删或写入中断导致的文件截断或权限异常问题,确保其可用于后续数据库解密流程。文件若被修改为 0 字节或权限变为只读,将直接阻断 sqlcipher 解密操作。
1、使用具备 root 权限的文件管理器(如 Solid Explorer)导航至 /Android/data/com.tencent.mm/ 目录。
2、长按 systemInfo.cfg,选择“属性”,确认文件大小不为 0 且修改时间早于 EnMicroMsg.db 的创建时间。
3、检查权限字段是否显示为 -rw-rw----(即属主与属组可读写,其他用户无权限),若显示为 -r--r--r-- 则需修复权限。
4、执行 adb shell ls -l /Android/data/com.tencent.mm/systemInfo.cfg,比对输出中 uid/gid 是否与 com.tencent.mm 进程一致(通常为 u0_a123 类似格式)。
三、systemInfo.cfg 与 EnMicroMsg.db 的密钥绑定关系
微信采用 UIN 与 systemInfo.cfg 中嵌入的 salt 值拼接后进行 MD5 运算,取前七位作为 sqlcipher 数据库密码。因此,同一台设备上迁移 EnMicroMsg.db 时,必须同时复制 systemInfo.cfg,否则即使数据库文件完整也无法解密。
1、在手机端获取 UIN:通过 adb shell run-as com.tencent.mm cat /data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml | grep default_uin,提取数值。
2、从 systemInfo.cfg 提取 salt:需使用专用工具(如 WeChatKeyExtractor v2.1)加载该文件并导出 salt 字段的十六进制字符串。
3、拼接字符串格式为 UIN + salt(无分隔符),例如 UIN=123456789、salt=abcdef0123456789,则输入串为 "123456789abcdef0123456789"。
4、对该拼接串执行小写 MD5 计算,取前七位字符(如 "a1b2c3d")作为 EnMicroMsg.db 的解密密钥。










