<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="/v2/static/oai2.xsl"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-10-06T18:38:08Z</responseDate>
  <request identifier="oai:figshare.com:article/34030518" metadataPrefix="oai_dc" verb="GetRecord">https://api.figshare.com/v2/oai</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:figshare.com:article/34030518</identifier>
        <datestamp>2026-10-01T06:10:54Z</datestamp>
        <setSpec>category_29203</setSpec>
        <setSpec>item_type_3</setSpec>
        <setSpec>month_year_10_2026</setSpec>
      </header>
      <metadata>
        <oai_dc:dc xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>BinFuncGT</dc:title>
          <dc:creator>N A (25137249)</dc:creator>
          <dc:subject>Software engineering not elsewhere classified</dc:subject>
          <dc:subject>code and data</dc:subject>
          <dc:description>&lt;pre&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;pre&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;table&gt;&lt;tr&gt;&lt;th&gt;&lt;p dir="ltr"&gt;BinFuncGT&lt;/p&gt;&lt;p dir="ltr"&gt;BinFuncGT is a research framework for binary software composition analysis (BSCA). It provides function-level ground truth, static feature extraction, candidate retrieval, call-graph-aware structural matching, and evaluation of component and version identification.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;The project, benchmark, and construction utilities are named BinFuncGT. Python modules and filesystem paths use the lowercase spelling binfuncgt.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;Features&lt;/p&gt;&lt;p dir="ltr"&gt;Binary analysis: Parse ELF metadata, symbol tables, and DWARF information, and recover functions and call graphs with angr CFGFast.&lt;/p&gt;&lt;p dir="ltr"&gt;Function representation: Extract instruction counts, basic-block counts, control-flow edges, call sites, immediate-constant statistics, cyclomatic complexity, and mnemonic histograms.&lt;/p&gt;&lt;p dir="ltr"&gt;Candidate retrieval: Generate candidate function pairs using cosine similarity, a top-r selection rule, and a similarity threshold.&lt;/p&gt;&lt;p dir="ltr"&gt;Structural matching: Combine local similarity, preserved call relationships, and one-to-one matching constraints in a unified optimization objective.&lt;/p&gt;&lt;p dir="ltr"&gt;Reduction and classical solvers: Apply safe reductions and interaction-graph decomposition, with greedy, Hungarian, CP-SAT, simulated annealing, and small-instance exhaustive solvers.&lt;/p&gt;&lt;p dir="ltr"&gt;Function-level evaluation: Measure precision, recall, and F1 against raw and strict ground-truth correspondences.&lt;/p&gt;&lt;p dir="ltr"&gt;Version identification: Explore constant features, string features, differential weighting, and version-discriminative string scoring.&lt;/p&gt;&lt;p dir="ltr"&gt;Statistical analysis: Provide paired comparisons, ranking diagnostics, and Benjamini–Hochberg false discovery rate correction.&lt;/p&gt;&lt;p dir="ltr"&gt;Repository Structure&lt;/p&gt;&lt;p dir="ltr"&gt;The main directories and modules are organized as follows:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;.&lt;/p&gt;&lt;p dir="ltr"&gt;├── configs/                 # Benchmark and experiment configurations&lt;/p&gt;&lt;p dir="ltr"&gt;├── data/                    # Binary data, intermediate features, and instances&lt;/p&gt;&lt;p dir="ltr"&gt;├── experiments/&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── pilot/               # Matching, baseline, ablation, and ranking results&lt;/p&gt;&lt;p dir="ltr"&gt;│   │   └── score_cache_v2/  # Per-instance scoring caches&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── case_study/          # Debian case-study results and reports&lt;/p&gt;&lt;p dir="ltr"&gt;│   └── versiongrid_v3/      # Extended version-grid design and build records&lt;/p&gt;&lt;p dir="ltr"&gt;├── results/                 # Aggregate results, statistics, and logs&lt;/p&gt;&lt;p dir="ltr"&gt;├── scripts/                 # Experiment and report-generation entry points&lt;/p&gt;&lt;p dir="ltr"&gt;├── src/binfuncgt/&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── binary/              # ELF parsing, call graphs, and ground truth&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── data/                # BinFuncGT schemas and instance I/O&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── features/            # Static features and vectorization&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── retrieval/           # Candidate function retrieval&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── matching/            # Matching instances and objectives&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── reduction/           # Safe and heuristic reductions&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── solvers/             # Classical optimization methods&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── scoring/             # Downstream structural scores&lt;/p&gt;&lt;p dir="ltr"&gt;│   ├── evaluation/          # Evaluation metrics&lt;/p&gt;&lt;p dir="ltr"&gt;│   └── feasibility/         # Classical matching and solver statistics&lt;/p&gt;&lt;p dir="ltr"&gt;└── requirements.txt         # Pinned Python dependencies&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;Configuration&lt;/p&gt;&lt;p dir="ltr"&gt;The principal benchmark configurations are:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;ConfigurationExperiment setting&lt;/p&gt;&lt;p dir="ltr"&gt;configs/binkit_x86_v2.yamlSame-architecture matching across build variants&lt;/p&gt;&lt;p dir="ltr"&gt;configs/binkit_xarch_v2.yamlCross-architecture matching with the same compiler and optimization level&lt;/p&gt;&lt;p dir="ltr"&gt;configs/pilot_versiongrid_v2.yamlComponent and version comparisons on VersionGrid v2&lt;/p&gt;&lt;p dir="ltr"&gt;configs/pilot_versiongrid_v3.yamlExtended version-grid comparisons&lt;/p&gt;&lt;p dir="ltr"&gt;The x86 configuration name is historical: its pairing rule is arch_relation: same, covering matching architectures represented in the input corpus.&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;Common settings include:&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;ParameterMain protocol setting&lt;/p&gt;&lt;p dir="ltr"&gt;Candidate count per target functionr = 5&lt;/p&gt;&lt;p dir="ltr"&gt;Cosine-similarity threshold0.5&lt;/p&gt;&lt;p dir="ltr"&gt;Same-architecture feature setfull&lt;/p&gt;&lt;p dir="ltr"&gt;Cross-architecture feature setstructural&lt;/p&gt;&lt;p dir="ltr"&gt;Matching objective weightsalpha = beta = 1&lt;/p&gt;&lt;p dir="ltr"&gt;CP-SAT time budget60 seconds by default in the main scoring runners&lt;/p&gt;&lt;p dir="ltr"&gt;Structural score weights(0.5, 0.3, 0.2)&lt;/p&gt;&lt;p dir="ltr"&gt;Experiment Scripts&lt;/p&gt;&lt;p dir="ltr"&gt;ScriptPurpose&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq1_function_gt.pyFunction-level matching evaluation&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq1_function_gt_report.pyFunction-level result summaries and paired comparisons&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/run_feasibility.pyStructural matching and per-instance feasibility statistics&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/analyze_results.pyPilot result aggregation&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/score_v2.pyMulti-method benchmark scoring&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/report_v2.pyScoring-cache summaries and statistical comparisons&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/run_baselines.pyClassical baselines through run and summarize subcommands&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq5_feature_attribution.pyFeature attribution analysis&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq6_stripped.pyEvaluation with stripped target binaries&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq7_diff_weighted.pyDifferential feature-weighting experiments&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq7_tie_audit.pyTie and candidate-set diagnostics&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq7_str_scorer.pyVersion-discriminative string scoring&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/rq7_stats.pyStatistical comparisons of string-based methods&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/fdr_correction.pyBenjamini–Hochberg FDR correction&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/debian_case_study.pyDebian case-study evaluation&lt;/p&gt;&lt;p dir="ltr"&gt;scripts/debian_str_idf.pyString-IDF evaluation on Debian binaries&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/pre&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;</dc:description>
          <dc:date>2026-10-01T06:10:54Z</dc:date>
          <dc:type>Dataset</dc:type>
          <dc:type>Dataset</dc:type>
          <dc:identifier>10.6084/m9.figshare.34030518.v3</dc:identifier>
          <dc:relation>https://figshare.com/articles/dataset/BinFuncGT/34030518</dc:relation>
          <dc:rights>CC BY 4.0</dc:rights>
        </oai_dc:dc>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
