Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3797178
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 19, 20262026-05-19T13:21:46+00:00 2026-05-19T13:21:46+00:00

Could someone please give me a high level explanation how they are able to

  • 0

Could someone please give me a high level explanation how they are able to monitor every single registry access?

http://technet.microsoft.com/en-us/sysinternals/bb896645

Enough detail so that i could google around the various sub-topics and try to write my own one? I know they’ve used some sort of dll injection/API hooking, but i’m unsure how they reached all the kernel mode activity.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-19T13:21:47+00:00Added an answer on May 19, 2026 at 1:21 pm

    It loads a virtual driver on startup which does the monitoring on a low-level. So it doesn’t have to inject anything in other processes.

    On http://www.decuslib.com/decus/vmslt00a/nt/filemon.htm there’s a short explanation about how FileMon, one of ProcMon’s predecessors, works.

    How Filemon Works

    For the Windows 9x driver, the heart of Filemon is in the virtual
    device driver, Filevxd.vxd. It is dynamically loaded, and in its
    initialization it installs a file system filter via the VxD service,
    IFSMGR_InstallFileSystemApiHook, to insert itself onto the call chain
    of all file system requests. On Windows NT the heart of Filemon is a
    file system driver driver that creates and attaches filter device
    objects to target file system device objects so that Filemon will see
    all IRPs and FastIO requests directed at drives.

    When Filemon sees an
    open, create or close call, it updates an internal hash table that
    serves as the mapping between internal file handles and file path
    names. Whenever it sees calls that are handle based, it looks up the
    handle in the hash table to obtain the full name for display. If a
    handle-based access references a file opened before Filemon started,
    Filemon will fail to find the mapping in it hash table and will simply
    present the handle’s value instead.

    Information on accesses is dumped into an ASCII buffer that is
    periodically copied up to the GUI for it to print in its listbox.

    Likewise, Regmon another predecessor is similar:

    How Regmon Works

    The heart of Regmon on Windows 9x is in the virtual device driver,
    Regvxd.vxd. It is dynamically loaded, and in its initialization it
    uses VxD service hooking (see our May 1996 Dr. Dobb’s Journal article
    on VxD service hooking for more information) to insert itself onto the
    call chain of 16 registry access functions in the Windows 95 kernel
    (Virtual Machine Manager). All registry activity, be it from 16-bit
    programs, Win32 applications, or device drivers, are directed at these
    routines, so Regmon catches all registry activity taking place on a
    machine.

    On Windows NT the Regmon loads a device driver that uses a technique
    we developed for NT called system-call hooking. When a user-mode
    component makes a privileged system call, control is transfered to a
    software interrupt handler in NTOSKRNL.EXE (the core of the Windows NT
    operating system). This handler takes a system call number, which is
    passed in a machine register, and indexes into a system service table
    to find the address of the NT function that will handle the request.
    By replacing entries in this table with pointers to hooking functions,
    it is possible to intercept and replace, augment, or monitor NT system
    services. Regmon, which obviously hooks just the Registry-related
    services, is merely one example of this capability in action.

    When Regmon sees an open, create or close call, it updates an internal
    hash table that serves as the mapping between key handles and registry
    path names. Whenever it sees calls that are handle based, it looks up
    the handle in the hash table to obtain the full name for display. If a
    handle-based access references a key opened before Regmon started,
    Regmon will fail to find the mapping in it hash table and will simply
    present the key’s value instead.

    Information on accesses is dumped into an ASCII buffer that is
    periodically copied up to the GUI for it to print in its listbox.

    If you like reading code, here’s the source code of FileMon and RegMon: http://www.wasm.ru/baixado.php?mode=tool&id=283 (from http://forum.sysinternals.com/topic8038_page1.html)

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Could someone please give me a Perl example on how to load an image
Could someone please give an example of how to use ling to query over
Could someone please give me an example on how can I convert a byte[]
Could someone please give me some advice/ideas about how to deal with the situations
Could someone please give me a clue as to why the following code does
Could someone please give me a link on how to create a query in
Could someone please give me some sample code that uses an output parameter in
Could someone please give me some help with limiting a loop to N iterations
Could someone please give good samples of opensource C# / Mono projects, if possible
Could someone please give me simple websocket code. I am creating websocket example but

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.