| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
The "Kernel-Bridge" project is a Windows kernel driver template, development framework and kernel-mode API and wrappers written on C++17.
Driver template has full support of C++ static and global initializers and all of C++17 features (without C++ exceptions). All of API modules are easy-to-use and have no external dependiencies, so you can include them to your own C++ drivers. All of API functions are grouped into a logical categories into namespaces, so you can quickly find all functions you want.
Download Microsoft Visual Studio Community and Windows Driver Kit.
For driver testing use VMware Player.
For load an unsigned drivers you should to enable Test-mode of Windows and disable signs checkings:
- Disable signatures checkings (allow to install unsigned drivers): bcdedit.exe /set loadoptions DISABLE_INTEGRITY_CHECKS bcdedit.exe /set TESTSIGNING ON - Enable signatures checkings (deny to install unsigned drivers): bcdedit.exe /set loadoptions ENABLE_INTEGRITY_CHECKS bcdedit.exe /set TESTSIGNING OFF - Enable support of kernel debugger (WinDbg and Kernel Debugger from WDK): bcdedit.exe /debug on - enable support of kernel debugging bcdedit.exe /debug off - disable it
For communication with usermode you should use "User-Bridge" wrappers as standalone *.cpp/*.h modules or as *.dll.
All required headers are CtlTypes.h and User-Bridge.h:
#include <Windows.h> #include "CtlTypes.h" #include "User-Bridge.h" KbLoader::KbLoad(L"N:\\Folder\\Kernel-Bridge.sys"); // ... Do what you want ... KbLoader::KbUnload();
/User-Bridge/API - usermode API and wrappers for all functions of KB
/Kernel-Bridge/API - standalone kernel API for using in C++ drivers
/Kernel-Bridge/Kernel-Bridge - driver template files
/SharedTypes/CtlTypes - shared types header required for UM and KM modules
/Kernel-Tests - unit-tests for UM and KM modules and common functions
#include <Windows.h>
#include "CtlTypes.h"
#include "User-Bridge.h"
using namespace Processes::MemoryManagement;
...
constexpr int Size = 64;
UCHAR Buffer[Size] = {};
BOOL Status = KbReadProcessMemory(
ProcessId,
0x7FFF0000, // Desired address in context of ProcessId
&Buffer,
Size
);
| Back | FazBrowse Home | New Git URL |