Skip to content

Wire extract_resource_strings() into the extraction pipeline (PE resources are dead code) #207

Description

@unclesp1d3r

Summary

PE resource string extraction is fully implemented and unit-tested but is not wired into the extraction pipeline, so no resource strings ever reach output or ranking. This is the one remaining task for Feature 1 of the v0.2 epic (#40).

Evidence

extract_resource_strings() (src/extraction/pe_resources/mod.rs:217) has zero call sites in the live pipeline. Its only references are its own definition, doc comments, the re-export at src/extraction/mod.rs:146, and one integration test. There are no references in src/pipeline/ or src/extraction/basic_extractor.rs.

The PE parser only populates ContainerInfo.resources (Phase-1 metadata: type/language/size), and nothing downstream reads that field.

Net effect: stringy --only-tags version|manifest|resource <pe-with-resources> returns nothing, and the +40 ranking boosts for Version/Manifest/Resource (src/classification/ranking.rs:133-135) never fire.

Proposed fix

  • Call extract_resource_strings(data) from collect_all_strings() in src/extraction/basic_extractor.rs (or from the pipeline), and merge the returned FoundStrings into the existing dedup -> classify -> rank flow.
  • Ensure resource strings participate in deduplication and offset handling consistently with other sources.

Acceptance criteria

  • Resource strings from a PE with version info / manifest / string table reach CLI output
  • --only-tags version|manifest|resource returns the expected strings against a resource fixture
  • Version/Manifest/Resource ranking boosts are observable in scores
  • End-to-end integration test added (fixture-based) covering the resource path
  • just ci-check passes

Out of scope

  • Dialog/menu resource parsing (self-documented as unimplemented at src/extraction/pe_resources/mod.rs:39).

Context

Follow-up to #40 (Feature 1). Parsing logic is complete; this is an integration/wiring task.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions