From d48d9fa1d047e921254c4cd6852cff4fdebee1a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=85=8E=E9=A5=BC=E6=9E=9C=E5=AD=90=E5=8D=B7=E9=B2=A8?= =?UTF-8?q?=E9=B1=BC=E8=BE=A3=E6=A4=92?= Date: Tue, 22 Apr 2025 11:46:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=B4=E6=97=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=B3=BB=E7=BB=9F=20MAC=20=E5=9C=B0=E5=9D=80=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E5=85=81=E8=AE=B8=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=9C=A8=E4=B8=8D=E9=87=8D=E5=90=AF=E7=9A=84=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=E6=9B=B4=E6=94=B9=E4=B8=BB=E7=BD=91=E7=BB=9C=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=20MAC=20=E5=9C=B0=E5=9D=80=E3=80=82=E6=AD=A4?= =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=8C=85=E6=8B=AC=E8=87=AA=E5=8A=A8=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E4=B8=BB=E7=BD=91=E7=BB=9C=E6=8E=A5=E5=8F=A3=E3=80=81?= =?UTF-8?q?=E7=94=9F=E6=88=90=E9=9A=8F=E6=9C=BA=20MAC=20=E5=9C=B0=E5=9D=80?= =?UTF-8?q?=E5=B9=B6=E6=89=A7=E8=A1=8C=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E5=9C=A8=E6=97=A5=E5=BF=97=E4=B8=AD=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E4=BF=A1=E6=81=AF=E5=92=8C=E8=AD=A6=E5=91=8A?= =?UTF-8?q?=E3=80=82=E6=9B=B4=E6=96=B0=E4=BA=86=E4=B8=BB=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E6=B5=81=E7=A8=8B=E4=BB=A5=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=AD=A4=E5=8A=9F=E8=83=BD=EF=BC=8C=E7=A1=AE?= =?UTF-8?q?=E4=BF=9D=E7=94=A8=E6=88=B7=E5=9C=A8=E4=BD=BF=E7=94=A8=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=97=B6=E4=BA=86=E8=A7=A3=E7=9B=B8=E5=85=B3=E9=A3=8E?= =?UTF-8?q?=E9=99=A9=E5=92=8C=E6=93=8D=E4=BD=9C=E5=BD=B1=E5=93=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/run/cursor_mac_id_modifier.sh | 83 ++++++++++++++++----------- 1 file changed, 51 insertions(+), 32 deletions(-) diff --git a/scripts/run/cursor_mac_id_modifier.sh b/scripts/run/cursor_mac_id_modifier.sh index a531714..81c4920 100644 --- a/scripts/run/cursor_mac_id_modifier.sh +++ b/scripts/run/cursor_mac_id_modifier.sh @@ -154,6 +154,53 @@ backup_config() { fi } +# 修改系统 MAC 地址 (临时) +change_system_mac_address() { + log_info "开始尝试修改系统 MAC 地址..." + echo + echo -e "${YELLOW}[警告]${NC} 即将尝试修改您主网络接口的 MAC 地址。" + echo -e "${YELLOW}[警告]${NC} 此更改是 ${RED}临时${NC} 的,将在您重启 Mac 后恢复为原始地址。" + echo -e "${YELLOW}[警告]${NC} 修改 MAC 地址可能会导致临时的网络中断或连接问题。" + echo -e "${YELLOW}[警告]${NC} 请确保您了解相关风险。此操作主要影响本地网络识别,而非互联网身份。" + echo + + # 尝试自动检测主网络接口 (Wi-Fi 或 Ethernet) + local primary_interface=$(networksetup -listallhardwareports | awk '/Hardware Port: (Wi-Fi|Ethernet)/{getline; print $2}' | head -n 1) + + if [ -z "$primary_interface" ]; then + log_warn "未能自动检测到主要的 Wi-Fi 或以太网接口。默认尝试使用 'en0'。" + primary_interface="en0" + else + log_info "检测到主网络接口: $primary_interface" + fi + + # 获取当前 MAC 地址用于日志记录 + local current_mac=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') + log_info "接口 '$primary_interface' 当前 MAC 地址: $current_mac" + + # 生成随机 MAC 地址 (保留本地管理位,避免冲突) + # OUI (前三字节) 可以是任意的,这里使用 02 (本地管理) 开头确保不与厂商 OUI 冲突 + local random_mac=$(printf '02:%02x:%02x:%02x:%02x:%02x' $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256)) $((RANDOM%256))) + log_info "生成新的随机 MAC 地址: $random_mac" + + log_info "执行命令: sudo ifconfig $primary_interface ether $random_mac" + if sudo ifconfig "$primary_interface" ether "$random_mac"; then + log_info "成功将接口 '$primary_interface' 的 MAC 地址临时修改为: $random_mac" + local new_mac_check=$(ifconfig "$primary_interface" | awk '/ether/{print $2}') + log_info "验证新 MAC 地址: $new_mac_check" + if [ "$new_mac_check" != "$random_mac" ]; then + log_warn "验证失败,MAC 地址似乎未成功设置。" + fi + echo -e "${GREEN}已临时修改接口 '$primary_interface' 的 MAC 地址。重启后恢复。${NC}" + else + log_error "修改接口 '$primary_interface' 的 MAC 地址失败。" + log_error "请检查接口名称是否正确,或尝试手动执行: sudo ifconfig $primary_interface ether <新MAC地址>" + echo -e "${RED}修改 MAC 地址失败。请检查日志: $LOG_FILE ${NC}" + # 即使失败也继续执行脚本的其他部分 + fi + echo +} + # 生成随机 ID generate_random_id() { # 生成32字节(64个十六进制字符)的随机数 @@ -224,34 +271,6 @@ modify_or_add_config() { return 0 } -# 生成新的配置 -generate_new_config() { - echo - log_warn "机器码处理" - - # 默认不重置机器码 - reset_choice=0 - - # 记录日志以便调试 - echo "[INPUT_DEBUG] 机器码重置选项: 不重置 (默认)" >> "$LOG_FILE" - - # 处理 - 默认为不重置 - log_info "默认不重置机器码,将仅修改js文件" - - # 确保配置文件目录存在 - if [ -f "$STORAGE_FILE" ]; then - log_info "发现已有配置文件: $STORAGE_FILE" - - # 备份现有配置(以防万一) - backup_config - else - log_warn "未找到配置文件,这是正常的,脚本将跳过ID修改" - fi - - echo - log_info "配置处理完成" -} - # 清理 Cursor 之前的修改 clean_cursor_app() { log_info "尝试清理 Cursor 之前的修改..." @@ -981,7 +1000,7 @@ main() { log_info "当前用户: $CURRENT_USER" log_cmd_output "sw_vers" "macOS 版本信息" log_cmd_output "which codesign" "codesign 路径" - log_cmd_output "ls -la \"$CURSOR_APP_PATH\"" "Cursor 应用信息" + log_cmd_output "ls -ld "$CURSOR_APP_PATH"" "Cursor 应用信息" # 新增环境检查 if [[ $(uname) != "Darwin" ]]; then @@ -1005,7 +1024,7 @@ main() { echo -e "${YELLOW} 一起交流更多Cursor技巧和AI知识(脚本免费、关注公众号加群有更多技巧和大佬) ${NC}" echo -e "${BLUE}================================${NC}" echo - echo -e "${YELLOW}[重要提示]${NC} 本工具优先修改js文件,更加安全可靠" + echo -e "${YELLOW}[重要提示]${NC} 本工具默认会修改系统 MAC 地址 (临时) 并修改 JS 文件以重置设备标识。" echo -e "${YELLOW}[重要提示]${NC} 本工具免费,如果对您有帮助,请关注公众号【煎饼果子卷AI】" echo @@ -1014,8 +1033,8 @@ main() { check_and_kill_cursor backup_config - # 处理配置文件,默认不重置机器码 - generate_new_config + # 新增:默认执行系统 MAC 地址修改 + change_system_mac_address # 执行主程序文件修改 log_info "正在执行主程序文件修改..."