win脚本

This commit is contained in:
2025-08-17 14:12:19 +08:00
parent b7d57a804d
commit 88002837b2

77
patch-ui-pro-win.sh Executable file
View File

@@ -0,0 +1,77 @@
# 绕过 UI Pro 的 License 验证 (Windows 11 兼容版)
set -euo pipefail
# 1. 禁用 module.mjs 的调用
MODULE="node_modules/@nuxt/ui-pro/dist/module.mjs"
if [[ -f $MODULE ]]; then
# Windows 兼容的 sed 命令
sed -i.bak 's/await validateLicense({.*rootDir })/\/\/ await validateLicense({...rootDir })/g' "$MODULE"
if [[ -f "$MODULE.bak" ]]; then
rm -f "$MODULE.bak"
fi
echo "✅ module.mjs 已屏蔽"
fi
# 2. 直接"替换函数" fake 200
SHARED="node_modules/@nuxt/ui-pro/dist/shared"
JS=$(find "$SHARED" -maxdepth 1 -name 'ui-pro.*.mjs' | head -n1)
[[ -z $JS || ! -f $JS ]] && { echo "⚠️ ui-pro.*.mjs 未找到"; exit 0; }
# 创建临时文件
cat <<'EOF' > tmp_func.mjs
async function validateLicense(opts) {
/* --- patched --- */
return { status: 200 }
}
EOF
# Windows 兼容的 sed 命令 - 使用更简单的方法
# 先备份原文件
cp "$JS" "$JS.backup"
# 使用 PowerShell 或 Node.js 来处理文件替换
if command -v node >/dev/null 2>&1; then
# 使用 Node.js 脚本进行替换
cat > tmp_replace.js <<'EOF'
const fs = require('fs');
const path = process.argv[2];
if (!fs.existsSync(path)) {
console.error('File not found:', path);
process.exit(1);
}
let content = fs.readFileSync(path, 'utf8');
// 替换 validateLicense 函数
const newFunction = `async function validateLicense(opts) {
/* --- patched --- */
return { status: 200 }
}`;
// 使用正则表达式匹配并替换整个函数
const functionRegex = /async function validateLicense\s*\([^)]*\)\s*\{[\s\S]*?\}/;
if (functionRegex.test(content)) {
content = content.replace(functionRegex, newFunction);
fs.writeFileSync(path, content, 'utf8');
console.log('✅ Function replaced successfully');
} else {
console.log('⚠️ validateLicense function not found, skipping...');
}
EOF
node tmp_replace.js "$JS"
rm -f tmp_replace.js
else
echo "⚠️ Node.js not found, using fallback method"
# 简单的文本替换作为后备方案
sed -i.bak 's/async function validateLicense.*{.*return { status: 200 }.*}/async function validateLicense(opts) {\n \/* --- patched --- *\/\n return { status: 200 }\n}/g' "$JS"
if [[ -f "$JS.bak" ]]; then
rm -f "$JS.bak"
fi
fi
rm -f tmp_func.mjs
echo "$JS 已 mock 完成"
echo "<22><> License ⛔ Done!"