Gotchas
Where OriginalFilename detections break, measured on 1,043 binaries.
1. Explorer and PowerShell show you the wrong value
The file Properties dialog, (Get-Item x).VersionInfo and .NET FileVersionInfo load the localized MUI copy of the version resource. Sysmon and EDR sensors read the binary's own resource. If you copy the value from Explorer into a rule, the rule never fires.
| Binary | Explorer / .NET VersionInfo | What Sysmon logs |
|---|---|---|
| cmd.exe | Cmd.Exe.MUI | Cmd.Exe |
| powershell.exe | PowerShell.EXE.MUI | PowerShell.EXE |
| rundll32.exe | RUNDLL32.EXE.MUI | RUNDLL32.EXE |
| certutil.exe | CertUtil.exe.mui | CertUtil.exe |
Every value in this library comes from parsing RT_VERSION straight out of the PE bytes, never from those APIs.
2. Some executables report a DLL name
An .exe process can log an OriginalFilename ending in .dll. One cause is the .NET (Core) apphost: a small native launcher, name.exe, that loads name.dll and carries a copy of the DLL's version resource, so pwsh.exe logs pwsh.dll. Most of the others are ordinary native Windows binaries whose version resource simply names a DLL, such as w32tm.exe →w32time.dll. Either way, a rule that expects an .exe value misses them.
- bdeuisrv.
exe →BDEUISRV.DLL - cleanmgr.
exe →CLEANMGR.DLL - copilotapphost.
exe →copilotapphost.dll - dplaysvr.
exe →wcodstub.dll - dpnsvr.
exe →wcodstub.dll - la57setup.
exe →la57setup.dll - mfpmp.
exe →mf.dll - msinfo32.
exe →msinfo.dll - pwsh.
exe →pwsh.(.NET apphost)dll - rdcman-
x86. →exe RDCMan-x86. dll - rdcman.
exe →RDCMan.dll - unsecapp.
exe →unsecapp.dll - upnpcont.
exe →upnpcont.dll - w32tm.
exe →w32time.dll - wmiadap.
exe →wmicookr.dll
3. The value changes between builds
A single value per binary is the common case, but not universal. These 11 binaries changed OriginalFilename, or its casing, between Windows releases or architectures. A rule listing one value silently misses the other builds.
- changepk.
exe : OriginalFilename changed across builds:changepk.exe(x64; Win10 1511 → Win11 26H1);changepkey.exe(x64; Win10 1507). Match every value. - configsecuritypolicy.
exe : OriginalFilename changed across builds:ConfigSecurityPolicy.exe(x64; Win10 1703 → Win10 1909);ConfiguSecurityPolicy.exe(x64; Win10 1507 → Win10 1607). Match every value. - mavinject.
exe : OriginalFilename changed across builds:mavinject32.exe(x86; Win10 1607 → Win11 26H1);mavinject64.exe(x64; Win10 1607 → Win11 26H1). Match every value. - nltest.
exe : OriginalFilename changed across builds:nltestrk.exe(x64, x86; Win10 1507 → Win11 25H2);nltest.exe(x64, x86; Win11 26H1). Match every value. - pnputil.
exe : Casing differs across builds (PnPutil.exe,pnputil.exe). Case-sensitive comparisons (Elastic KQL on keyword fields,==in KQL/EQL) miss some builds. - schtasks.
exe : OriginalFilename changed across builds:schtasks.exe(x64, x86; Win10 1809 → Win11 26H1);sctasks.exe(x64, x86; Win10 1511 → Win10 1607). Match every value. - setup.
exe : OriginalFilename changed across builds:SETUP.EXE(x64; Win10 1507 → Win11 26H1);isetup.exe(x86; v10.0.26100.9549). Match every value. - setupapi.
dll : Casing differs across builds (SETUPAPI.DLL,setupapi.dll). Case-sensitive comparisons (Elastic KQL on keyword fields,==in KQL/EQL) miss some builds. - shell32.
dll : Casing differs across builds (SHELL32.DLL,shell32.dll). Case-sensitive comparisons (Elastic KQL on keyword fields,==in KQL/EQL) miss some builds. - syncappvpublishingserver.
exe : Casing differs across builds (SyncAppvPublishingServer.exe,syncappvpublishingserver.exe). Case-sensitive comparisons (Elastic KQL on keyword fields,==in KQL/EQL) miss some builds. - taskmgr.
exe : Casing differs across builds (Taskmgr.exe,taskmgr.exe). Case-sensitive comparisons (Elastic KQL on keyword fields,==in KQL/EQL) miss some builds.
4. Some binaries have no OriginalFilename at all
Either the version resource is missing, or it has no OriginalFilename key, or the key is empty (pcalua.exe). Sysmon logs - for all three. OriginalFileName rules can't see these binaries; use the image path, hash or signer.
- aitstatic.
exe - amd-
smi. exe - amdlogum.
exe - anydesk.
exe - appinstallerbackgroundupdate.
exe - atieah32.
exe - atieah64.
exe - bfscfg.
exe - clinfo.
exe - ctacworker.
exe - deploymentcsphelper.
exe - dgtrayicon.
exe - edit.
exe - eeurestart.
exe - esimtool.
exe - facefoduninstaller.
exe - isolationproxy.
exe - ldmdump.
exe - microsoft.
data. usageandqualityinsights. maintenancetask. exe - miracastpowermanager.
exe - narratormathhost.
exe - nvdebugdump.
exe - nvidia-
pcc. exe - nvidia-
smi. exe - pcalua.
exe - reghide.
exe - rootkitrevealer.
exe - sbupdateworker.
exe - scp.
exe - sftp.
exe - ssh-
add. exe - ssh-
agent. exe - ssh-
keygen. exe - ssh-
keyscan. exe - ssh-
pkcs11- helper. exe - ssh-
shellhost. exe - ssh-
sk- helper. exe - ssh.
exe - sudo.
exe - sysmon64.
exe - ucconfigtask.
exe - vulkaninfo-
1- 999- 0- 0- 0. exe - vulkaninfo.
exe - wampluginhost.
exe - wdagnetdiag.
exe - wincsflags.
exe
5. The value often isn't the file name
178 binaries carry an OriginalFilename that differs from their file name (ignoring case), so OriginalFileName: <file name> never matches. Most-referenced in Sigma first:
| File name | OriginalFilename |
|---|---|
| systeminfo. | sysinfo. |
| wermgr. | WerMgr |
| scrcons. | ScrCons |
| adexplorer. | AdExp |
| adexplorer64. | AdExp |
| livekd64. | livekd. |
| procdump. | procdump |
| procdump64. | procdump |
| procexp64. | Procexp. |
| psexec. | psexec. |
| bginfo64. | BGInfo. |
| psexec64. | psexec. |
| vmmap. | Vmmap |
| vmmap64. | Vmmap |
| accesschk64. | accesschk. |
| dotnet. | . |
| driverquery. | drvqry. |
| handle. | Nthandle. |
| handle64. | Nthandle. |
| imagingdevices. | ImagingDevices. |
| procmon. | Process Monitor |
| procmon64. | Process Monitor |
| provlaunch. | provlaunch |
| psloglist64. | psloglist. |
| pspasswd64. | pspasswd. |
| sdelete64. | sdelete. |
| wlrmdr. | WLRMNDR. |
| adinsight. | ADInsight |
| adinsight64. | ADInsight |
| adrestore. | adrestore |
| adrestore64. | adrestore |
| audiodg. | audioadg. |
| autologon. | Autolog. |
| autologon64. | Autolog. |
| autoruns64. | autoruns. |
| autorunsc. | autoruns. |
| autorunsc64. | autoruns. |
| cacheset. | Cacheset |
| cacheset64. | Cacheset |
| clockres. | Clockres |
The library's "Differs from file name" filter shows the full list.
6. Case sensitivity depends on the backend
| Backend | Case-insensitive | Case-sensitive |
|---|---|---|
| Sigma | default string matching | |cased modifier |
| Splunk | field=value in search, IN | where / eval comparisons, CSV lookups by default |
| Defender KQL | =~, in~ | ==, in |
| Elastic | EQL :, in~ | Kibana KQL on keyword fields, EQL == |
| Cribl Stream | lowercase both sides | JavaScript === |
The snippets on every page use the case-insensitive form, and exports are lowercased where they feed lookups.
7. OriginalFilename is attacker-controlled
It survives renaming, which is why it's useful, but it's just a string in a resource section. Anyone can set it on their own tool, or edit it on a copied binary. Easier still, they can strip the version resource and leave nothing to match: the process then logs -, exactly like the 46 binaries above that simply ship without one. Spoofing a value is the loud option; removing it is the quiet one.
Editing a signed binary breaks its signature: Authenticode hashes the resources, and catalog-signed Windows files stop matching their catalog hash. So pair OriginalFileName with signature status and signer — and know which half is doing the work. A renamed but unmodified signed binary keeps a valid signature and its real signer, so only OriginalFileName catches it; a forged value breaks the signature, so only the signature catches that. Each check covers the other's blind spot.
Neither sensor hands you both in one record. Sysmon's process creation event (ID 1) carries no signature fields at all — signature data is on driver load (6) and image load (7). Defender XDR's DeviceProcessEvents gives you ProcessVersionInfoOriginalFileName for the created process, but its signature columns, InitiatingProcessSignatureStatus and InitiatingProcessSignerType, describe the initiating process; for the created one, join SHA1 to DeviceFileCertificateInfo.
8. One file name, different binaries
Generic names like setup.exe cover unrelated binaries that happen to share a name. Check the path and signer before trusting a lookup on the name alone.
9. Sigma literals this database can't vouch for
SigmaHQ (r2026-07-01) rules match 74 OriginalFileName literals that no binary here is named and no parsed build carries. Each one is either a binary this library hasn't collected yet (DLLs loaded by image_load rules, third-party tools) — or a rule arm that can never fire. Until the binary is parsed, the value is an unverified claim.
Msxsl.(3 rules)exe IEExec.(2 rules)exe javaw.(2 rules)exe psexesvc.(2 rules)exe 3CXDesktopApp.(1 rule)exe 7z.(1 rule)exe 7za.(1 rule)exe 7zr.(1 rule)exe AdFind.(1 rule)exe AdvancedRun.(1 rule)exe Akagi.(1 rule)exe Akagi64.(1 rule)exe AutoHotkey.(1 rule)exe AutoHotkey.(1 rule)rc AutoIt.(1 rule)exe AutoIt2.(1 rule)exe AutoIt3.(1 rule)exe BOINC.(1 rule)exe client32.(1 rule)exe credui.(1 rule)dll csi.(1 rule)exe CtxInstall(1 rule)Excel.(1 rule)exe foxprow.(1 rule)exe FX_(1 rule)VER_ INTERNALNAME_ STR gpg.(1 rule)exe jli.(1 rule)dll megasync.(1 rule)exe meshagent(1 rule)Microsoft Access(1 rule)Microsoft Excel(1 rule)Microsoft OneNote(1 rule)Microsoft Outlook(1 rule)Microsoft PowerPoint(1 rule)Microsoft Publisher(1 rule)Microsoft Word(1 rule)Microsoft.(1 rule)NodejsTools. PressAnyKey. exe Microsoft.(1 rule)WSMan. Management. dll MSACCESS.(1 rule)EXE MSPUB.(1 rule)EXE msteams.(1 rule)exe NirCmd.(1 rule)exe OneNote.(1 rule)exe OneNoteM.(1 rule)exe OUTLOOK.(1 rule)EXE PAExec.(1 rule)exe PCHunter.(1 rule)exe PCICFGUI.(1 rule)EXE PDQDeployConsole.(1 rule)exe PingCastle.(1 rule)exe PingCastleCloud.(1 rule)exe PingCastleReporting.(1 rule)exe Plink(1 rule)POWERPNT.(1 rule)EXE python.(1 rule)exe Radmin.(1 rule)exe RstrtMgr.(1 rule)dll schdplus.(1 rule)exe Sent to OneNote Tool(1 rule)SharpLdapWhoami(1 rule)SharpView.(1 rule)exe System.(1 rule)Management. Automation. dll teams.(1 rule)exe TruffleSnout.(1 rule)exe UltraViewer_(1 rule)Desktop. exe VNCViewer.(1 rule)exe wincredui.(1 rule)dll winPEAS.(1 rule)exe winproj.(1 rule)exe WinRAR.(1 rule)exe WinWord.(1 rule)exe WSMANAUTOMATION.(1 rule)DLL WsmSvc.(1 rule)dll WsmWmiPl.(1 rule)dll