PowerShell Launched With Encoded Command (Defender XDR)
- Reads
- Sysmon process creation
- Noisy scenarios
- 1 of 11
- Elasticsearch agrees
- Not compared
One tick per check in the latest run. Taller ticks are known gaps, and red ticks failed.
A detection-as-code pipeline with a video game security focus. Every rule has to catch a real test on a disposable Windows machine, and this page rebuilds itself from the results of the latest run.
Rules passing on real logs
10 of 10
Catch the attack and ignore normal activity.
Evasion variations caught
5 of 10
The misses are listed below, with reasons.
Normal scenarios that stay quiet
5 of 11
The rest set off at least one rule.
Results Elasticsearch agrees with
125 of 127
An independent engine, on the same logs.
Each rule runs on its own disposable Windows machine against a real test. To pass, it has to alert on the attack and stay quiet on normal activity.
Harmless variations of each game and license attack. Misses are recorded rather than hidden, and any change from the record fails the run.
Normal activity, scored against every rule. A rule that fires on normal behavior buries analysts in bad alerts.
Rules pass or fail on engines this project wrote, so the real logs also go into a real Elasticsearch, which runs the 9 Sigma rules after standard conversion. These are the results where the two disagree.
Mistakes and surprises that only showed up on real logs and real tools. Each one links to its run.
A command run with %VAR% was logged as %%VAR%%, so the simulated logs had to change to match.
The .NET runtime loads version.dll before the game's code runs, so the planted copy went unused. The rule was right to stay quiet, and the test was wrong.
A request for 0x0438 is logged as 0x1438, so a rule looking only for the requested value would miss it.
Building the same code gave different hashes across jobs, so the official hash can't be written into the rule.
Three rule fixes raised that to 5 of 10. The other misses stay on record with the reason each is hard to fix.
Raising the guessing threshold silenced small LAN events, at the cost of giving a guesser 19 tries instead of 9.
Elasticsearch rejected some converted queries outright, and its case-sensitive matching misses -EncodedCommand.
This project detects tampering. It contains no cracks, cheats, or bypass steps, and it never touches a real game, license service, or anti-cheat product.
Game rules protect FakeQuest, a harmless stand-in. A real game would need its own names, access values, and DLL lists.
Attacks and normal activity come from test scripts on disposable machines, so this can't say how often an alert would fire with real players.
Numbers such as 20 guessed keys show the tradeoff. A real team would choose them from real traffic.
The evasion variations only cover the game and license rules, and they aren't a complete list of ways around a rule.
Only Sigma rules are compared with Elasticsearch, on one version of the converter, and agreement only covers these logs.