#!/bin/bash cd plugins/services # 使用awk清理Exploit函数的通用方法 clean_exploit() { local file=$1 echo "Cleaning $file..." awk ' BEGIN { skip = 0 brace_count = 0 } # 检测Exploit函数开始 /^func.*Exploit\(/ { skip = 1 brace_count = 0 next } # 在跳过模式下计算花括号 skip { brace_count += gsub(/\{/, "&") brace_count -= gsub(/\}/, "&") if (brace_count <= 0 && /\}/) { skip = 0 next } } # 输出非跳过的行 !skip { print } ' "$file" > "${file}.tmp" && mv "${file}.tmp" "$file" echo "✓ $file cleaned" } # 清理简单的服务插件 for file in ftp.go kafka.go ldap.go rabbitmq.go netbios.go rdp.go smtp.go snmp.go telnet.go vnc.go; do if [ -f "$file" ]; then clean_exploit "$file" fi done echo "Batch cleaning completed!"