Commit Graph
22 Commits
Author SHA1 Message Date
mirkobrombin 85604c2ae5 feat: list processes and their threads through NtQuerySystemInformation
Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: process and thread listing in NtQuerySystemInformation and its test client
2026-11-03 12:36:15 +00:00
Raymond Bennett 1deb92579a feat: name files by their volume devices, the same way everywhere
A drive was \Device\HarddiskVolumeN with N counted over the drives present
for QueryDosDevice but from the letter (C first) for the process image and
mapped file names, so Z: had two device names, and NtQueryObject answered
an empty name for every file. NativePaths now gives each drive one volume
device (C is 1 and the drives after it follow in letter order, A and B
last) and turns a Win32 path into the NT name the object manager uses: a
drive path on its volume device, a UNC path on \Device\Mup. QueryDosDevice,
the image and mapped file names and NtQueryObject (ObjectNameInformation of
a file) use it; the drive list QueryDosDevice and GetLogicalDrives share
moved there as well. Zig reads a file name this way to find its own path.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the volume device naming and its callers
(cherry picked from commit 02cce32c5ee2b0c341e44ae6fa691f28aa51b62f)
2026-10-30 08:25:46 -07:00
mirkobrombin 61e87bc521 chore: merge pull request #75 from rayzorben/fix/exited-child-information 2026-10-30 06:32:59 +00:00
mirkobrombin e4da4fbf56 chore: merge pull request #54 from rayzorben/fix/module-base-name 2026-10-30 06:32:59 +00:00
Raymond Bennett 023ab5e63c fix: answer the basic information of a child that has ended
NtQueryInformationProcess asked the child process itself, so once a child
had ended its ProcessBasicInformation failed and Zig could not read the
exit status of its linker. A child that has ended answers from its process
object: the exit status, its id and this process as its parent.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the exited-child case
(cherry picked from commit e204ad514a444c3140b0592243e3dad16d26fac1)
2026-10-29 01:30:25 -07:00
Raymond Bennett 5ab276d69d fix: name the program in GetModuleBaseName when no module is given
GetModuleBaseName with no module names the file the process was started
from; Raven looked for a module at address zero and failed, for the calling
process and for others. It now takes the name from the process's image path,
as QueryFullProcessImageName does, which also answers for child processes.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the change
(cherry picked from commit 0b78cce5023888c44414fd585337810558c3ff14)
2026-10-28 23:14:32 -07:00
Raymond Bennett c6d85f50d2 feat: add GetProcessIoCounters
procs asks every process for its I/O counts. Raven's host process performs a
program's I/O, so the counters come from its Linux ones (/proc/<pid>/io):
read and write system calls and bytes; nothing is counted as "other".

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: the handler
(cherry picked from commit 35a6322c72c0077aa523f4e2d1cddd207a65ecfc)
2026-10-28 23:14:32 -07:00
Ray Bennett b66a9074fb fix: name a process started by hand by its program in the process snapshot (#35)
CreateToolhelp32Snapshot named another runtime process by the last argument on its host command line. For
`raven --run-process ... cmd.exe -- /c dir`, that is `dir`, so tasklist and process lookups by name missed it.

Assisted-by: Claude Code:claude-opus-5-5
AI-Scope: Took the first argument that is not an option as the program, and extended the snapshot test to start a child that checks its parent's name, for both widths.
2026-10-28 16:50:18 +01:00
mirkobrombin 44a593867c feat: run an SSH client's terminal and file transfer windows 2026-10-26 23:13:38 +00:00
mirkobrombin 2e076d674f feat: add process enumeration and ETW controller APIs 2026-10-25 00:01:22 +02:00
mirkobrombin 0a0fe4be89 feat: add shared Windows process state and parallel guest execution 2026-10-24 16:24:23 +00:00
mirkobrombin f9f3a67f1c fix: serve the Windows calls that Inno Setup, 7-Zip and VLC make 2026-10-23 21:27:15 +00:00
Mirko Brombin 5ee509ff4f fix: treat the 32-bit current process handle as the caller in process queries 2026-10-16 16:48:16 +00:00
Mirko Brombin 1d8a861015 feat: run the Windows Installer server and its custom actions in a session whose window station is not visible 2026-10-12 13:26:25 +00:00
Mirko Brombin c0b3a38eed feat: answer GetUserObjectInformationA 2026-09-21 15:02:08 +00:00
Mirko Brombin 93ddb6774e feat: name libraries loaded from a folder by the file they came from and let 32-bit programs open other processes 2026-09-21 09:15:03 +00:00
Mirko Brombin b264bbd6c6 feat: find shared libraries in the system directory, keep the system's own libraries the runtime's, and redirect System32 for 32-bit programs 2026-09-21 05:13:14 +02:00
Mirko Brombin ead54d6b10 feat: run Google Chrome with NT object queries, COM apartments, file completion ports and SDDL descriptors 2026-09-03 21:44:05 +02:00
Mirko Brombin 5a6297633c feat: show Steam's sign-in window with cross-process window surfaces, web fonts, elevation and service configuration 2026-09-03 18:36:13 +02:00
Mirko Brombin 26fbeabc78 feat: run Steam's web UI with cross-process handles, per-thread message queues, socket events and process identity 2026-09-03 16:48:12 +02:00
Mirko Brombin 66087052d8 feat: run Chromium's helper processes with DirectWrite, named pipes, jobs, inherited handles and shared sections 2026-09-03 06:06:54 +02:00
Mirko Brombin 7b3461c003 feat: run Chromium's web helper further with reserved address space, native registry, tokens and process lists 2026-09-03 03:46:34 +02:00