Skip to content

possible reason the standalone exe gets false flagged since 1.6.1 #419

Description

@ricardoofnl

saw in #409 that the standalone exe (not the setup file) is the one getting false flagged and that it's unclear why. i diffed 1.5.2 against 1.6.1+ to see what actually changed inside the binary, and the delta turned out to be small. not claiming this is the answer, but one thing stands out

first, the stuff that did not change, so probably not worth chasing: the release profile is identical (codegen-units = 1, lto = true, opt-level = "z", strip = true), dll-syringe and the whole PROCESS_ALL_ACCESS + EnumProcessModulesEx vorbis wait loop were already in 1.5.2, actix-web was already a dependency, and the deeplink registration already existed. so the injection code itself isn't new, which probably explains why looking at it hasn't led anywhere

what is new is ipc.rs, that file didn't exist in 1.5.2 at all. since 77f556c the launcher binds a listening tcp socket at startup:

let listener = match TcpListener::bind(format!("127.0.0.1:{}", IPC_PORT)) {

src-tauri/src/ipc.rs#L45-L53, called from src-tauri/src/main.rs#L217 inside setup_tauri_app, so it runs on every launch even if you never join a server

that's what i'd look at first. a gui app that opens a listening socket at startup, parses text commands off it, creates windows in response (src-tauri/src/ipc.rs#L107-L113) and separately does CreateRemoteThread injection into another process is roughly the shape behavioral engines are trained to score as a backdoor. 1.5.2 had the injection but no listener, so it's the combination that's new, not either half. that would also fit the fact that the setup file and the standalone exe get flagged for different reasons

smaller second thing, the game exe target became configurable in src-tauri/src/injector.rs#L39-L51 where 1.5.2 had gta_sa.exe hardcoded. an injector whose target comes from config reads worse than one pinned to a known game, though i'd expect this to matter a lot less than the socket

if it's worth testing, cheapest experiment is one build with the listen_for_ipc call commented out and nothing else touched, then put both through virustotal. that isolates it in a single build instead of guessing. IPC_PORT is 45791, in src-tauri/src/constants.rs#L1

to be upfront, i haven't reproduced the detection myself, no windows machine here, so this is from reading the diff rather than testing. could easily be wrong, but the listener seemed worth flagging since it's the only genuinely new capability the exe gained in that range

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions