win脚本
This commit is contained in:
77
patch-ui-pro-win.sh
Executable file
77
patch-ui-pro-win.sh
Executable 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!"
|
Reference in New Issue
Block a user