From a4d652230ff1eb2e7255865ddf7eed2e87e99ee5 Mon Sep 17 00:00:00 2001 From: 2977094657 <2977094657@qq.com> Date: Mon, 22 Dec 2025 17:05:32 +0800 Subject: [PATCH] =?UTF-8?q?improvement(media):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AA=92=E4=BD=93=E5=AF=86=E9=92=A5=E6=8F=90=E5=8F=96=E4=B8=8E?= =?UTF-8?q?=E8=A7=A3=E5=AF=86=E4=BD=93=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 微信进程 AES 密钥提取:支持多 PID/更多进程名,尝试启用 SeDebugPrivilege,并扩展扫描范围与可读页过滤提升成功率 - AES key 内存匹配支持 16/32 位候选,校验覆盖 JPEG/PNG/GIF/WEBP/MP4 等常见资源头 - 解密页新增 XOR/AES 密钥一键复制与反馈提示,并补充管理员运行提示 - README 更新徽章与界面预览表格,新增/更新截图资源 --- README.md | 86 ++++--- frontend/pages/decrypt.vue | 82 ++++++- frontend/public/home.png | Bin 0 -> 589993 bytes frontend/public/imageAES.png | Bin 0 -> 202900 bytes frontend/public/imageSucces.png | Bin 0 -> 200889 bytes frontend/public/message.png | Bin 398641 -> 414242 bytes src/wechat_decrypt_tool/media_helpers.py | 245 +++++++++++++++----- src/wechat_decrypt_tool/media_key_finder.py | 16 +- src/wechat_decrypt_tool/routers/media.py | 2 +- 9 files changed, 323 insertions(+), 108 deletions(-) create mode 100644 frontend/public/home.png create mode 100644 frontend/public/imageAES.png create mode 100644 frontend/public/imageSucces.png diff --git a/README.md b/README.md index f8dc93f..9fec6cc 100644 --- a/README.md +++ b/README.md @@ -1,44 +1,56 @@ +

+ 微信数据库解密工具 +

+
- 微信数据库解密工具 +

WeChatDataAnalysis - 微信数据库解密与分析工具

+

一个专门用于微信4.x版本数据库解密的工具

+ Version + Stars + Forks + License + Python + FastAPI + Vue.js + SQLite
-# 微信数据库解密工具 - -一个专门用于微信4.x版本数据库解密的工具 - ## 界面预览 -### 检测页面 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
首页检测页面
首页微信检测页面
解密页面图片密钥页面
数据库解密页面图片密钥页面
图片解密页面解密成功页面
图片解密页面解密成功页面
聊天记录页面
聊天记录页面
-
- 微信检测页面 -
- -自动检测微信安装路径和数据库文件位置,支持多账户识别。 - -### 解密页面 - -
- 数据库解密页面 -
- -输入解密密钥,选择数据库文件进行批量解密操作。 - -### 解密成功页面 - -
- 解密成功页面 -
- -解密完成后显示统计信息,可直接跳转查看聊天记录。 - -### 聊天记录页面 - -
- 聊天记录页面 -
- -> **注意**: 聊天记录页面目前仅完成了基础展示功能,包括消息列表、文本/图片/语音等基本消息类型的显示。更多功能(如搜索、导出、高级筛选等)尚在开发中,当前界面不代表最终成品。 +> **Note**: 聊天记录页面目前仅完成了基础展示功能,更多功能(搜索、导出、高级筛选等)尚在开发中。 ## 功能特性 @@ -164,7 +176,7 @@ uv run analyze_wechat_databases.py #### 1. 获取图片解密密钥 ```bash -# GET请求获取密钥(需要微信正在运行以提取AES密钥) +# GET请求获取密钥(需要微信正在运行;部分版本需以管理员身份运行后端才能提取AES密钥) curl http://localhost:8000/api/media/keys # 强制重新提取密钥 @@ -243,4 +255,4 @@ curl http://localhost:8000/api/media/resource/{md5} --- -**免责声明**: 本工具仅供学习研究使用,使用者需自行承担使用风险。开发者不对因使用本工具造成的任何损失负责。 \ No newline at end of file +**免责声明**: 本工具仅供学习研究使用,使用者需自行承担使用风险。开发者不对因使用本工具造成的任何损失负责。 diff --git a/frontend/pages/decrypt.vue b/frontend/pages/decrypt.vue index 54970bb..1a370db 100644 --- a/frontend/pages/decrypt.vue +++ b/frontend/pages/decrypt.vue @@ -133,15 +133,27 @@
XOR 密钥 - +
AES 密钥 - - {{ mediaKeys.aes_key ? mediaKeys.aes_key.substring(0, 8) + '...' : '未获取' }} - +
@@ -151,6 +163,13 @@ {{ mediaKeys.message }} + +
+ + + + {{ copyMessage }} +
@@ -300,7 +319,7 @@

可能的失败原因:

@@ -411,6 +430,8 @@ const mediaKeys = reactive({ message: '' }) const mediaLoading = ref(false) +const copyMessage = ref('') +let copyMessageTimer = null // 图片解密相关 const mediaDecryptResult = ref(null) @@ -527,6 +548,53 @@ const fetchMediaKeys = async (forceExtract = false) => { } } +const _copyToClipboard = async (text) => { + if (!process.client || typeof window === 'undefined') return false + if (!text) return false + + try { + if (navigator?.clipboard?.writeText) { + await navigator.clipboard.writeText(text) + return true + } + } catch (e) { + // Ignore and fallback below + } + + try { + const textarea = document.createElement('textarea') + textarea.value = text + textarea.setAttribute('readonly', '') + textarea.style.position = 'fixed' + textarea.style.opacity = '0' + textarea.style.left = '-9999px' + textarea.style.top = '0' + document.body.appendChild(textarea) + textarea.select() + textarea.setSelectionRange(0, textarea.value.length) + const ok = document.execCommand('copy') + document.body.removeChild(textarea) + return ok + } catch (e) { + return false + } +} + +const _setCopyMessage = (message) => { + copyMessage.value = message + if (copyMessageTimer) clearTimeout(copyMessageTimer) + copyMessageTimer = setTimeout(() => { + copyMessage.value = '' + copyMessageTimer = null + }, 2000) +} + +const copyKey = async (label, value) => { + if (!value) return + const ok = await _copyToClipboard(value) + _setCopyMessage(ok ? `${label}已复制` : `${label}复制失败,请手动复制`) +} + // 批量解密所有图片(使用SSE实时进度) const decryptAllImages = async () => { mediaDecrypting.value = true @@ -633,4 +701,4 @@ onMounted(() => { } } }) - \ No newline at end of file + diff --git a/frontend/public/home.png b/frontend/public/home.png new file mode 100644 index 0000000000000000000000000000000000000000..82bbaef67fbdf30ad5b74ca88b35b8c3fde887b2 GIT binary patch literal 589993 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