All Projects → tandasat → UefiVarMonitor

tandasat / UefiVarMonitor

Licence: MIT License
The runtime DXE driver monitoring access to the UEFI variables by hooking the runtime service table.

Programming Languages

c
50402 projects - #5 most used programming language
rust
11053 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to UefiVarMonitor

BGRTInjector
Customize Windows 10 boot logo without modifying UEFI firmware.
Stars: ✭ 39 (-62.86%)
Mutual labels:  uefi
SnowFlake
Technology is free, SnowFlakeOS
Stars: ✭ 38 (-63.81%)
Mutual labels:  uefi
aero
Aero is a new modern, experimental, unix-like operating system following the monolithic kernel design. Supporting modern PC features such as long mode, 5-level paging, and SMP (multicore), to name a few.
Stars: ✭ 407 (+287.62%)
Mutual labels:  uefi
edk2-dipper
A UEFI Firmware for Dipper(Xiaomi MI 8)
Stars: ✭ 93 (-11.43%)
Mutual labels:  uefi
go-uefi
Linux UEFI library written in pure Go.
Stars: ✭ 78 (-25.71%)
Mutual labels:  uefi
UEFI-Boot
Boot Linux directly from UEFI firmware (without any bootloader)
Stars: ✭ 38 (-63.81%)
Mutual labels:  uefi
pipxe
iPXE for the Raspberry Pi
Stars: ✭ 154 (+46.67%)
Mutual labels:  uefi
UEFI-Utilities
Various (U)EFI utilities that I have developed
Stars: ✭ 55 (-47.62%)
Mutual labels:  uefi
efi
efi headers
Stars: ✭ 24 (-77.14%)
Mutual labels:  uefi
FoxOS
The FoxOS main repository
Stars: ✭ 48 (-54.29%)
Mutual labels:  uefi
rename-efi-entry
A Bash script to rename EFI boot entries
Stars: ✭ 45 (-57.14%)
Mutual labels:  uefi
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-55.24%)
Mutual labels:  uefi
smram parse
System Management RAM analysis tool
Stars: ✭ 50 (-52.38%)
Mutual labels:  uefi
uefi-elf-bootloader
UEFI ELF Bootloader example
Stars: ✭ 40 (-61.9%)
Mutual labels:  uefi
HUANANZHI-X99-F8
CX99DE25 BIOS for HUANANZHI X99-F8 GAMING Motherboard 07/25/2020
Stars: ✭ 43 (-59.05%)
Mutual labels:  uefi
SmmExploit
The report and the exploit of CVE-2021-26943, the kernel-to-SMM local privilege escalation vulnerability in ASUS UX360CA BIOS version 303.
Stars: ✭ 98 (-6.67%)
Mutual labels:  uefi
Arch
These are easy, in-depth instructions on how to install Arch Linux.
Stars: ✭ 16 (-84.76%)
Mutual labels:  uefi
clr-boot-manager
Kernel & Boot Loader Management
Stars: ✭ 101 (-3.81%)
Mutual labels:  uefi
efi-clang
Build UEFI applications with the Clang compiler and LLD linker.
Stars: ✭ 40 (-61.9%)
Mutual labels:  uefi
UEFI MULTI
UEFI_MULTI - Make Multi-Boot USB-Drive
Stars: ✭ 33 (-68.57%)
Mutual labels:  uefi

UefiVarMonitor

The sample runtime DXE driver (UEFI driver) monitoring access to the UEFI variables by hooking the runtime service table in C and Rust.

This project was developed to provide a small sample of a runtime driver.

UefiVarMonitor uefi-var-monitor

Rust implementation was made solely for author's learning.

Projects Overview

  • UefiVarMonitorDxe

    The UEFI runtime driver that hooks GetVariable and SetVariable runtime services, and logs the use of them into serial output. Written in less than 300 lines of C code.

  • uefi-var-monitor

    Nearly equivalent implementation of UefiVarMonitorDxe in Rust. Unsafe, unsafe everywhere.

  • UefiVarMonitorExDxe

    The enhanced version of UefiVarMonitorDxe allowing a Windows driver to register an inline callback of the above runtime services. This can also be used to alter parameters and block those calls.

  • UefiVarMonitorExClient

    The sample Windows driver registering a callback with UefiVarMonitorExDxe.

Building

  • UefiVarMonitorDxe and UefiVarMonitorExDxe

    1. Set up edk2 build environment
    2. Copy UefiVarMonitorPkg as edk2\UefiVarMonitorPkg
    3. On the edk2 build command prompt, run the below command:
      > edksetup.bat
      > build -t VS2019 -a X64 -b NOOPT -p UefiVarMonitorPkg\UefiVarMonitorPkg.dsc -D DEBUG_ON_SERIAL_PORT
      
      Or on Linux or WSL,
      $ . edksetup.sh
      $ build -t GCC5 -a X64 -b NOOPT -p UefiVarMonitorPkg/UefiVarMonitorPkg.dsc -D DEBUG_ON_SERIAL_PORT
      
  • uefi-var-monitor

    1. Install the nightly rust compiler. Below is an example on Linux, but it is largely the same on Windows.
      $ sudo snap install rustup --classic
      $ rustup default nightly
      $ rustup component add rust-src
      
    2. Build the project.
      $ cd uefi-var-monitor
      $ cargo build
      
  • UefiVarMonitorExClient

    This is a standard Windows driver. VS2019 and WDK 10.0.18362 or later are required.

Credits

  • Thank you @x1tan for modernalized xcargo-less build.
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].