shadow1ng/fscan · error

Failed to write header information: %w

Error message

Failed to write header information: %w

What it means

Wrap of a write failure in saveKeysToFile: after successfully opening the keylogger output file, writing the buffered header block (banner, start time, platform, event count) to it failed. The %w carries the underlying file-write error (e.g. disk full or closed file); the original os.OpenFile failure is reported by a separate error.

Source

Thrown at plugins/local/keylogger.go:185

		session.LogInfo(i18n.GetText("keylogger_no_input"))
		return nil
	}

	file, err := os.OpenFile(outputFile, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0600)
	if err != nil {
		return fmt.Errorf("%s: %w", i18n.GetText("output_file_open_failed"), err)
	}
	defer func() { _ = file.Close() }()

	// 写入头部信息
	header := i18n.GetText("keylogger_log_header") + "\n"
	header += i18n.Tr("local_start_time", time.Now().Format("2006-01-02 15:04:05")) + "\n"
	header += i18n.Tr("local_platform", runtime.GOOS) + "\n"
	header += i18n.Tr("keylogger_event_count", len(p.keyBuffer)) + "\n"
	header += "========================\n\n"

	if _, err := file.WriteString(header); err != nil {
		return fmt.Errorf("%s: %w", i18n.GetText("keylogger_header_write_failed"), err)
	}

	// 写入键盘记录
	for _, entry := range p.keyBuffer {
		if _, err := file.WriteString(entry + "\n"); err != nil {
			return fmt.Errorf("%s: %w", i18n.GetText("keylogger_entry_write_failed"), err)
		}
	}

	return nil
}

// 平台特定的键盘记录实现 - 简化版本,仅做演示
func (p *KeyloggerPlugin) startWindowsKeylogging(ctx context.Context) error {
	// Windows平台键盘记录实现
	// 在实际实现中需要使用Windows API
	p.addKeyToBuffer(i18n.GetText("keylogger_demo_windows"))

View on GitHub (pinned to 95cc12e753)

Solutions

  1. Check disk space and quotas on the output volume
  2. Retry the save; keystrokes remain in the in-memory buffer until flushed
  3. Write to a different location if the volume is failing
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at plugins/local/keylogger.go:185 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/f1c6ccc48f6c7708. Report an issue: GitHub.