XingLo SkillSearch

Windows SRUM 系统资源使用解析

面向 Windows SRUM(System Resource Usage Monitor)数据库取证,指导使用 Eric Zimmerman 的 SrumECmd 解析 SRUDB.dat,并可结合 SOFTWARE Hive 解析应用名称和用户标识。可分别导出应用 CPU/I/O 资源使用、网络收发字节、网络连接持续时间、接口与配置文件、能源使用、推送通知及应用时间线等多类 CSV。适合分析某程序在特定时间段是否活跃、使用了多少网络流量、通过什么网络接口连接、对应哪个用户,以及辅助研判后台程序、恶意软件和异常网络活动。

在 AI 中使用此 Skill将本页链接复制给 AI,即可让 AI 获取完整 Skill 内容并按此执行
安全提示: 本站 Skill 均经 ChatGPT 最新模型扫描,未发现恶意脚本及危险指令、未检出已知恶意行为特征,但不保证绝对安全,使用即表示接受此风险

Skill 文件

版本 20260318 · e10ca455e08ba92021ac68e493ec7637

SKILL.md
---
name: srumecmd
version: 1.0.0
description: Parse and extract Windows SRUM (System Resource Usage Monitor) database using Eric Zimmerman's SrumECmd. Covers CLI flags, CSV output, and output field reference for application resource usage, network usage, network connections, energy usage, push notifications, and timeline data.
metadata:
  tool-name: SrumECmd
  tool-vendor: Eric Zimmerman
---

# SrumECmd Skill

SrumECmd is Eric Zimmerman's command-line tool for parsing the Windows SRUM database (SRUDB.dat). It extracts application resource usage, network data, energy usage, push notifications, and timeline data into structured CSV output. Providing the SOFTWARE hive alongside the SRUM database resolves application and user identifiers. Forensic interpretation of SRUM data (application usage profiling, network activity analysis, etc.) belongs in a separate analysis skill.

## Command Syntax

```
SrumECmd.exe -f <SRUDB.dat> --csv <dir> [-r <SOFTWARE hive>] [other options]
SrumECmd.exe -d <directory> --csv <dir> [other options]
```

Single-letter options use a single dash (`-`). Multi-character options use double dashes (`--`).

## Input

| Flag | Description |
|------|-------------|
| `-f` | SRUDB.dat file to process. Either this or `-d` is required. |
| `-r` | SOFTWARE hive to process. Optional but recommended — resolves application and user identifiers. |
| `-d` | Directory to recursively search for SRUDB.dat and SOFTWARE hive. Either this or `-f` is required. |

## Output Formats

| Flag | Description |
|------|-------------|
| `--csv` | Directory to write CSV output. Required. |

It's recommended to write results to a file. Forensic output can be very large and may consume the context window. SrumECmd produces multiple CSV files per run (one per SRUM table).

## Options

| Flag | Description | Default |
|------|-------------|---------|
| `--dt` | Custom date/time format string | `yyyy-MM-dd HH:mm:ss` |
| `--debug` | Show debug information | FALSE |
| `--trace` | Show trace information | FALSE |

## Output Files

SrumECmd produces multiple CSV files per run, one for each SRUM table found in the database:

| File | Description |
|------|-------------|
| `*_AppResourceUseInfo.csv` | Application CPU, I/O, and resource usage |
| `*_NetworkUsages.csv` | Network data transfer (bytes sent/received) |
| `*_NetworkConnections.csv` | Network connection durations and interface details |
| `*_EnergyUsage.csv` | Application energy consumption and battery state |
| `*_PushNotifications.csv` | Push notification metadata |
| `*_AppTimelineProvider.csv` | Application timeline activity |
| `*_vfuprov.csv` | VFU provider activity with durations |

## Common Output Fields — AppResourceUseInfo (CSV)

Output columns depend on tool version.

| Column | Description |
|--------|-------------|
| **Id** | Record identifier |
| **Timestamp** | SRUM entry timestamp (UTC) |
| **ExeInfo** | Executable path or application identifier |
| **ExeInfoDescription** | Resolved application description (from SOFTWARE hive) |
| **ExeTimestamp** | Executable timestamp |
| **SidType** | SID type |
| **Sid** | User SID |
| **UserName** | Resolved username (from SOFTWARE hive) |
| **UserId** | User identifier |
| **AppId** | Application identifier |
| **BackgroundBytesRead** | Bytes read in background |
| **BackgroundBytesWritten** | Bytes written in background |
| **BackgroundContextSwitches** | Context switches in background |
| **BackgroundCycleTime** | CPU cycle time in background |
| **BackgroundNumberOfFlushes** | Flush operations in background |
| **BackgroundNumReadOperations** | Read operations in background |
| **BackgroundNumWriteOperations** | Write operations in background |
| **FaceTime** | Foreground time |
| **ForegroundBytesRead** | Bytes read in foreground |
| **ForegroundBytesWritten** | Bytes written in foreground |
| **ForegroundContextSwitches** | Context switches in foreground |
| **ForegroundCycleTime** | CPU cycle time in foreground |
| **ForegroundNumberOfFlushes** | Flush operations in foreground |
| **ForegroundNumReadOperations** | Read operations in foreground |
| **ForegroundNumWriteOperations** | Write operations in foreground |

