Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/georgiifirsov/ntdll
Header-only C++ library that provides user-friendly access to functions from NtDll.dll in Windows.
https://github.com/georgiifirsov/ntdll
Last synced: 10 days ago
JSON representation
Header-only C++ library that provides user-friendly access to functions from NtDll.dll in Windows.
- Host: GitHub
- URL: https://github.com/georgiifirsov/ntdll
- Owner: GeorgiiFirsov
- License: gpl-3.0
- Created: 2020-04-04T16:36:33.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2020-05-26T19:20:38.000Z (over 4 years ago)
- Last Synced: 2024-08-10T04:23:17.525Z (3 months ago)
- Language: C++
- Size: 81.1 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# NtDll library
This ***header-only*** library provides an easy acces to NtDll.dll functions. NtDll.dll is a key component of Windows system, it is a kind of a "bridge"
between Win32 API (e.g. `CreateFile`, `PostMessage`, etc.) and Native NT API (`NtCreateFile`, `RtlAddAccessAllowedAce`, etc.).It is quite beautiful to use it like the library allows:
```cpp
constexpr BYTE data[] = { 0x00, 0x00, 0x00, 0x00 };DWORD dwCrc = NtDll::RtlComputeCrc32( 0, data, _countof( data ) );
```Instead of the way that has been used for a years:
```cpp
constexpr BYTE data[] = { 0x00, 0x00, 0x00, 0x00 };HMODULE hNtDll = GetModuleHandle( L"ntdll.dll" );
if (!hNtDll) {
// Handle error
}using PRtlComputeCrc32 = DWORD (WINAPI*) ( _In_ DWORD, _In_ CONST BYTE*, _In_ INT );
auto pfnRtlComputeCrc32 = reinterpret_cast(
GetProcAddress( hNtDll, "RtlComputeCrc32" )
);if (!pfnRtlComputeCrc32) {
// Handle error
}DWORD dwCrc = pfnRtlComputeCrc32( 0, data, _countof( data ) );
```