shadow1ng/fscan · error
%s [unsupported_platform: %s]
Error message
%s [unsupported_platform: %s]
What it means
Returned by LDPreloadPlugin.Scan when runtime.GOOS is not linux: LD_PRELOAD persistence only applies to Linux, and the bracketed marker records the unsupported platform. The plugin aborts without side effects.
Source
Thrown at plugins/local/ldpreload.go:45
// NewLDPreloadPlugin 创建LD_PRELOAD持久化插件
func NewLDPreloadPlugin() *LDPreloadPlugin {
return &LDPreloadPlugin{
BasePlugin: plugins.NewBasePlugin("ldpreload"),
}
}
// Scan 执行LD_PRELOAD持久化 - 直接实现
func (p *LDPreloadPlugin) Scan(ctx context.Context, info *common.HostInfo, session *common.ScanSession) *plugins.Result {
config := session.Config
var output strings.Builder
if runtime.GOOS != "linux" {
output.WriteString(i18n.GetText("ldpreload_linux_only") + "\n")
return &plugins.Result{
Success: false,
Output: output.String(),
Error: fmt.Errorf("%s", i18n.Tr("unsupported_platform", runtime.GOOS)),
}
}
// 从config获取配置
targetFile := config.PersistenceTargetFile
if targetFile == "" {
output.WriteString(i18n.GetText("persistence_file_required") + "\n")
return &plugins.Result{
Success: false,
Output: output.String(),
Error: fmt.Errorf("%s", i18n.GetText("target_file_not_specified")),
}
}
// 检查目标文件是否存在
if _, err := os.Stat(targetFile); os.IsNotExist(err) {
output.WriteString(i18n.Tr("target_file_not_exist", targetFile) + "\n")
return &plugins.Result{View on GitHub (pinned to 95cc12e753)
Solutions
- Run the ldpreload plugin on a Linux target
- Use a platform-appropriate persistence plugin instead
- Skip persistence when the target OS is incompatible
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at plugins/local/ldpreload.go:45 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/2f8d78c2121b2d41.
Report an issue: GitHub.