## Common Output Fields — NetworkUsages (CSV)

| Column | Description |
|--------|-------------|
| **Id** | Record identifier |
| **Timestamp** | SRUM entry timestamp (UTC) |
| **ExeInfo** | Executable path or application identifier |
| **ExeInfoDescription** | Resolved application description |
| **ExeTimestamp** | Executable timestamp |
| **SidType** | SID type |
| **Sid** | User SID |
| **UserName** | Resolved username |
| **UserId** | User identifier |
| **AppId** | Application identifier |
| **BytesReceived** | Bytes received |
| **BytesSent** | Bytes sent |
| **InterfaceLuid** | Network interface LUID |
| **InterfaceType** | Network interface type |
| **L2ProfileFlags** | Layer 2 profile flags |
| **L2ProfileId** | Layer 2 profile identifier |
| **ProfileName** | Network profile name |

## Common Output Fields — NetworkConnections (CSV)

| Column | Description |
|--------|-------------|
| **Id** | Record identifier |
| **Timestamp** | SRUM entry timestamp (UTC) |
| **ExeInfo** | Executable path or application identifier |
| **ExeInfoDescription** | Resolved application description |
| **ExeTimestamp** | Executable timestamp |
| **SidType** | SID type |
| **Sid** | User SID |
| **UserName** | Resolved username |
| **UserId** | User identifier |
| **AppId** | Application identifier |
| **ConnectedTime** | Total connected time |
| **ConnectStartTime** | Connection start timestamp |
| **InterfaceLuid** | Network interface LUID |
| **InterfaceType** | Network interface type |
| **L2ProfileFlags** | Layer 2 profile flags |
| **L2ProfileId** | Layer 2 profile identifier |
| **ProfileName** | Network profile name |

## Common Output Fields — EnergyUsage (CSV)

| Column | Description |
|--------|-------------|
| **Id** | Record identifier |
| **Timestamp** | SRUM entry timestamp (UTC) |
| **ExeInfo** | Executable path or application identifier |
| **ExeInfoDescription** | Resolved application description |
| **ExeTimestamp** | Executable timestamp |
| **SidType** | SID type |
| **Sid** | User SID |
| **UserName** | Resolved username |
| **UserId** | User identifier |
| **AppId** | Application identifier |
| **IsLt** | Is long-term energy data |
| **ConfigurationHash** | Configuration hash |
| **EventTimestamp** | Energy event timestamp |
| **StateTransition** | Power state transition |
| **ChargeLevel** | Battery charge level |
| **CycleCount** | Battery cycle count |
| **DesignedCapacity** | Battery designed capacity |
| **FullChargedCapacity** | Battery full charged capacity |
| **ActiveAcTime** | Active time on AC power |
| **ActiveDcTime** | Active time on DC (battery) power |
| **ActiveDischargeTime** | Active discharge time |
| **ActiveEnergy** | Active energy consumption |
| **CsAcTime** | Connected standby time on AC |
| **CsDcTime** | Connected standby time on DC |
| **CsDischargeTime** | Connected standby discharge time |
| **CsEnergy** | Connected standby energy consumption |

## Workflow Examples

### Parse SRUDB.dat with SOFTWARE hive

```
SrumECmd.exe -f "C:\Cases\Evidence\SRUDB.dat" -r "C:\Cases\Evidence\SOFTWARE" --csv "C:\Cases\Output"
```

### Parse SRUDB.dat without SOFTWARE hive

```
SrumECmd.exe -f "C:\Cases\Evidence\SRUDB.dat" --csv "C:\Cases\Output"
```

### Auto-discover SRUDB.dat and SOFTWARE in a directory

```
SrumECmd.exe -d "C:\Cases\Evidence" --csv "C:\Cases\Output"
```

### Parse from a mounted forensic image

```
SrumECmd.exe -d "E:\Windows" --csv "C:\Cases\Output"
```