From e03593c2b64309aab3ca149191f8eea2663976c4 Mon Sep 17 00:00:00 2001 From: Petr Benes Date: Sat, 18 Aug 2018 17:45:07 +0200 Subject: [PATCH] initial commit --- .gitignore | 3 + .gitmodules | 3 + Detours | 1 + DetoursNT.sln | 51 ++ DetoursNT/DetoursNT.cpp | 718 ++++++++++++++++++++ DetoursNT/DetoursNT.h | 348 ++++++++++ DetoursNT/DetoursNT.vcxproj | 200 ++++++ DetoursNT/DetoursNT.vcxproj.filters | 60 ++ DetoursNT/DetoursNT.vcxproj.user | 4 + Images/depends.png | Bin 0 -> 163796 bytes Images/sample.png | Bin 0 -> 60438 bytes LICENSE.txt | 21 + README.md | 70 ++ Sample/Sample.vcxproj | 171 +++++ Sample/Sample.vcxproj.filters | 22 + Sample/Sample.vcxproj.user | 4 + Sample/main.cpp | Bin 0 -> 1030 bytes SampleHookDLL/SampleHookDLL.vcxproj | 197 ++++++ SampleHookDLL/SampleHookDLL.vcxproj.filters | 22 + SampleHookDLL/SampleHookDLL.vcxproj.user | 4 + SampleHookDLL/main.cpp | 71 ++ 21 files changed, 1970 insertions(+) create mode 100644 .gitignore create mode 100644 .gitmodules create mode 160000 Detours create mode 100644 DetoursNT.sln create mode 100644 DetoursNT/DetoursNT.cpp create mode 100644 DetoursNT/DetoursNT.h create mode 100644 DetoursNT/DetoursNT.vcxproj create mode 100644 DetoursNT/DetoursNT.vcxproj.filters create mode 100644 DetoursNT/DetoursNT.vcxproj.user create mode 100644 Images/depends.png create mode 100644 Images/sample.png create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 Sample/Sample.vcxproj create mode 100644 Sample/Sample.vcxproj.filters create mode 100644 Sample/Sample.vcxproj.user create mode 100644 Sample/main.cpp create mode 100644 SampleHookDLL/SampleHookDLL.vcxproj create mode 100644 SampleHookDLL/SampleHookDLL.vcxproj.filters create mode 100644 SampleHookDLL/SampleHookDLL.vcxproj.user create mode 100644 SampleHookDLL/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..064744a --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.vs/ +*.VC.db +Bin/ diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5c54fc5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Detours"] + path = Detours + url = https://github.com/Microsoft/Detours diff --git a/Detours b/Detours new file mode 160000 index 0000000..c0c0ef9 --- /dev/null +++ b/Detours @@ -0,0 +1 @@ +Subproject commit c0c0ef9bff2355f97e0c34ba7360116c741ad22a diff --git a/DetoursNT.sln b/DetoursNT.sln new file mode 100644 index 0000000..b35bb68 --- /dev/null +++ b/DetoursNT.sln @@ -0,0 +1,51 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28010.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DetoursNT", "DetoursNT\DetoursNT.vcxproj", "{C78B9003-FC49-4BBF-8F29-52FAD48BB58A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleHookDLL", "SampleHookDLL\SampleHookDLL.vcxproj", "{6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Sample", "Sample\Sample.vcxproj", "{113B23FE-32D7-4D79-8A74-119BC11C25E2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Debug|x64.ActiveCfg = Debug|x64 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Debug|x64.Build.0 = Debug|x64 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Debug|x86.ActiveCfg = Debug|Win32 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Debug|x86.Build.0 = Debug|Win32 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Release|x64.ActiveCfg = Release|x64 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Release|x64.Build.0 = Release|x64 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Release|x86.ActiveCfg = Release|Win32 + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A}.Release|x86.Build.0 = Release|Win32 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Debug|x64.ActiveCfg = Debug|x64 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Debug|x64.Build.0 = Debug|x64 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Debug|x86.ActiveCfg = Debug|Win32 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Debug|x86.Build.0 = Debug|Win32 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Release|x64.ActiveCfg = Release|x64 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Release|x64.Build.0 = Release|x64 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Release|x86.ActiveCfg = Release|Win32 + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B}.Release|x86.Build.0 = Release|Win32 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Debug|x64.ActiveCfg = Debug|x64 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Debug|x64.Build.0 = Debug|x64 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Debug|x86.ActiveCfg = Debug|Win32 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Debug|x86.Build.0 = Debug|Win32 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Release|x64.ActiveCfg = Release|x64 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Release|x64.Build.0 = Release|x64 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Release|x86.ActiveCfg = Release|Win32 + {113B23FE-32D7-4D79-8A74-119BC11C25E2}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {BA5AF7B8-B47F-4688-BAF8-DDD1AEDC6200} + EndGlobalSection +EndGlobal diff --git a/DetoursNT/DetoursNT.cpp b/DetoursNT/DetoursNT.cpp new file mode 100644 index 0000000..894c0b1 --- /dev/null +++ b/DetoursNT/DetoursNT.cpp @@ -0,0 +1,718 @@ +#define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1 +#include + +#include "DetoursNT.h" + +// #define DETOURSNT_NO_EH + +#ifdef __cplusplus +extern "C" { +#endif + +#pragma region CRT + +#pragma function(memset) +void* __cdecl +memset( + void* dest, + int ch, + size_t count + ) +{ + if (count) + { + char* d = (char*)dest; + + do + { + *d++ = ch; + } while (--count); + } + + return dest; +} + +#pragma function(memcpy) +void* __cdecl +memcpy( + void* dest, + const void* src, + size_t count + ) +{ + char* d = (char*)dest; + char* s = (char*)src; + + while (count--) + { + *d++ = *s++; + } + + return dest; +} + +// +// TODO: Use RtlCreateHeap/RtlAllocateHeap/RtlFreeHeap? +// + +void* __cdecl +malloc( + size_t size + ) +{ + return VirtualAlloc(NULL, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE); +} + +void* __cdecl +calloc( + size_t count, + size_t size + ) +{ + // + // UNIMPLEMENTED + // + return NULL; +} + +void* __cdecl +realloc( + void* ptr, + size_t new_size + ) +{ + // + // UNIMPLEMENTED + // + return NULL; +} + +void __cdecl +free( + void* ptr + ) +{ + VirtualFree(ptr, 0, MEM_RELEASE); +} + +#ifdef __cplusplus + +} // extern "C" + +void* __cdecl +operator new( + size_t size + ) +{ + return malloc(size); +} + +void* __cdecl +operator new[]( + size_t size + ) +{ + return malloc(size); +} + +void __cdecl +operator delete( + void* pointer + ) noexcept +{ + free(pointer); +} + +void __cdecl +operator delete( + void* pointer, + size_t + ) noexcept +{ + free(pointer); +} + +void __cdecl +operator delete[]( + void* pointer + ) noexcept +{ + free(pointer); +} + +void __cdecl +operator delete[]( + void* pointer, + size_t + ) noexcept +{ + free(pointer); +} + +extern "C" { + +#endif + +#ifndef D + +typedef struct _ANSI_STRING { + USHORT Length; + USHORT MaximumLength; + PSTR Buffer; +} ANSI_STRING; +typedef ANSI_STRING *PANSI_STRING; + +typedef struct _UNICODE_STRING { + USHORT Length; + USHORT MaximumLength; + PWSTR Buffer; +} UNICODE_STRING; +typedef UNICODE_STRING *PUNICODE_STRING; + +#define RTL_CONSTANT_STRING(s) { sizeof(s)-sizeof((s)[0]), sizeof(s), s } + +NTSTATUS +NTAPI +LdrLoadDll( + IN PWSTR SearchPath OPTIONAL, + IN PULONG DllCharacteristics OPTIONAL, + IN PUNICODE_STRING DllName, + OUT PVOID *BaseAddress + ); + +NTSTATUS +NTAPI +LdrGetProcedureAddress( + IN PVOID BaseAddress, + IN PANSI_STRING Name, + IN ULONG Ordinal, + OUT PVOID *ProcedureAddress + ); + +#ifdef _M_AMD64 + +EXCEPTION_DISPOSITION +__cdecl +__C_specific_handler( + _In_ struct _EXCEPTION_RECORD* ExceptionRecord, + _In_ void* EstablisherFrame, + _Inout_ struct _CONTEXT* ContextRecord, + _Inout_ struct _DISPATCHER_CONTEXT* DispatcherContext + ) +{ +#if 0 + typedef EXCEPTION_DISPOSITION (__cdecl * pfn__C_specific_handler)( + _In_ struct _EXCEPTION_RECORD* ExceptionRecord, + _In_ void* EstablisherFrame, + _Inout_ struct _CONTEXT* ContextRecord, + _Inout_ struct _DISPATCHER_CONTEXT* DispatcherContext + ); + + static pfn__C_specific_handler Procedure = NULL; + + if (!Procedure) + { + PVOID NtdllImageBase; + RtlPcToFileHeader((PVOID)NtAllocateVirtualMemory, &NtdllImageBase); + + ANSI_STRING ProcedureName = RTL_CONSTANT_STRING("__C_specific_handler"); + LdrGetProcedureAddress(NtdllImageBase, &ProcedureName, 0, (PVOID*)&Procedure); + + // + // Do not check for errors, if Procedure remains NULL, we're screwed anyway. + // + } + + return Procedure(ExceptionRecord, EstablisherFrame, ContextRecord, DispatcherContext); +#else +#ifdef _DEBUG + __debugbreak(); +#endif + + *reinterpret_cast(nullptr) = nullptr; + + return (EXCEPTION_DISPOSITION)0; +#endif +} + +#endif // _M_IA64 + +#if _M_IX86 + +int +_callnewh( + size_t size + ) +{ + return 0; +} + +EXCEPTION_DISPOSITION +__cdecl +_except_handler3( + _In_ struct _EXCEPTION_RECORD* ExceptionRecord, + _In_ void* EstablisherFrame, + _Inout_ struct _CONTEXT* ContextRecord, + _Inout_ struct _DISPATCHER_CONTEXT* DispatcherContext + ) +{ +#ifdef _DEBUG + __debugbreak(); +#endif + + *reinterpret_cast(nullptr) = nullptr; + + return (EXCEPTION_DISPOSITION)0; +} + +#endif // _M_IX86 + +#endif // D + +#pragma endregion + +#pragma region Detours/module.cpp + +ULONG WINAPI DetourGetModuleSize(_In_opt_ HMODULE hModule) +{ + PIMAGE_DOS_HEADER pDosHeader = (PIMAGE_DOS_HEADER)hModule; + if (hModule == NULL) { + // pDosHeader = (PIMAGE_DOS_HEADER)GetModuleHandleW(NULL); + pDosHeader = &__ImageBase; + } + + __try { +#pragma warning(suppress:6011) // GetModuleHandleW(NULL) never returns NULL. + if (pDosHeader->e_magic != IMAGE_DOS_SIGNATURE) { + SetLastError(ERROR_BAD_EXE_FORMAT); + return 0; + } + + PIMAGE_NT_HEADERS pNtHeader = (PIMAGE_NT_HEADERS)((PBYTE)pDosHeader + + pDosHeader->e_lfanew); + if (pNtHeader->Signature != IMAGE_NT_SIGNATURE) { + SetLastError(ERROR_INVALID_EXE_SIGNATURE); + return 0; + } + if (pNtHeader->FileHeader.SizeOfOptionalHeader == 0) { + SetLastError(ERROR_EXE_MARKED_INVALID); + return 0; + } + SetLastError(NO_ERROR); + + return (pNtHeader->OptionalHeader.SizeOfImage); + } + __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION ? + EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH) { + SetLastError(ERROR_EXE_MARKED_INVALID); + return 0; + } +} + +#pragma endregion + +#pragma region KERNEL32.DLL + +#define NT_SUCCESS(Status) (((NTSTATUS)(Status)) >= 0) + +NTSYSAPI +ULONG +NTAPI +RtlNtStatusToDosError( + _In_ NTSTATUS Status + ); + +#define _CLIENT_ID Mock__CLIENT_ID +#define CLIENT_ID Mock_CLIENT_ID +#define PCLIENT_ID Mock_PCLIENT_ID + +// #define _TEB Mock__TEB +// #define TEB Mock_TEB +// #define PTEB Mock_PTEB + +typedef struct _CLIENT_ID +{ + HANDLE UniqueProcess; + HANDLE UniqueThread; +} CLIENT_ID, *PCLIENT_ID; + +typedef struct _TEB +{ + NT_TIB Tib; + PVOID EnvironmentPointer; + CLIENT_ID ClientId; +} TEB, *PTEB; + +static DWORD g_LastError = 0; + +DWORD +WINAPI +GetLastError( + VOID + ) +{ + return g_LastError; +} + +VOID +WINAPI +SetLastError( + IN DWORD dwErrCode + ) +{ + g_LastError = dwErrCode; +} + +DWORD +WINAPI +BaseSetLastNTError(IN NTSTATUS Status) +{ + DWORD dwErrCode; + + /* Convert from NT to Win32, then set */ + dwErrCode = RtlNtStatusToDosError(Status); + SetLastError(dwErrCode); + return dwErrCode; +} + +DWORD +WINAPI +GetCurrentThreadId( + VOID + ) +{ + return HandleToUlong(NtCurrentTeb()->ClientId.UniqueThread); +} + +LPVOID +NTAPI +VirtualAlloc( + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flAllocationType, + IN DWORD flProtect + ) +{ + /* Call the extended API */ + return VirtualAllocEx(GetCurrentProcess(), + lpAddress, + dwSize, + flAllocationType, + flProtect); +} + +LPVOID +NTAPI +VirtualAllocEx( + IN HANDLE hProcess, + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flAllocationType, + IN DWORD flProtect + ) +{ + NTSTATUS Status; + + /* Handle any possible exceptions */ + __try + { + /* Allocate the memory */ + Status = NtAllocateVirtualMemory(hProcess, + &lpAddress, + 0, + &dwSize, + flAllocationType, + flProtect); + } + __except (EXCEPTION_EXECUTE_HANDLER) + { + Status = GetExceptionCode(); + } + + /* Check for status */ + if (!NT_SUCCESS(Status)) + { + /* We failed */ + BaseSetLastNTError(Status); + return NULL; + } + + /* Return the allocated address */ + return lpAddress; +} + +BOOL +NTAPI +VirtualFree( + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD dwFreeType + ) +{ + /* Call the extended API */ + return VirtualFreeEx(GetCurrentProcess(), + lpAddress, + dwSize, + dwFreeType); +} + +BOOL +NTAPI +VirtualFreeEx( + IN HANDLE hProcess, + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD dwFreeType + ) +{ + NTSTATUS Status; + + /* Validate size and flags */ + if (!(dwSize) || !(dwFreeType & MEM_RELEASE)) + { + /* Free the memory */ + Status = NtFreeVirtualMemory(hProcess, + &lpAddress, + &dwSize, + dwFreeType); + if (!NT_SUCCESS(Status)) + { + /* We failed */ + BaseSetLastNTError(Status); + return FALSE; + } + + /* Return success */ + return TRUE; + } + + /* Invalid combo */ + BaseSetLastNTError(STATUS_INVALID_PARAMETER); + return FALSE; +} + +BOOL +NTAPI +VirtualProtect( + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flNewProtect, + OUT PDWORD lpflOldProtect + ) +{ + /* Call the extended API */ + return VirtualProtectEx(GetCurrentProcess(), + lpAddress, + dwSize, + flNewProtect, + lpflOldProtect); +} + +BOOL +NTAPI +VirtualProtectEx( + IN HANDLE hProcess, + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flNewProtect, + OUT PDWORD lpflOldProtect + ) +{ + NTSTATUS Status; + + /* Change the protection */ + Status = NtProtectVirtualMemory(hProcess, + &lpAddress, + &dwSize, + flNewProtect, + (PULONG)lpflOldProtect); + if (!NT_SUCCESS(Status)) + { + /* We failed */ + BaseSetLastNTError(Status); + return FALSE; + } + + /* Return success */ + return TRUE; +} + +SIZE_T +NTAPI +VirtualQuery( + IN LPCVOID lpAddress, + OUT PMEMORY_BASIC_INFORMATION lpBuffer, + IN SIZE_T dwLength + ) +{ + /* Call the extended API */ + return VirtualQueryEx(NtCurrentProcess(), + lpAddress, + lpBuffer, + dwLength); +} + +SIZE_T +NTAPI +VirtualQueryEx( + IN HANDLE hProcess, + IN LPCVOID lpAddress, + OUT PMEMORY_BASIC_INFORMATION lpBuffer, + IN SIZE_T dwLength + ) +{ + NTSTATUS Status; + SIZE_T ResultLength; + + /* Query basic information */ + Status = NtQueryVirtualMemory(hProcess, + (LPVOID)lpAddress, + MemoryBasicInformation, + lpBuffer, + dwLength, + &ResultLength); + if (!NT_SUCCESS(Status)) + { + /* We failed */ + BaseSetLastNTError(Status); + return 0; + } + + /* Return the length returned */ + return ResultLength; +} + +BOOL +NTAPI +ReadProcessMemory( + IN HANDLE hProcess, + IN LPCVOID lpBaseAddress, + IN LPVOID lpBuffer, + IN SIZE_T nSize, + OUT SIZE_T* lpNumberOfBytesRead + ) +{ + NTSTATUS Status; + + /* Do the read */ + Status = NtReadVirtualMemory(hProcess, + (PVOID)lpBaseAddress, + lpBuffer, + nSize, + &nSize); + + /* In user-mode, this parameter is optional */ + if (lpNumberOfBytesRead) *lpNumberOfBytesRead = nSize; + if (!NT_SUCCESS(Status)) + { + /* We failed */ + BaseSetLastNTError(Status); + return FALSE; + } + + /* Return success */ + return TRUE; +} + +BOOL +WINAPI +FlushInstructionCache( + IN HANDLE hProcess, + IN LPCVOID lpBaseAddress, + IN SIZE_T nSize + ) +{ + NTSTATUS Status; + + /* Call the native function */ + Status = NtFlushInstructionCache(hProcess, (PVOID)lpBaseAddress, nSize); + if (!NT_SUCCESS(Status)) + { + /* Handle failure case */ + BaseSetLastNTError(Status); + return FALSE; + } + + /* All good */ + return TRUE; +} + +DWORD +WINAPI +SuspendThread( + IN HANDLE hThread + ) +{ + ULONG PreviousSuspendCount; + NTSTATUS Status; + + Status = NtSuspendThread(hThread, &PreviousSuspendCount); + if (!NT_SUCCESS(Status)) + { + BaseSetLastNTError(Status); + return -1; + } + + return PreviousSuspendCount; +} + +DWORD +WINAPI +ResumeThread( + IN HANDLE hThread + ) +{ + ULONG PreviousResumeCount; + NTSTATUS Status; + + Status = NtResumeThread(hThread, &PreviousResumeCount); + if (!NT_SUCCESS(Status)) + { + BaseSetLastNTError(Status); + return -1; + } + + return PreviousResumeCount; +} + +BOOL +WINAPI +GetThreadContext( + IN HANDLE hThread, + OUT LPCONTEXT lpContext + ) +{ + NTSTATUS Status; + + Status = NtGetContextThread(hThread, lpContext); + if (!NT_SUCCESS(Status)) + { + BaseSetLastNTError(Status); + return FALSE; + } + + return TRUE; +} + +BOOL +WINAPI +SetThreadContext( + IN HANDLE hThread, + IN CONST CONTEXT *lpContext + ) +{ + NTSTATUS Status; + + Status = NtSetContextThread(hThread, (PCONTEXT)lpContext); + if (!NT_SUCCESS(Status)) + { + BaseSetLastNTError(Status); + return FALSE; + } + + return TRUE; +} + +#ifdef __cplusplus +} +#endif diff --git a/DetoursNT/DetoursNT.h b/DetoursNT/DetoursNT.h new file mode 100644 index 0000000..8df4030 --- /dev/null +++ b/DetoursNT/DetoursNT.h @@ -0,0 +1,348 @@ +#pragma once + +#define _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE 1 +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#pragma region CRT + +extern IMAGE_DOS_HEADER __ImageBase; + +#pragma intrinsic(strlen) + +void* __cdecl +memset( + void* dest, + int ch, + size_t count + ); + +void* __cdecl +memcpy( + void* dest, + const void* src, + size_t count + ); + +// void* __cdecl +// malloc( +// size_t size +// ); +// +// void* __cdecl +// calloc( +// size_t count, +// size_t size +// ); +// +// void* __cdecl +// realloc( +// void* ptr, +// size_t new_size +// ); +// +// void __cdecl +// free( +// void* ptr +// ); + +#pragma endregion + +#pragma region Detours/module.cpp + +ULONG WINAPI DetourGetModuleSize(_In_opt_ HMODULE hModule); + +#pragma endregion + +#pragma region NTDLL.DLL + +#define NtCurrentProcess() ((HANDLE)(LONG_PTR)-1) +#define ZwCurrentProcess() NtCurrentProcess() +#define NtCurrentThread() ((HANDLE)(LONG_PTR)-2) +#define ZwCurrentThread() NtCurrentThread() + +typedef enum _MEMORY_INFORMATION_CLASS +{ + MemoryBasicInformation, + MemoryWorkingSetList, + MemorySectionName, + MemoryBasicVlmInformation, + MemoryWorkingSetExList +} MEMORY_INFORMATION_CLASS; + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtAllocateVirtualMemory( + _In_ HANDLE ProcessHandle, + _Inout_ _At_(*BaseAddress, _Readable_bytes_(*RegionSize) _Writable_bytes_(*RegionSize) _Post_readable_byte_size_(*RegionSize)) PVOID *BaseAddress, + _In_ ULONG_PTR ZeroBits, + _Inout_ PSIZE_T RegionSize, + _In_ ULONG AllocationType, + _In_ ULONG Protect + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtFreeVirtualMemory( + _In_ HANDLE ProcessHandle, + _Inout_ PVOID *BaseAddress, + _Inout_ PSIZE_T RegionSize, + _In_ ULONG FreeType + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtProtectVirtualMemory( + _In_ HANDLE ProcessHandle, + _Inout_ PVOID *BaseAddress, + _Inout_ PSIZE_T RegionSize, + _In_ ULONG NewProtect, + _Out_ PULONG OldProtect + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtQueryVirtualMemory( + _In_ HANDLE ProcessHandle, + _In_opt_ PVOID BaseAddress, + _In_ MEMORY_INFORMATION_CLASS MemoryInformationClass, + _Out_writes_bytes_(MemoryInformationLength) PVOID MemoryInformation, + _In_ SIZE_T MemoryInformationLength, + _Out_opt_ PSIZE_T ReturnLength + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtReadVirtualMemory( + _In_ HANDLE ProcessHandle, + _In_opt_ PVOID BaseAddress, + _Out_writes_bytes_(BufferSize) PVOID Buffer, + _In_ SIZE_T BufferSize, + _Out_opt_ PSIZE_T NumberOfBytesRead + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtWriteVirtualMemory( + _In_ HANDLE ProcessHandle, + _In_opt_ PVOID BaseAddress, + _In_reads_bytes_(BufferSize) PVOID Buffer, + _In_ SIZE_T BufferSize, + _Out_opt_ PSIZE_T NumberOfBytesWritten + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtFlushInstructionCache( + _In_ HANDLE ProcessHandle, + _In_opt_ PVOID BaseAddress, + _In_ SIZE_T Length + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSuspendThread( + _In_ HANDLE ThreadHandle, + _Out_opt_ PULONG PreviousSuspendCount + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtResumeThread( + _In_ HANDLE ThreadHandle, + _Out_opt_ PULONG PreviousSuspendCount + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtGetContextThread( + _In_ HANDLE ThreadHandle, + _Inout_ PCONTEXT ThreadContext + ); + +NTSYSCALLAPI +NTSTATUS +NTAPI +NtSetContextThread( + _In_ HANDLE ThreadHandle, + _In_ PCONTEXT ThreadContext + ); + +#pragma endregion + +#pragma region KERNEL32.DLL + +#define GetLastError Mock_GetLastError +#define SetLastError Mock_SetLastError + +#define GetCurrentProcess() NtCurrentProcess() +#define GetCurrentThread() NtCurrentThread() +#define GetCurrentThreadId Mock_GetCurrentThreadId + +#define VirtualAlloc Mock_VirtualAlloc +#define VirtualAllocEx Mock_VirtualAllocEx +#define VirtualFree Mock_VirtualFree +#define VirtualFreeEx Mock_VirtualFreeEx +#define VirtualProtect Mock_VirtualProtect +#define VirtualProtectEx Mock_VirtualProtectEx +#define VirtualQuery Mock_VirtualQuery +#define VirtualQueryEx Mock_VirtualQueryEx +#define ReadProcessMemory Mock_ReadProcessMemory +#define WriteProcessMemory Mock_WriteProcessMemory +#define FlushInstructionCache Mock_FlushInstructionCache +#define SuspendThread Mock_SuspendThread +#define ResumeThread Mock_ResumeThread +#define GetThreadContext Mock_GetThreadContext +#define SetThreadContext Mock_SetThreadContext +#define DebugBreak __debugbreak + +DWORD +WINAPI +GetLastError( + VOID + ); + +VOID +WINAPI +SetLastError( + IN DWORD dwErrCode + ); + +DWORD +WINAPI +GetCurrentThreadId( + VOID + ); + +LPVOID +NTAPI +VirtualAlloc( + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flAllocationType, + IN DWORD flProtect + ); + +LPVOID +NTAPI +VirtualAllocEx( + IN HANDLE hProcess, + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flAllocationType, + IN DWORD flProtect + ); + +BOOL +NTAPI +VirtualFree( + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD dwFreeType + ); + +BOOL +NTAPI +VirtualFreeEx( + IN HANDLE hProcess, + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD dwFreeType + ); + +BOOL +NTAPI +VirtualProtect( + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flNewProtect, + OUT PDWORD lpflOldProtect + ); + +BOOL +NTAPI +VirtualProtectEx( + IN HANDLE hProcess, + IN LPVOID lpAddress, + IN SIZE_T dwSize, + IN DWORD flNewProtect, + OUT PDWORD lpflOldProtect + ); + +SIZE_T +NTAPI +VirtualQuery( + IN LPCVOID lpAddress, + OUT PMEMORY_BASIC_INFORMATION lpBuffer, + IN SIZE_T dwLength + ); + +SIZE_T +NTAPI +VirtualQueryEx( + IN HANDLE hProcess, + IN LPCVOID lpAddress, + OUT PMEMORY_BASIC_INFORMATION lpBuffer, + IN SIZE_T dwLength + ); + +BOOL +NTAPI +ReadProcessMemory( + IN HANDLE hProcess, + IN LPCVOID lpBaseAddress, + IN LPVOID lpBuffer, + IN SIZE_T nSize, + OUT SIZE_T* lpNumberOfBytesRead + ); + +BOOL +WINAPI +FlushInstructionCache( + IN HANDLE hProcess, + IN LPCVOID lpBaseAddress, + IN SIZE_T nSize + ); + +DWORD +WINAPI +SuspendThread( + IN HANDLE hThread + ); + +DWORD +WINAPI +ResumeThread( + IN HANDLE hThread + ); + +BOOL +WINAPI +GetThreadContext( + IN HANDLE hThread, + OUT LPCONTEXT lpContext + ); + +BOOL +WINAPI +SetThreadContext( + IN HANDLE hThread, + IN CONST CONTEXT *lpContext + ); + +#ifdef __cplusplus +} +#endif diff --git a/DetoursNT/DetoursNT.vcxproj b/DetoursNT/DetoursNT.vcxproj new file mode 100644 index 0000000..78ce803 --- /dev/null +++ b/DetoursNT/DetoursNT.vcxproj @@ -0,0 +1,200 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + + + {C78B9003-FC49-4BBF-8F29-52FAD48BB58A} + Win32Proj + DetoursNT + 8.1 + + + + StaticLibrary + true + v141 + Unicode + + + StaticLibrary + false + v141 + true + Unicode + + + StaticLibrary + true + v141 + Unicode + + + StaticLibrary + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + true + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + + + + Level3 + Disabled + MultiThreadedDebug + false + Default + false + $(ProjectDir)DetoursNT.h + false + true + + + Windows + true + ntdll.lib + Default + + + + + + + Level3 + Disabled + MultiThreadedDebug + false + Default + false + $(ProjectDir)DetoursNT.h + false + true + + + Windows + true + ntdll.lib + Default + + + + + Level3 + + + MaxSpeed + true + true + MultiThreaded + false + $(ProjectDir)DetoursNT.h + false + false + true + + + Windows + true + true + true + Default + ntdll.lib + + + + + Level3 + + + MaxSpeed + true + true + MultiThreaded + false + $(ProjectDir)DetoursNT.h + false + false + true + + + Windows + true + true + true + ntdll.lib + Default + + + + + + \ No newline at end of file diff --git a/DetoursNT/DetoursNT.vcxproj.filters b/DetoursNT/DetoursNT.vcxproj.filters new file mode 100644 index 0000000..a70faff --- /dev/null +++ b/DetoursNT/DetoursNT.vcxproj.filters @@ -0,0 +1,60 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + {188cea67-e1ec-45f2-9f5f-4d5305424006} + + + {9ceaf48e-9556-48de-8843-db3da4464cbe} + + + + + Header Files\Detours + + + Header Files\Detours + + + Header Files + + + + + Source Files\Detours + + + Source Files\Detours + + + Source Files\Detours + + + Source Files\Detours + + + Source Files\Detours + + + Source Files\Detours + + + Source Files\Detours + + + Source Files + + + \ No newline at end of file diff --git a/DetoursNT/DetoursNT.vcxproj.user b/DetoursNT/DetoursNT.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/DetoursNT/DetoursNT.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Images/depends.png b/Images/depends.png new file mode 100644 index 0000000000000000000000000000000000000000..ae3891beb2c4887aca50280de418898eaaacf52f GIT binary patch literal 163796 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%0AjS7Mj*X(&?d_Ky*VnYboCYr5mdaKXN!dP{ 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 E05(~57ytkO literal 0 HcmV?d00001 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..2de4b63 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Petr Benes + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..d980639 --- /dev/null +++ b/README.md @@ -0,0 +1,70 @@ +# DetoursNT + +DetoursNT is a simple project with one goal - make Detours dependent only on `NTDLL.DLL` without any modifications of +the original code. + +### Why? + +- Because this way you can hook native processes. +- Because this way you can load your hooking library **right after** load of `NTDLL.DLL` + - This can be achieved in many ways - for example using Windows Driver via so-called APC injection. + You can look at my project [KeInject][keinject] to get an idea about how is this done. + +### How? + +This repository has attached original git repository of Detours from Microsoft as a submodule. +Therefore, the original code hasn't been touched in any way. + +NTDLL-only dependency been achieved by creating a C header file [DetoursNT.h](DetoursNT/DetoursNT.h) which has +been force-included (`/FI` switch of MSVC) into every compilation unit of Detours. This header +mocks functions of `KERNEL32.DLL` to custom implementation defined in [DetoursNT.cpp](DetoursNT/DetoursNT.cpp). + +I'd like to thank authors of following projects: +- [ReactOS][reactos] - used for implementation of `KERNEL32.DLL` functions +- [ProcessHacker][processhacker] - used for prototypes of `NTDLL.DLL` functions + +### Compilation + +Because original Detours source code is attached as a git submodule, you must not forget to fetch it: + +`git clone --recurse-submodules https://github.com/wbenny/DetoursNT` + +After that, compile **DetoursNT** using Visual Studio 2017. Solution file is included. No other dependencies are required. + +### Usage + +After you hit `F7` in Visual Studio and have everyting compiled, you can check that `SampleHookDLL.dll` +indeed depends only on `NTDLL.DLL`: + +![Dependency Walker](Images/depends.png) + +This hooking DLL only hooks `NtTestAlert` function for demonstrative purposes. In this repository there is also +`Sample` project. It's only purpose is to call `LoadLibrary(TEXT("SampleHookDLL.dll"))`, `NtTestAlert()` and +`FreeLibrary()` to show you that the hook is working. + +![Sample](Images/sample.png) + +### Remarks + +- This implementation intentionally crashes on SEH exceptions which occur inside of Detours. This is because SEH + handlers are usually located in CRT (which is ommited here). +- Only x86 and x64 is currently supported. + + +### License + +This software is open-source under the MIT license. See the LICENSE.txt file in this repository. + +[Detours][detours] is licensed under MIT license (a copy of the license is included in separate git submodule) + +If you find this project interesting, you can buy me a coffee + +``` + BTC 12hwTTPYDbkVqsfpGjrsVa7WpShvQn24ro + LTC LLDVqnBEMS8Tv7ZF1otcy56HDhkXVVFJDH +``` + + [detours]: + [keinject]: + [reactos]: + [processhacker]: \ No newline at end of file diff --git a/Sample/Sample.vcxproj b/Sample/Sample.vcxproj new file mode 100644 index 0000000..1b0011e --- /dev/null +++ b/Sample/Sample.vcxproj @@ -0,0 +1,171 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {113B23FE-32D7-4D79-8A74-119BC11C25E2} + Win32Proj + Sample + 8.1 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + true + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + + Level3 + Disabled + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + + + Console + true + ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + + + Console + true + ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + + + Console + true + true + true + ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + Level3 + MaxSpeed + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + + + + + Console + true + true + true + ntdll.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies) + + + + + + + + + \ No newline at end of file diff --git a/Sample/Sample.vcxproj.filters b/Sample/Sample.vcxproj.filters new file mode 100644 index 0000000..a91ad0e --- /dev/null +++ b/Sample/Sample.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/Sample/Sample.vcxproj.user b/Sample/Sample.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/Sample/Sample.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/Sample/main.cpp b/Sample/main.cpp new file mode 100644 index 0000000000000000000000000000000000000000..0372d89bfb789d206aad2fe64152a64267f56af3 GIT binary patch literal 1030 zcmchVZA$_{6ot>{p#QKafkH^sm*@?av=mm2%3eT_P1lqx#WqT!zg|6e))iTdzR55< zGk4EDbI!f<^PN{uk@_0yh1JuoYHDatyXq)VMLwsF`<7Yj^T?()ly^B@jr8U?JRPa4 zSH+x$8tX)Vq266)56nCGk_L0E;bYA-K}n*@Lqih<=O}CFT31Y;*AY#9;56gd|@<}wRB+iI8g5WiQ+aVNE~&5z#$cWmI)4Qf z9qx01p1_u%`f%ppvh$;hh1_Uq_tlLz{IxBOAn~0Hhx7ty*LjO5x(XYY0zUy>lo?^N<<$jO1lf1Am H_cnh4fa;g= literal 0 HcmV?d00001 diff --git a/SampleHookDLL/SampleHookDLL.vcxproj b/SampleHookDLL/SampleHookDLL.vcxproj new file mode 100644 index 0000000..58e399f --- /dev/null +++ b/SampleHookDLL/SampleHookDLL.vcxproj @@ -0,0 +1,197 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + {c78b9003-fc49-4bbf-8f29-52fad48bb58a} + + + + {6266D1B7-DD83-4A79-B7F3-DA8099BBAB1B} + Win32Proj + SampleHookDLL + 8.1 + + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + DynamicLibrary + true + v141 + Unicode + + + DynamicLibrary + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + true + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + false + $(SolutionDir)Bin\$(PlatformShortName)\$(Configuration)\ + $(SolutionDir)Bin\Obj\$(PlatformShortName)\$(Configuration)\$(ProjectName)\ + + + + + + Level3 + Disabled + MultiThreadedDebug + false + Default + false + false + true + $(SolutionDir)Detours\src;%(AdditionalIncludeDirectories) + + + Windows + true + NtDllMain + ntdll.lib + Default + + + + + + + Level3 + Disabled + MultiThreadedDebug + false + Default + false + false + true + $(SolutionDir)Detours\src;%(AdditionalIncludeDirectories) + + + Windows + true + NtDllMain + ntdll.lib + Default + + + + + Level3 + + + MaxSpeed + true + true + MultiThreaded + false + false + false + true + $(SolutionDir)Detours\src;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + NtDllMain + Default + ntdll.lib + + + + + Level3 + + + MaxSpeed + true + true + MultiThreaded + false + false + false + true + $(SolutionDir)Detours\src;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + NtDllMain + ntdll.lib + Default + + + + + + \ No newline at end of file diff --git a/SampleHookDLL/SampleHookDLL.vcxproj.filters b/SampleHookDLL/SampleHookDLL.vcxproj.filters new file mode 100644 index 0000000..0d8d9e4 --- /dev/null +++ b/SampleHookDLL/SampleHookDLL.vcxproj.filters @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ No newline at end of file diff --git a/SampleHookDLL/SampleHookDLL.vcxproj.user b/SampleHookDLL/SampleHookDLL.vcxproj.user new file mode 100644 index 0000000..be25078 --- /dev/null +++ b/SampleHookDLL/SampleHookDLL.vcxproj.user @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/SampleHookDLL/main.cpp b/SampleHookDLL/main.cpp new file mode 100644 index 0000000..db787d8 --- /dev/null +++ b/SampleHookDLL/main.cpp @@ -0,0 +1,71 @@ +#include +#include + +#define NtCurrentProcess() ((HANDLE)(LONG_PTR)-1) +#define ZwCurrentProcess() NtCurrentProcess() +#define NtCurrentThread() ((HANDLE)(LONG_PTR)-2) +#define ZwCurrentThread() NtCurrentThread() + +typedef NTSTATUS (NTAPI * fnNtTestAlert)( + VOID + ); + +static fnNtTestAlert OrigNtTestAlert; + +EXTERN_C +NTSYSAPI +NTSTATUS +NTAPI +NtTestAlert( + VOID + ); + +EXTERN_C +NTSTATUS +NTAPI +HookNtTestAlert( + VOID + ) +{ + return 0x1337; +} + +EXTERN_C +BOOL +WINAPI +NtDllMain( + _In_ HINSTANCE hModule, + _In_ DWORD dwReason, + _In_ LPVOID lpvReserved + ) +{ + switch (dwReason) + { + case DLL_PROCESS_ATTACH: + OrigNtTestAlert = NtTestAlert; + + DetourTransactionBegin(); + DetourUpdateThread(NtCurrentThread()); + DetourAttach((PVOID*)&OrigNtTestAlert, HookNtTestAlert); + DetourTransactionCommit(); + break; + + case DLL_PROCESS_DETACH: + DetourTransactionBegin(); + DetourUpdateThread(NtCurrentThread()); + DetourDetach((PVOID*)&OrigNtTestAlert, HookNtTestAlert); + DetourTransactionCommit(); + break; + + case DLL_THREAD_ATTACH: + + break; + + case DLL_THREAD_DETACH: + + break; + } + + return TRUE; +} +