shadow1ng/fscan · error
fingerprint_enhanced_parse_failed
fingerprint_enhanced_parse_failed
Error message
fingerprint_enhanced_parse_failed: %w
What it means
Guard in LoadEnhancedFingerprints: json.Unmarshal of the embedded fingerprint-hub data into []*EnhancedFingerprint failed. The bundled fingerprint database is malformed or structurally incompatible with the struct definitions, so the enhanced fingerprint engine cannot initialize.
Source
Thrown at webscan/fingerprint/enhanced.go:61
} `json:"http"`
}
// EnhancedFingerprintDB 增强指纹数据库
type EnhancedFingerprintDB struct {
Fingerprints []*EnhancedFingerprint
regexCache sync.Map // pattern → *regexp.Regexp,无锁并发安全
}
var (
enhancedDB *EnhancedFingerprintDB
enhancedDBOnce sync.Once // 保证只初始化一次
)
// LoadEnhancedFingerprints 加载增强指纹库
func LoadEnhancedFingerprints() error {
var fps []*EnhancedFingerprint
if err := json.Unmarshal(fingerprintHubData, &fps); err != nil {
return fmt.Errorf("%s: %w", i18n.GetText("fingerprint_enhanced_parse_failed"), err)
}
// 预处理:CaseInsensitive 的 matcher 预先小写化 Words,避免匹配时重复分配
for _, fp := range fps {
for hi := range fp.HTTP {
for mi := range fp.HTTP[hi].Matchers {
m := &fp.HTTP[hi].Matchers[mi]
if m.CaseInsensitive && m.Type == "word" {
for wi, w := range m.Words {
m.Words[wi] = strings.ToLower(w)
}
}
}
}
}
enhancedDB = &EnhancedFingerprintDB{
Fingerprints: fps,View on GitHub (pinned to 95cc12e753)
Solutions
- Validate the embedded fingerprint JSON against the EnhancedFingerprint schema
- Update struct tags to match the upstream fingerprint-hub format
- Re-embed a known-good copy of the fingerprint data
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at webscan/fingerprint/enhanced.go:61 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06).
Data as JSON: /api/errors/eeb38d47dcc58eab.
Report an issue: GitHub.