Question Analysis

You notice rundll32.exe being used with desk.cpl,InstallScreenSaver on a Windows endpoint. Investigate your process creation logs to find which .scr file was loaded by this unusual invocation.

83a95136-a496-423c-81d3-1c6750133917
Question ID
12/23
Models Correct
1
Valid Answer
52%
Success Rate
Reference Answer

Human-validated correct answer for this question

not_an_scr.scr
Model Performance Comparison

See how different AI models performed on this question

ModelAnswerKQL QueryStatusAttemptsTimeCost
gemini-2.5-flash-preview-04-17
not_an_scr.scr
DeviceProcessEvents | where FileName == "rundll32.exe" | where ProcessCommandLine contains "desk.cpl,InstallScreenSaver" | extend ScreenSaverFile = extract(@',InstallScreenSaver (.*\.scr)', 1, ProcessCommandLine) | project Timestamp, DeviceName, ProcessCommandLine, ScreenSaverFile
Correct
1
8.49s
0.0028
gpt-35-turbo
No answer provided
No query generated
Incorrect
5
0.00s
0.0118
gpt-4-turbo-2024-04-09
No answer provided
No query generated
Incorrect
5
0.00s
0.2488
gpt-4.1
not_an_scr.scr
DeviceProcessEvents | where FileName =~ "rundll32.exe" | where ProcessCommandLine has "desk.cpl,InstallScreenSaver" and ProcessCommandLine contains ".scr" | extend ScreenSaverPath = extract(@"([A-Za-z]:\\[^ ]+?\.scr)", 1, ProcessCommandLine) | project TimeGenerated, DeviceName, AccountName, ProcessCommandLine, ScreenSaverPath | order by TimeGenerated desc
Correct
1
3.93s
0.0111
gpt-4.1-finetuned
not_an_scr.scr
// This query targets rundll32.exe invocations of desk.cpl for InstallScreenSaver DeviceProcessEvents | where InitiatingProcessCommandLine has "rundll32.exe" and InitiatingProcessCommandLine has ",InstallScreenSaver" | where FileName =~ "rundll32.exe" and ProcessCommandLine has ",InstallScreenSaver" | project TimeGenerated, DeviceName, ProcessCommandLine, InitiatingProcessCommandLine, FileName, ProcessCreationTime, AccountName, AccountDomain
Correct
1
6.79s
0.0114
gpt-4.1-mini
not_an_scr.scr
DeviceProcessEvents | where ProcessCommandLine has "desk.cpl,InstallScreenSaver" and FileName =~ "rundll32.exe" | extend LoadedScrFile = extract(@"\b([\w\.-]+\.scr)\b", 1, ProcessCommandLine) | project DeviceName, ProcessCreationTime, ProcessCommandLine, LoadedScrFile | where isnotempty(LoadedScrFile) | order by ProcessCreationTime desc
Correct
1
3.60s
0.0023
gpt-4.1-nano
not_an_scr.scr
DeviceProcessEvents | where FileName has "rundll32.exe" | where ProcessCommandLine contains "desk.cpl,InstallScreenSaver" | project ProcessId, ProcessCommandLine, InitiatingProcessFileName, InitiatingProcessFolderPath, InitiatingProcessCreationTime | extend loadedScrFile = extract(@"(\w+\.scr)", 1, ProcessCommandLine) | where isnotempty(loadedScrFile)
Correct
2
174.80s
0.0140
gpt-4o
not_an_scr.scr
DeviceProcessEvents | where InitiatingProcessCommandLine contains "desk.cpl,InstallScreenSaver" | where ProcessCommandLine contains ".scr" | project FileName, FolderPath, ProcessCommandLine, InitiatingProcessCommandLine, TimeGenerated, DeviceName
Correct
3
30.91s
0.0411
gpt-5-high
not_an_scr.scr
DeviceProcessEvents | where ActionType == "ProcessCreated" | where FileName =~ "rundll32.exe" | where ProcessCommandLine has "InstallScreenSaver" and ProcessCommandLine has "desk.cpl" // Try to capture a quoted .scr argument first, then fall back to unquoted | extend ScreenSaverFile = coalesce( extract(@'(?i)"([^"]+\.scr)"', 1, ProcessCommandLine), extract(@'(?i)([^\s,]+\.scr)', 1, ProcessCommandLine) ) | where isnotempty(ScreenSaverFile) | project TimeGenerated, DeviceName, AccountDomain, AccountName, FileName, FolderPath, ProcessCommandLine, ScreenSaverFile, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessParentFileName, InitiatingProcessParentId | order by TimeGenerated desc
Correct
3
213.83s
0.1247
gpt-5-mini-high
not_an_scr.scr
// Find rundll32.exe invocations that call desk.cpl,InstallScreenSaver and show which .scr was used or loaded let rundll = DeviceProcessEvents | where FileName =~ "rundll32.exe" | where ProcessCommandLine has "desk.cpl" and ProcessCommandLine has "InstallScreenSaver" // Try to extract a full-path .scr from the command line (case-insensitive) | extend ScrFromCmd = extract(@"(?i)([a-zA-Z]:\\[^\"" ]+?\.scr)", 1, ProcessCommandLine) // Fallback: extract any bare name.scr if full path wasn't present | extend ScrFromCmd = iff(isempty(ScrFromCmd), extract(@"(?i)([^\\/\s]+?\.scr)", 1, ProcessCommandLine), ScrFromCmd) | extend InitiatingProcessIdProc = ProcessId | project TimeGenerated, DeviceName, ProcessId, InitiatingProcessIdProc, ProcessCreationTime, AccountName, ProcessCommandLine, ScrFromCmd; let imageLoads = DeviceImageLoadEvents | where FileName endswith ".scr" | project TimeGeneratedImage = TimeGenerated, DeviceName, LoadedFileName = FileName, FolderPath, InitiatingProcessId, SHA256, MD5; let fileEvents = DeviceFileEvents | where FileName endswith ".scr" | project TimeGeneratedFile = TimeGenerated, DeviceName, FileName, FolderPath, InitiatingProcessId, FileOriginUrl, FileOriginIP, SHA256; rundll // join image loads where the rundll process (ProcessId) is the initiator of the image load | join kind=leftouter (imageLoads) on $left.DeviceName == $right.DeviceName and $left.InitiatingProcessIdProc == $right.InitiatingProcessId // also join any file events for .scr files associated with the same rundll process | join kind=leftouter (fileEvents) on $left.DeviceName == $right.DeviceName and $left.InitiatingProcessIdProc == $right.InitiatingProcessId | project DetectionTime = TimeGenerated, DeviceName, ProcessId, ProcessCreationTime, AccountName, ProcessCommandLine, ScrFromCmd, LoadedFileName, FolderPath, FileName, // from DeviceFileEvents (may be null) SHA256 = coalesce(SHA256, SHA2561 = SHA256), MD5, TimeGeneratedImage, TimeGeneratedFile | order by DetectionTime desc // Notes: If your portal sets the time range externally, you don't need to add a TimeGenerated filter. Otherwise add e.g. | where TimeGenerated >= ago(7d) to limit the window.
Correct
1
35.89s
0.0075
gpt-5-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0229
gpt-5-mini-medium
No answer provided
No query generated
Incorrect
5
0.00s
0.0151
gpt-5-nano-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0072
gpt-5-nano-medium
No answer provided
No query generated
Incorrect
5
0.00s
0.0069
grok-3-beta
No answer provided
No query generated
Incorrect
5
0.00s
0.0917
grok-3-mini-beta
not_an_scr.scr
DeviceProcessEvents | where FileName == 'rundll32.exe' | where ProcessCommandLine contains 'desk.cpl' and ProcessCommandLine contains 'InstallScreenSaver' | extend ScrFile = extract(@'(?i)rundll32\.exe\s+desk\.cpl,InstallScreenSaver\s+([^\s]+\.scr)', 1, ProcessCommandLine) | project TimeGenerated, DeviceName, ProcessCommandLine, ScrFile | order by TimeGenerated desc
Correct
1
12.77s
0.0016
o1-high
not_an_scr.scr
DeviceProcessEvents | where FileName =~ "rundll32.exe" | where ProcessCommandLine has "desk.cpl,InstallScreenSaver" | extend LoadedScr = extract(@"desk\.cpl,InstallScreenSaver\s+([^\s]+\.scr)", 1, ProcessCommandLine) | where isnotempty(LoadedScr) | project TimeGenerated, DeviceName, AccountName, InitiatingProcessAccountName, ProcessCommandLine, LoadedScr | order by TimeGenerated desc
Correct
3
48.71s
0.4229
o1-low
not_an_scr.scr
DeviceProcessEvents | where FileName == "rundll32.exe" | where ProcessCommandLine has_cs "desk.cpl,InstallScreenSaver" | extend LoadedScrFile = extract(@"desk\.cpl,InstallScreenSaver\s+([^\s]+\.scr)", 1, ProcessCommandLine) | project TimeGenerated, DeviceName, AccountDomain, AccountName, ProcessCommandLine, LoadedScrFile | order by TimeGenerated desc
Correct
1
20.55s
0.1716
o3-high
not_an_scr.scr
// ----------------------------------------------- // 1. Rundll32.exe processes that invoke InstallScreenSaver // ----------------------------------------------- let RundllInstallSS = DeviceProcessEvents | where FileName =~ "rundll32.exe" | where ProcessCommandLine has_cs "desk.cpl,InstallScreenSaver" | extend ScreenSaverPath = extract(@'[A-Za-z]:\\[^\s]+\.scr', 0, ProcessCommandLine) | project TimeGenerated, DeviceId, DeviceName, AccountName, ScreenSaverPath, ProcessCommandLine, ProcessId, SHA256; // ----------------------------------------------- // 2. .scr images actually loaded by those rundll32.exe instances // ----------------------------------------------- let ImageLoadedSS = DeviceImageLoadEvents | where InitiatingProcessFileName =~ "rundll32.exe" | where InitiatingProcessCommandLine has_cs "desk.cpl,InstallScreenSaver" | where FileName endswith_cs ".scr" | extend ScreenSaverPath = iff(isnotempty(FolderPath), strcat(FolderPath, "\\", FileName), FileName) | project TimeGenerated, DeviceId, DeviceName, AccountName = InitiatingProcessAccountName, ScreenSaverPath, ProcessCommandLine = InitiatingProcessCommandLine, InitiatingProcessId, SHA256; // ----------------------------------------------- // 3. Combine, de-duplicate and summarise // ----------------------------------------------- RundllInstallSS | union ImageLoadedSS | summarize FirstSeen = min(TimeGenerated), LastSeen = max(TimeGenerated), Devices = make_set(DeviceName), Accounts = make_set(AccountName), ExampleCmdLines = make_set(ProcessCommandLine, 3) by ScreenSaverPath | order by LastSeen desc
Correct
3
119.92s
0.0636
o3-mini-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0469
o3-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0486
o4-mini-high
No answer provided
No query generated
Incorrect
5
0.00s
0.0428
o4-mini-low
No answer provided
No query generated
Incorrect
5
0.00s
0.0569