This hypothesis targets the use of VxCompiler, a tool often employed by adversaries to compile malicious payloads into executable files, indicating a stage in the attack chain where code is being prepared for execution or persistence. Proactively hunting for this activity in Azure Sentinel allows the SOC to identify potential staging or build environments before the compiled binaries are deployed, reducing the window of opportunity for the attacker to establish a foothold.
rule VxCompiler
{
meta:
author="malware-lu"
strings:
$a0 = { 8C C3 83 C3 10 2E 01 1E ?? 02 2E 03 1E ?? 02 53 1E }
condition:
$a0 at pe.entry_point
}
This YARA rule can be deployed in the following contexts:
This rule contains 1 string patterns in its detection logic.
cl.exe (Microsoft C/C++ Compiler) as part of a standard build pipeline or local development task.
devenv.exe (Visual Studio IDE), msbuild.exe, or dotnet.exe, or where the executable path resides in C:\Program Files\Microsoft Visual Studio\ or C:\Program Files (x86)\Microsoft Visual Studio\.gcc.exe or g++.exe is invoked.
gcc.exe, g++.exe, or cc1plus.exe, and the parent process is make.exe, cmake.exe, or a known build orchestration tool like ninja.exe.go build or go install, which internally invokes the C compiler (often gcc.exe or clang.exe) for CGO packages.
go.exe or golang.exe, or where the command line arguments contain build, install, or test and the working directory is within a Go workspace (e.g., contains go.mod).cargo build, which invokes the system C compiler (e.g., cl.exe on Windows or gcc on Linux/WSL) for linking and native dependencies.
cargo.exe or `