feat: 支持 Windows WCDB 解密与打包

This commit is contained in:
电摇小子
2026-07-14 10:15:36 +08:00
committed by 电摇小子
parent 3dbc11c19d
commit 267730d59e
39 changed files with 2194 additions and 268 deletions
+37
View File
@@ -0,0 +1,37 @@
import fs from 'fs'
import path from 'path'
function prependPath(values: string[]): void {
if (process.platform !== 'win32') return
const existing = process.env.PATH || ''
const next = Array.from(new Set(values.filter(Boolean))).join(path.delimiter)
process.env.PATH = next ? `${next}${path.delimiter}${existing}` : existing
process.env.Path = process.env.PATH
}
try {
const archDir = process.arch === 'arm64' ? 'arm64' : 'x64'
const resourceRoots = [
path.join(process.cwd(), 'resources'),
path.join(process.cwd(), 'resources', 'resources'),
path.join(process.resourcesPath || '', 'resources'),
process.resourcesPath || ''
].filter((value, index, list) => value && list.indexOf(value) === index && fs.existsSync(value))
const resourcesRoot = resourceRoots[0] || path.join(process.cwd(), 'resources')
const dllDirs = resourceRoots.flatMap((root) => [
root,
path.join(root, 'wcdb', 'win32', archDir),
path.join(root, 'wcdb', 'win32', 'x64'),
path.join(root, 'key', 'win32', archDir),
path.join(root, 'key', 'win32', 'x64'),
path.join(root, 'runtime', 'win32')
])
process.env.WCDB_RESOURCES_PATH = process.env.WCDB_RESOURCES_PATH || resourcesRoot
process.env.WEFLOW_PROJECT_NAME = process.env.WEFLOW_PROJECT_NAME || 'WeFlow'
prependPath(dllDirs.filter((dir) => fs.existsSync(dir)))
} catch (error) {
console.error('[WechatExplorer] failed to enforce local DLL priority:', error)
}