open source process monitor
- Use the procmon gui. (build and run procmon_gui.exe)
- Use the sdk in you project(build and link sdk)
You don't have a digital signature yourself? It doesn't matter. You can use the original procmon driver, this sdk is 100% compatible with the original procmon driver.
#include <conio.h> #include "../../sdk/procmonsdk/sdk.hpp" class CMyEvent : public IEventCallback { public: virtual BOOL DoEvent(const CRefPtr<CEventView> pEventView) { ULONGLONG Time = pEventView->GetStartTime().QuadPart; LogMessage(L_INFO, TEXT("%llu Process %s Do 0x%x for %s"), Time, pEventView->GetProcessName().GetBuffer(), pEventView->GetEventOperator(), pEventView->GetPath().GetBuffer()); return TRUE; } }; int main() { CEventMgr& Optmgr = Singleton<CEventMgr>::getInstance(); CMonitorContoller& Monitormgr = Singleton<CMonitorContoller>::getInstance(); Optmgr.RegisterCallback(new CMyEvent); // // Try to connect to procmon driver // if (!Monitormgr.Connect()){ LogMessage(L_ERROR, TEXT("Cannot connect to procmon driver")); return -1; } // // try to start monitor // Monitormgr.SetMonitor(TRUE, TRUE, FALSE); if (!Monitormgr.Start()){ LogMessage(L_ERROR, TEXT("Cannot start the mointor")); return -1; } _getch(); // // try to stop the monitor // Monitormgr.Stop(); LogMessage(L_INFO, TEXT("!!!!!monitor stop press any key to start!!!!")); _getch(); Monitormgr.Start(); _getch(); Monitormgr.Stop(); Monitormgr.Destory(); return 0; }It is pertty esay right?
main window:
properties windows
- Driver load example.
- Filter dialog.
- Filter apply processing dialog.
- Save the capture log to file.
- Load capture log.
- Load Driver.
- Sybmol support for call stack view.
- Integrity level parse.
- Registery event capture.
- Parse detail for File/Registery Event.
- Filter plugin support.



