Verify review fixes already applied in commit b27473d#53
Merged
unclesp1d3r merged 2 commits intoNov 10, 2025
Conversation
Contributor
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the Comment |
Copilot
AI
changed the title
[WIP] Add section weighting and improve ELF imports
Verify review fixes already applied in commit b27473d
Nov 9, 2025
…targeted-string-extraction' into copilot/sub-pr-45
f030278
into
1-implement-intelligent-elf-section-classification-for-targeted-string-extraction
7 checks passed
unclesp1d3r
added a commit
that referenced
this pull request
Nov 10, 2025
* docs(steering): Adds development standards and workflow Adds a comprehensive development standards document to standardize Rust code quality, error handling, testing, tooling, documentation, dependency selection, and performance practices across the project. Defines concrete expectations (e.g., no unsafe in application code, clippy warnings as errors, rustfmt, Just-based tasks, >85% test coverage, use of thiserror/anyhow, preferred crates, benchmarking and profiling guidance) to improve CI enforcement, consistency, contributor onboarding, and reduce regressions and performance issues. * docs(steering): Updates testing and performance guidance Refines the testing and tooling section to focus on project-specific needs, clarifying intended uses for insta and criterion in binary analysis workflows. Removes generic build command listings to keep the guide concise and actionable for contributors. Adds concrete performance recommendations: use memmap2 for large binaries, defer expensive features via lazy evaluation, compile and cache regexes once, and skip irrelevant sections during extraction to improve speed and memory usage. Makes onboarding and optimization guidance more practical for the binary-analysis project. * docs(specs): expand stringy-binary-analyzer task list Updates the task checklist to more fully specify the foundational project structure, core data types, and container parsing work to guide implementation. Adds a detailed module hierarchy and definitions for core types (string records, encodings, semantic tags, container/section metadata), and introduces a comprehensive error-handling framework and Result alias. Expands format-detection planning by specifying a ContainerParser trait and parser stubs for ELF/PE/Mach-O with basic section enumeration and unit tests. Clarifies requirement mappings and refines checklist items to better sequence future work. Improves planning clarity and prepares the codebase for subsequent implementation of section classification and extraction features. * chore(ci): Normalizes GitHub Actions YAML Normalizes indentation and spacing across GitHub Actions workflow files to a consistent 2-space style. Trims trailing whitespace and fixes end-of-file newline in lint and tooling configuration files, and removes an extra blank line in the task runner. Improves readability, reduces noise in diffs, and helps avoid formatting-related lint warnings; no functional behavior changes. * feat(container): add section-weight heuristics and improve ELF import extraction Add heuristics to score sections by likelihood of containing meaningful strings and improve ELF symbol extraction to better identify imports. Section weighting is introduced for ELF, Mach-O and PE parsers so string extraction can prioritize likely string-bearing sections (e.g., rodata, __cstring, .rdata) over code or debug segments. Section classification remains based on name and flags, but a numeric weight now accompanies section metadata to guide downstream analysis. ELF symbol handling is improved by expanding import detection to consider both dynamic and regular symbol tables, accepting global/weak bindings and multiple symbol types, skipping empty names, and providing a placeholder hook to derive library info from DT_NEEDED entries (returns None for accuracy until deeper relocation analysis is added). These changes increase reliability of import/export discovery and tagging. Additionally, parsers are re-exported for easier access and a suite of unit and integration tests were added to validate section weighting, classification, and symbol filtering behavior. Minor docs/task checklist and linter formatting tweaks are included. Future enhancement: map symbols to specific libraries by analyzing PLT/GOT/relocations for more precise library attribution. * docs: Updates docs to reflect core implementation Updates documentation to accurately represent current project progress and capabilities. Clarifies that the core container parsing, section classification (with weighting), and import/export symbol extraction are implemented and type-safe, while string extraction engines, semantic classification, ranking, output formatters, and advanced CLI features remain in development. Adds architecture and usage details (trait-based parser design, section weight system, data model) and updates CLI/quickstart guidance to show basic command support. Provides clearer guidance for contributors and users so expectations align with the codebase and to reduce confusion about implemented vs planned features. * 📝 CodeRabbit Chat: integration_elf: add static import/export test; rename dynamic test * 📝 CodeRabbit Chat: Add static ELF import/export extraction test * fix: Remove duplicate tests and correct static/dynamic ELF test behavior (#52) * Initial plan * fix: Remove duplicate tests and fix static/dynamic ELF test assertions Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * chore: Update cargo-dist to 0.30.2 Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * fix: Resolve integration test failures and enhance static binary export extraction (#51) * Initial plan * fix: CI test failures and improve ELF export extraction Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * perf: optimize export deduplication with HashSet (O(1) vs O(n)) Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> --------- Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> Co-authored-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> * fix: Skip ELF integration tests on non-Unix platforms (#54) * Initial plan * fix: Skip ELF integration tests on Windows (non-Unix platforms) Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * Verify review fixes already applied in commit b27473d (#53) Initial plan Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> --------- Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
unclesp1d3r
added a commit
that referenced
this pull request
Feb 25, 2026
* docs(steering): Adds development standards and workflow Adds a comprehensive development standards document to standardize Rust code quality, error handling, testing, tooling, documentation, dependency selection, and performance practices across the project. Defines concrete expectations (e.g., no unsafe in application code, clippy warnings as errors, rustfmt, Just-based tasks, >85% test coverage, use of thiserror/anyhow, preferred crates, benchmarking and profiling guidance) to improve CI enforcement, consistency, contributor onboarding, and reduce regressions and performance issues. * docs(steering): Updates testing and performance guidance Refines the testing and tooling section to focus on project-specific needs, clarifying intended uses for insta and criterion in binary analysis workflows. Removes generic build command listings to keep the guide concise and actionable for contributors. Adds concrete performance recommendations: use memmap2 for large binaries, defer expensive features via lazy evaluation, compile and cache regexes once, and skip irrelevant sections during extraction to improve speed and memory usage. Makes onboarding and optimization guidance more practical for the binary-analysis project. * docs(specs): expand stringy-binary-analyzer task list Updates the task checklist to more fully specify the foundational project structure, core data types, and container parsing work to guide implementation. Adds a detailed module hierarchy and definitions for core types (string records, encodings, semantic tags, container/section metadata), and introduces a comprehensive error-handling framework and Result alias. Expands format-detection planning by specifying a ContainerParser trait and parser stubs for ELF/PE/Mach-O with basic section enumeration and unit tests. Clarifies requirement mappings and refines checklist items to better sequence future work. Improves planning clarity and prepares the codebase for subsequent implementation of section classification and extraction features. * chore(ci): Normalizes GitHub Actions YAML Normalizes indentation and spacing across GitHub Actions workflow files to a consistent 2-space style. Trims trailing whitespace and fixes end-of-file newline in lint and tooling configuration files, and removes an extra blank line in the task runner. Improves readability, reduces noise in diffs, and helps avoid formatting-related lint warnings; no functional behavior changes. * feat(container): add section-weight heuristics and improve ELF import extraction Add heuristics to score sections by likelihood of containing meaningful strings and improve ELF symbol extraction to better identify imports. Section weighting is introduced for ELF, Mach-O and PE parsers so string extraction can prioritize likely string-bearing sections (e.g., rodata, __cstring, .rdata) over code or debug segments. Section classification remains based on name and flags, but a numeric weight now accompanies section metadata to guide downstream analysis. ELF symbol handling is improved by expanding import detection to consider both dynamic and regular symbol tables, accepting global/weak bindings and multiple symbol types, skipping empty names, and providing a placeholder hook to derive library info from DT_NEEDED entries (returns None for accuracy until deeper relocation analysis is added). These changes increase reliability of import/export discovery and tagging. Additionally, parsers are re-exported for easier access and a suite of unit and integration tests were added to validate section weighting, classification, and symbol filtering behavior. Minor docs/task checklist and linter formatting tweaks are included. Future enhancement: map symbols to specific libraries by analyzing PLT/GOT/relocations for more precise library attribution. * docs: Updates docs to reflect core implementation Updates documentation to accurately represent current project progress and capabilities. Clarifies that the core container parsing, section classification (with weighting), and import/export symbol extraction are implemented and type-safe, while string extraction engines, semantic classification, ranking, output formatters, and advanced CLI features remain in development. Adds architecture and usage details (trait-based parser design, section weight system, data model) and updates CLI/quickstart guidance to show basic command support. Provides clearer guidance for contributors and users so expectations align with the codebase and to reduce confusion about implemented vs planned features. * 📝 CodeRabbit Chat: integration_elf: add static import/export test; rename dynamic test * 📝 CodeRabbit Chat: Add static ELF import/export extraction test * fix: Remove duplicate tests and correct static/dynamic ELF test behavior (#52) * Initial plan * fix: Remove duplicate tests and fix static/dynamic ELF test assertions Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * chore: Update cargo-dist to 0.30.2 Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * fix: Resolve integration test failures and enhance static binary export extraction (#51) * Initial plan * fix: CI test failures and improve ELF export extraction Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * perf: optimize export deduplication with HashSet (O(1) vs O(n)) Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> --------- Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> Co-authored-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> * fix: Skip ELF integration tests on non-Unix platforms (#54) * Initial plan * fix: Skip ELF integration tests on Windows (non-Unix platforms) Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: unclesp1d3r <251112+unclesp1d3r@users.noreply.github.com> * Verify review fixes already applied in commit b27473d (#53) Initial plan Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> --------- Signed-off-by: UncleSp1d3r <unclesp1d3r@evilbitlabs.io> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The review comments on commit c9b32db identified duplicate test attributes and missing imports. These were already fixed in commit b27473d (PR #52).
Verified fixes:
#[test]attribute intests/integration_elf.rs:138-139tempfile::TempDir,std::fs::File,std::io::Write) totests/integration_elf.rstest_symbol_filtering_criteriafromsrc/container/elf.rstest_import_export_methods_existfromsrc/container/elf.rsValidation:
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.