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