This rule detects the presence of eXPressor v13, a commercial packer frequently abused by adversaries to compress executables and obscure their code from static analysis tools. Proactively hunting for this indicator in Azure Sentinel allows the SOC team to identify potentially packed malware or trojans that may be evading signature-based detections on endpoints.
rule eXPressor_v13_CGSoftLabs: PEiD
{
strings:
$a = { 45 78 50 72 2D 76 2E 31 2E 33 2E }
$b = { 55 8B EC 83 EC ?? 53 56 57 EB 0C 45 78 50 72 2D 76 2E 31 2E 33 2E 2E B8 ?? ?? ?? ?? 2B 05 ?? ?? ?? ?? A3 ?? ?? ?? ?? 83 3D ?? ?? ?? ?? 00 74 13 A1 ?? ?? ?? ?? 03 05 ?? ?? ?? ?? 89 ?? ?? E9 ?? ?? 00 00 C7 05 }
condition:
for any of ($*) : ( $ at pe.entry_point )
}
This YARA rule can be deployed in the following contexts:
This rule contains 2 string patterns in its detection logic.
Scenario: A developer or DevOps engineer uses eXPressor v13 to protect a proprietary .NET application (e.g., a custom internal tool or microservice) before deployment to the production environment. The YARA rule triggers on the specific version string or structural markers of the protector.
C:\BuildAgent\artifacts\, D:\CI\output\) or files with specific naming conventions (e.g., *.protected.dll, *.obfuscated.exe) that are generated by the CI/CD pipeline.Scenario: An IT administrator runs a one-time maintenance script using a small utility compiled with eXPressor v13 to clean up temporary files or rotate logs on a domain controller. The utility is stored in a standard admin tools folder and executed via a scheduled task.
C:\AdminTools\, C:\Scripts\Maintenance\) and exclude executions initiated by the SYSTEM or NT AUTHORITY\NETWORK SERVICE accounts if the file size is under a certain threshold (e.g., < 5MB).Scenario: A QA engineer tests a new release of a client-facing application that has been packed with eXPressor v13 for performance optimization. The test instance is run from a dedicated test drive or folder on a jump box.
C:\QA\Staging\, D:\TestEnvironments\) and exclude executions where the parent process is a known IDE or test runner (e.g., dotnet.exe, testhost.exe, VisualStudio.exe).**Scenario