Detects potentially suspicious loading of the Offline Registry Library (offreg.dll). Offreg.dll enables direct read/write access to offline registry hives without invoking the Windows Registry API, by
title: Potentially Suspicious Image Load of Offreg.dll
id: c9e5f013-4a6f-4d8c-9b0e-f7a4c3d26e95
status: experimental
description: |
Detects potentially suspicious loading of the Offline Registry Library (offreg.dll).
Offreg.dll enables direct read/write access to offline registry hives without invoking the Windows Registry API,
bypassing its associated audit logging and telemetry. Attackers may abuse this to stealthily modify registry hives
while evading detection mechanisms that rely on standard registry event logs.
references:
- https://learn.microsoft.com/en-us/windows/win32/devnotes/about-the-offline-registry-library
- https://github.com/MSNightmare/LegacyHive
author: Swachchhanda Shrawan Poudel (Nextron Systems)
date: 2026-07-23
tags:
- attack.defense-impairment
- attack.persistence
- attack.t1112
logsource:
category: image_load
product: windows
detection:
selection:
ImageLoaded|endswith: '\offreg.dll'
filter_main_system32:
Image|startswith:
- 'C:\Windows\System32\'
- 'C:\Windows\SysWOW64\'
- 'C:\Windows\WinSxS\'
filter_main_program_files:
Image|startswith:
- 'C:\Program Files\'
- 'C:\Program Files (x86)\'
filter_main_appdata_local_programs:
Image|startswith: 'C:\Users\'
Image|contains: '\AppData\Local\Programs\'
filter_main_defender:
Image|startswith: 'C:\ProgramData\Microsoft\Windows Defender\Platform\'
Image|endswith: '\MsMpEng.exe'
condition: selection and not 1 of filter_main_*
falsepositives:
- Third-party backup or forensic software that performs offline registry parsing
- Windows deployment tools (DISM, ADK) run from non-standard paths
level: medium
regression_tests_path: regression_data/rules/windows/image_load/image_load_susp_offreg_dll_load/info.yml
DeviceImageLoadEvents
| where FolderPath endswith "\\offreg.dll" and (not(((InitiatingProcessFolderPath startswith "C:\\Windows\\System32\\" or InitiatingProcessFolderPath startswith "C:\\Windows\\SysWOW64\\" or InitiatingProcessFolderPath startswith "C:\\Windows\\WinSxS\\") or (InitiatingProcessFolderPath startswith "C:\\Program Files\\" or InitiatingProcessFolderPath startswith "C:\\Program Files (x86)\\") or (InitiatingProcessFolderPath startswith "C:\\Users\\" and InitiatingProcessFolderPath contains "\\AppData\\Local\\Programs\\") or (InitiatingProcessFolderPath startswith "C:\\ProgramData\\Microsoft\\Windows Defender\\Platform\\" and InitiatingProcessFolderPath endswith "\\MsMpEng.exe"))))
| Sentinel Table | Notes |
|---|---|
DeviceImageLoadEvents | Ensure this data connector is enabled |