Skip to content

fix(implant): changed embedding of vcc dlls in artefacts (#165) - #153

Merged
Gaetan Santucci (GaetanSantucci) merged 1 commit into
mainfrom
fix/165_Changed_vcc_libraries_embedding
Jun 22, 2026
Merged

fix(implant): changed embedding of vcc dlls in artefacts (#165)#153
Gaetan Santucci (GaetanSantucci) merged 1 commit into
mainfrom
fix/165_Changed_vcc_libraries_embedding

Conversation

@impolitepanda

Copy link
Copy Markdown
Member

Proposed changes

  • Moved rustflag building (including the +crt-static flag) from the github action to the cargo config so that any compile command will use it and embed the required libraries

Testing Instructions

  1. Build implant on a windows Arm64 machine
  2. Execute it on a windows Arm64 machine that doesn't have the VCC preinstalled

Related issues

Checklist

  • I consider the submitted work as finished
  • I tested the code for its functionality
  • I wrote test cases for the relevant uses case
  • I added/update the relevant documentation (either on github or on notion)
  • Where necessary I refactored code to improve the overall quality
  • For bug fix -> I implemented a test that covers the bug

Further comments

Copilot AI review requested due to automatic review settings June 9, 2026 14:09
@github-actions github-actions Bot added the filigran team Item from the Filigran team. label Jun 9, 2026
@Filigran-Automation Filigran Automation (Filigran-Automation) changed the title fix(agent): Changed embedding of vcc dlls in artefacts fix(agent): changed embedding of vcc dlls in artefacts Jun 9, 2026
@impolitepanda
Yann (impolitepanda) force-pushed the fix/165_Changed_vcc_libraries_embedding branch from 44006b6 to eb4238d Compare June 9, 2026 14:12

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR aims to ensure Windows MSVC builds (notably Windows ARM64) run on machines without the Visual C++ Redistributable by moving +crt-static into Cargo configuration, and adding a CI guard to detect accidental dynamic VCRUNTIME linkage.

Changes:

  • Move Windows MSVC -C target-feature=+crt-static from CI RUSTFLAGS to .cargo/config.toml.
  • Update the GitHub Actions release build step to avoid setting RUSTFLAGS (to prevent overriding Cargo’s target-specific flags).
  • Add a Windows-only CI verification step intended to fail the build if the produced binary imports VCRUNTIME dynamically.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
.github/workflows/implant-ci.yml Stops using CI RUSTFLAGS for release builds and adds a Windows CRT dependency verification step.
.cargo/config.toml Adds per-target Windows MSVC rustflags to force static CRT linkage.
Comments suppressed due to low confidence (3)

.github/workflows/implant-ci.yml:111

  • The Windows CRT verification step currently runs on pull_request builds too, but it checks for a release binary at ./target/.../release/.... On PRs, the workflow only builds debug binaries, so this step will fail (and it also points at openaev-agent.exe, which doesn’t match the actual package/binary name openaev-implant).
            ~/.cargo/registry/cache/
            ~/.cargo/git/db/
            target/
          key: cargo-clippy-${{ runner.os }}-${{ hashFiles('Cargo.lock') }}

.github/workflows/implant-ci.yml:114

  • rustup run stable llvm-objdump ... is not available unless the llvm-tools-preview component is installed for the toolchain. The workflow currently installs only clippy/rustfmt, so this step is likely to fail at runtime on GitHub runners.
      - name: Run cargo clippy
        run: cargo clippy --target=${{ matrix.target }} -- -D warnings

.github/workflows/implant-ci.yml:103

  • The release build previously stripped symbols via RUSTFLAGS="-C strip=symbols". Removing stripping changes artifact size and may unintentionally ship symbols. If stripping is still desired, prefer Cargo’s profile setting/env vars rather than RUSTFLAGS so the Windows +crt-static target flags from .cargo/config.toml aren’t overridden.
          components: clippy

      - name: Cache
        uses: actions/cache@v5
        with:

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .cargo/config.toml
@impolitepanda
Yann (impolitepanda) force-pushed the fix/165_Changed_vcc_libraries_embedding branch 3 times, most recently from b9d3520 to 26a25de Compare June 9, 2026 14:19
@impolitepanda Yann (impolitepanda) changed the title fix(agent): changed embedding of vcc dlls in artefacts fix(implant): changed embedding of vcc dlls in artefacts Jun 9, 2026
@impolitepanda
Yann (impolitepanda) force-pushed the fix/165_Changed_vcc_libraries_embedding branch from 26a25de to e34402f Compare June 9, 2026 14:22
@impolitepanda Yann (impolitepanda) changed the title fix(implant): changed embedding of vcc dlls in artefacts fix(implant): changed embedding of vcc dlls in artefacts (#165) Jun 9, 2026

@antoinemzs antoinemzs left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@GaetanSantucci
Gaetan Santucci (GaetanSantucci) merged commit 47fde57 into main Jun 22, 2026
22 checks passed
@GaetanSantucci
Gaetan Santucci (GaetanSantucci) deleted the fix/165_Changed_vcc_libraries_embedding branch June 22, 2026 07:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

filigran team Item from the Filigran team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants