All Projects → DownWithUp → Callmon

DownWithUp / Callmon

CallMon is an experimental system call monitoring tool that works on Windows 10 versions 2004+ using PsAltSystemCallHandlers

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Callmon

Hastic Server
Hastic data management server for analyzing patterns and anomalies from Grafana
Stars: ✭ 292 (+251.81%)
Mutual labels:  monitoring, monitoring-tool
Chronos
📊 📊 📊 Monitors the health and web traffic of servers, microservices, and containers with real-time data monitoring and receive automated notifications over Slack or email.
Stars: ✭ 347 (+318.07%)
Mutual labels:  monitoring, monitoring-tool
Spidermon
Scrapy Extension for monitoring spiders execution.
Stars: ✭ 309 (+272.29%)
Mutual labels:  monitoring, monitoring-tool
Myperf4j
High performance Java APM. Powered by ASM. Try it. Test it. If you feel its better, use it.
Stars: ✭ 2,281 (+2648.19%)
Mutual labels:  monitoring, monitoring-tool
Ward
Server dashboard
Stars: ✭ 1,026 (+1136.14%)
Mutual labels:  monitoring, monitoring-tool
Electriceye
Continuously monitor your AWS services for configurations that can lead to degradation of confidentiality, integrity or availability. All results will be sent to Security Hub for further aggregation and analysis.
Stars: ✭ 255 (+207.23%)
Mutual labels:  monitoring, monitoring-tool
Fileboy
fileboy,文件变更监听通知工具,使用 Go 编写。Fileboy, File Change Monitoring Notification Tool, written with Go.
Stars: ✭ 345 (+315.66%)
Mutual labels:  monitoring, tool
Legend
Legend builds and publishes Grafana dashboards for your services with prefilled metrics and alerts for your services.
Stars: ✭ 149 (+79.52%)
Mutual labels:  monitoring, monitoring-tool
Lldebugtoolswift
LLDebugTool is a debugging tool for developers and testers that can help you analyze and manipulate data in non-xcode situations.
Stars: ✭ 40 (-51.81%)
Mutual labels:  monitoring, tool
Auto Cpufreq
Automatic CPU speed & power optimizer for Linux
Stars: ✭ 843 (+915.66%)
Mutual labels:  monitoring, tool
Satellite
Simple and extensible monitoring agent / library for Kubernetes: https://gravitational.com/blog/monitoring_kubernetes_satellite/
Stars: ✭ 183 (+120.48%)
Mutual labels:  monitoring, monitoring-tool
Laravel Api Health
Monitor first and third-party services and get notified when something goes wrong!
Stars: ✭ 65 (-21.69%)
Mutual labels:  monitoring, monitoring-tool
Scouter Paper
scouter-paper is a web client software for scouter
Stars: ✭ 183 (+120.48%)
Mutual labels:  monitoring, monitoring-tool
Static status
🚦Bash script to generate a static status page.
Stars: ✭ 286 (+244.58%)
Mutual labels:  monitoring, monitoring-tool
Webfunny monitor
webfunny是一款轻量级的前端监控系统,webfunny也是一款前端性能监控系统,无埋点监控前端日志,实时分析前端健康状态。webfunny is a lightweight front-end monitoring system and webfunny is also a front-end performance monitoring system. It monitors front-end logs and analyzes front-end health status in real time.
Stars: ✭ 3,470 (+4080.72%)
Mutual labels:  monitoring, monitoring-tool
Monitoror
Unified monitoring wallboard — Light, ergonomic and reliable monitoring for anything.
Stars: ✭ 3,400 (+3996.39%)
Mutual labels:  monitoring, monitoring-tool
Ws Monitoring
A simple & lightweight realtime monitoring web UI + server in Node.js
Stars: ✭ 130 (+56.63%)
Mutual labels:  monitoring, monitoring-tool
Efc2 Agent
efc2 agent
Stars: ✭ 136 (+63.86%)
Mutual labels:  monitoring, monitoring-tool
Lldebugtool
LLDebugTool is a debugging tool for developers and testers that can help you analyze and manipulate data in non-xcode situations.
Stars: ✭ 673 (+710.84%)
Mutual labels:  monitoring, tool
Procmon Parser
Parser to process monitor file formats
Stars: ✭ 49 (-40.96%)
Mutual labels:  monitoring, monitoring-tool

CallMon

CallMon is a system call monitoring tool that works on Windows 10 versions 2004+ using PsAltSystemCallHandlers.

Usage

  • CallMon requires driver signature enforcement (DSE) to be disabled.
  • Download release here (or download and build from source)
  • Ensure both CallMon.exe and AltCall.sys are in the same directory
  • Run CallMon.exe as an administrator
  • Click on "Initialize"
  • Enter a process's ID in the text field and click "Add Process"

Architecture

CallMon is comprised of a kernel driver (AltCall.sys) and a GUI application (CallMon.exe). Together, these programs work to provide API introspection for monitored processes. The driver and GUI application communicate via a named pipe (\\.\pipe\CallMonPipe). The data passed by the driver to usermode consists of a custom header which contains the process id and stack information along with a KTRAP_FRAME structure received from the alt syscall handler function.

Performance Impacts

Because the system call handler function is called everytime a targeted process preforms a call (and in the context of the targeted process), heavy API usage programs will experience a drop in performance due to the transfer of data back to the CallMon GUI process.

Resources

0xcpu's Research on AltSyscallHandlers

Rust Driver Version

Optionally, there is a version of the AltCall.sys driver written in Rust. The sources and binary are included only in the repository and not in the release. I highly recommended reading not-matthias' (his code was the foundation for the Rust version) blog post on building Windows drivers in Rust. In addition, I will mention that I worked on this to better my Rust skills and not to make a memory safe driver. I heavily used "unsafe" Rust code, and kernel interactions in themselves can always go awire.

Build

If you are not already on the nightly channel, change to it using:
rustup toolchain install nightly
Override using:
rustup override set nightly

C VS. Rust

Besides, the obvious syntax differences, I also made some design changes:

  • Rust version uses ProbeForRead instead of MmHighestUserAddress and MmIsAddressValid check for stack pointer.
  • Rust version has no remove process IOCTL handling function (possibly coming soon?) now has support for removing processes!
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].