├── README.md ├── busybox ├── YIFI ├── DPC.sys ├── Main.cpp ├── Target.exe ├── YIFI.vcxproj.filters └── YIFI.vcxproj ├── Target ├── stdafx.h ├── Target.cpp ├── stdafx.cpp ├── targetver.h ├── ReadMe.txt ├── Target.vcxproj.filters └── Target.vcxproj ├── InjectDll ├── stdafx.cpp ├── stdafx.h ├── dllmain.cpp ├── targetver.h ├── InjectDll.cpp ├── dllmain.cpp.dump ├── ReadMe.txt ├── InjectDll.vcxproj.filters └── InjectDll.vcxproj ├── WonderWallDll ├── stdafx.h ├── Common.h ├── Inject.cpp ├── Target.exe ├── dllmain.cpp ├── stdafx.cpp ├── targetver.h ├── Driver │ ├── Driver.cpp │ └── Driver.h ├── WonderWallDll.cpp ├── Process │ └── EnumProcess.cpp ├── ReadMe.txt ├── WonderWallDll.h ├── Rtl │ ├── file.cpp │ ├── memory.cpp │ └── error.cpp ├── ntstatus.h ├── WonderWallDll.vcxproj.filters ├── DriverShared │ └── rtl.h └── WonderWallDll.vcxproj ├── WonderWallDriver ├── Inject │ ├── Inject.c │ └── Inject.h ├── Process │ ├── Process.c │ └── Process.h ├── WonderWallDriver.c ├── WonderWallDriver.h ├── Trace.h ├── Common.h ├── WonderWallDriver.vcxproj.filters └── WonderWallDriver.vcxproj ├── .gitattributes ├── .gitignore └── YIFI.sln /README.md: -------------------------------------------------------------------------------- 1 | # YIFI 杂项 2 | -------------------------------------------------------------------------------- /busybox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/busybox -------------------------------------------------------------------------------- /YIFI/DPC.sys: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/YIFI/DPC.sys -------------------------------------------------------------------------------- /Target/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/Target/stdafx.h -------------------------------------------------------------------------------- /YIFI/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/YIFI/Main.cpp -------------------------------------------------------------------------------- /YIFI/Target.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/YIFI/Target.exe -------------------------------------------------------------------------------- /Target/Target.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/Target/Target.cpp -------------------------------------------------------------------------------- /Target/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/Target/stdafx.cpp -------------------------------------------------------------------------------- /InjectDll/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/InjectDll/stdafx.cpp -------------------------------------------------------------------------------- /InjectDll/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/InjectDll/stdafx.h -------------------------------------------------------------------------------- /Target/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/Target/targetver.h -------------------------------------------------------------------------------- /InjectDll/dllmain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/InjectDll/dllmain.cpp -------------------------------------------------------------------------------- /InjectDll/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/InjectDll/targetver.h -------------------------------------------------------------------------------- /WonderWallDll/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/stdafx.h -------------------------------------------------------------------------------- /InjectDll/InjectDll.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/InjectDll/InjectDll.cpp -------------------------------------------------------------------------------- /WonderWallDll/Common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | #define MAXPROCESSES 1024 5 | #define MAXSIZE 256 -------------------------------------------------------------------------------- /WonderWallDll/Inject.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/Inject.cpp -------------------------------------------------------------------------------- /WonderWallDll/Target.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/Target.exe -------------------------------------------------------------------------------- /WonderWallDll/dllmain.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/dllmain.cpp -------------------------------------------------------------------------------- /WonderWallDll/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/stdafx.cpp -------------------------------------------------------------------------------- /WonderWallDll/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/targetver.h -------------------------------------------------------------------------------- /WonderWallDll/Driver/Driver.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/Driver/Driver.cpp -------------------------------------------------------------------------------- /WonderWallDll/WonderWallDll.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/WonderWallDll.cpp -------------------------------------------------------------------------------- /WonderWallDriver/Inject/Inject.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDriver/Inject/Inject.c -------------------------------------------------------------------------------- /WonderWallDriver/Inject/Inject.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDriver/Inject/Inject.h -------------------------------------------------------------------------------- /WonderWallDriver/Process/Process.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDriver/Process/Process.c -------------------------------------------------------------------------------- /WonderWallDriver/WonderWallDriver.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDriver/WonderWallDriver.c -------------------------------------------------------------------------------- /WonderWallDll/Process/EnumProcess.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Eva1216/MagicWall/HEAD/WonderWallDll/Process/EnumProcess.cpp -------------------------------------------------------------------------------- /WonderWallDriver/Process/Process.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "..\Common.h" 4 | #include "..\WonderWallDriver.h" 5 | 6 | -------------------------------------------------------------------------------- /WonderWallDll/Driver/Driver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "..\stdafx.h" 3 | #include "..\DriverShared\rtl.h" 4 | #include "..\WonderWallDll.h" -------------------------------------------------------------------------------- /WonderWallDriver/WonderWallDriver.h: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include 4 | #include 5 | 6 | 7 | VOID UnloadDriver(PDRIVER_OBJECT DriverObject); 8 | 9 | NTSTATUS DefaultPassDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp); 10 | NTSTATUS ControlPassDispatch(PDEVICE_OBJECT DeviceObject, PIRP Irp); 11 | 12 | 13 | /*INJECTPROCESS*/ 14 | NTSTATUS InjectProcess(); 15 | VOID ExitInjectProcess(); 16 | -------------------------------------------------------------------------------- /WonderWallDriver/Trace.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define CTL_CODE( DeviceType, Function, Method, Access ) ( \ 4 | ((DeviceType) << 16) | ((Access) << 14) | ((Function) << 2) | (Method) ) 5 | 6 | #define CTL_GETPROCESSIMAGNAMEBYID \ 7 | CTL_CODE(FILE_DEVICE_UNKNOWN,0x830,METHOD_NEITHER,FILE_ANY_ACCESS) 8 | 9 | 10 | #define CTL_INJECTPROCESS \ 11 | CTL_CODE(FILE_DEVICE_UNKNOWN,0x831,METHOD_NEITHER,FILE_ANY_ACCESS) -------------------------------------------------------------------------------- /InjectDll/dllmain.cpp.dump: -------------------------------------------------------------------------------- 1 | // dllmain.cpp : 定义 DLL 应用程序的入口点。 2 | #include "stdafx.h" 3 | #include 4 | #include 5 | 6 | using namespace std; 7 | BOOL APIENTRY DllMain( HMODULE hModule, 8 | DWORD ul_reason_for_call, 9 | LPVOID lpReserved 10 | ) 11 | { 12 | switch (ul_reason_for_call) 13 | { 14 | case DLL_PROCESS_ATTACH: 15 | MessageBoxA(NULL, "Success", "Inject", MB_OK); 16 | case DLL_THREAD_ATTACH: 17 | case DLL_THREAD_DETACH: 18 | case DLL_PROCESS_DETACH: 19 | break; 20 | } 21 | return TRUE; 22 | } 23 | 24 | extern "C" _declspec(dllexport) void __cdecl InjectFunction() 25 | { 26 | int a = 0; 27 | 28 | return; 29 | } -------------------------------------------------------------------------------- /YIFI/YIFI.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 源文件 20 | 21 | 22 | -------------------------------------------------------------------------------- /Target/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | 控制台应用程序:Target 项目概述 3 | ======================================================================== 4 | 5 | 应用程序向导已为您创建了此 Target 应用程序。 6 | 7 | 本文件概要介绍组成 Target 应用程序的每个文件的内容。 8 | 9 | 10 | Target.vcxproj 11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 12 | 13 | Target.vcxproj.filters 14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。 15 | 16 | Target.cpp 17 | 这是主应用程序源文件。 18 | 19 | ///////////////////////////////////////////////////////////////////////////// 20 | 其他标准文件: 21 | 22 | StdAfx.h, StdAfx.cpp 23 | 这些文件用于生成名为 Target.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。 24 | 25 | ///////////////////////////////////////////////////////////////////////////// 26 | 其他注释: 27 | 28 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。 29 | 30 | ///////////////////////////////////////////////////////////////////////////// 31 | -------------------------------------------------------------------------------- /InjectDll/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | 动态链接库:InjectDll 项目概述 3 | ======================================================================== 4 | 5 | 应用程序向导已为您创建了此 InjectDll DLL。 6 | 7 | 本文件概要介绍组成 InjectDll 应用程序的每个文件的内容。 8 | 9 | 10 | InjectDll.vcxproj 11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 12 | 13 | InjectDll.vcxproj.filters 14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。 15 | 16 | InjectDll.cpp 17 | 这是主 DLL 源文件。 18 | 19 | 此 DLL 在创建时不导出任何符号。因此,生成时不会产生 .lib 文件。如果希望此项目成为其他某个项目的项目依赖项,则需要添加代码以从 DLL 导出某些符号,以便产生一个导出库,或者,也可以在项目“属性页”对话框中的“链接器”文件夹中,将“常规”属性页上的“忽略输入库”属性设置为“是”。 20 | 21 | ///////////////////////////////////////////////////////////////////////////// 22 | 其他标准文件: 23 | 24 | StdAfx.h, StdAfx.cpp 25 | 这些文件用于生成名为 InjectDll.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。 26 | 27 | ///////////////////////////////////////////////////////////////////////////// 28 | 其他注释: 29 | 30 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。 31 | 32 | ///////////////////////////////////////////////////////////////////////////// 33 | -------------------------------------------------------------------------------- /WonderWallDll/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | 动态链接库:WonderWallDll 项目概述 3 | ======================================================================== 4 | 5 | 应用程序向导已为您创建了此 WonderWallDll DLL。 6 | 7 | 本文件概要介绍组成 WonderWallDll 应用程序的每个文件的内容。 8 | 9 | 10 | WonderWallDll.vcxproj 11 | 这是使用应用程序向导生成的 VC++ 项目的主项目文件,其中包含生成该文件的 Visual C++ 的版本信息,以及有关使用应用程序向导选择的平台、配置和项目功能的信息。 12 | 13 | WonderWallDll.vcxproj.filters 14 | 这是使用“应用程序向导”生成的 VC++ 项目筛选器文件。它包含有关项目文件与筛选器之间的关联信息。在 IDE 中,通过这种关联,在特定节点下以分组形式显示具有相似扩展名的文件。例如,“.cpp”文件与“源文件”筛选器关联。 15 | 16 | WonderWallDll.cpp 17 | 这是主 DLL 源文件。 18 | 19 | 此 DLL 在创建时不导出任何符号。因此,生成时不会产生 .lib 文件。如果希望此项目成为其他某个项目的项目依赖项,则需要添加代码以从 DLL 导出某些符号,以便产生一个导出库,或者,也可以在项目“属性页”对话框中的“链接器”文件夹中,将“常规”属性页上的“忽略输入库”属性设置为“是”。 20 | 21 | ///////////////////////////////////////////////////////////////////////////// 22 | 其他标准文件: 23 | 24 | StdAfx.h, StdAfx.cpp 25 | 这些文件用于生成名为 WonderWallDll.pch 的预编译头 (PCH) 文件和名为 StdAfx.obj 的预编译类型文件。 26 | 27 | ///////////////////////////////////////////////////////////////////////////// 28 | 其他注释: 29 | 30 | 应用程序向导使用“TODO:”注释来指示应添加或自定义的源代码部分。 31 | 32 | ///////////////////////////////////////////////////////////////////////////// 33 | -------------------------------------------------------------------------------- /Target/Target.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 头文件 23 | 24 | 25 | 头文件 26 | 27 | 28 | 29 | 30 | 源文件 31 | 32 | 33 | 源文件 34 | 35 | 36 | -------------------------------------------------------------------------------- /WonderWallDll/WonderWallDll.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "stdafx.h" 3 | #include "Common.h" 4 | #include "WonderWallDll.h" 5 | #include 6 | WONDERWALL_BOOL_EXPORT EnumProcess(PROCESSENTRY32* ProcessEntry,ULONG32 Index); 7 | 8 | WONDERWALL_BOOL_EXPORT InJectProcess(CHAR* ProcessName, CHAR* DllName, CHAR* FunctionName, ULONG32 Index); 9 | WONDERWALL_NT_EXPORT RhInstallDriver(WCHAR* InDriverPath,WCHAR* InDriverName); 10 | 11 | BOOL EnumProcessByCreateToolhelp32Snapshot(PROCESSENTRY32 * ProcessEntry); 12 | 13 | BOOL EnumProcessByZwQuerySystemInformation(PROCESSENTRY32 * ProcessEntry); 14 | 15 | BOOL EnumProcessBypsapi(PROCESSENTRY32 * ProcessEntry); 16 | 17 | BOOL EnumProcessByWTSEnumerateProcesses(PROCESSENTRY32 * ProcessEntry); 18 | 19 | BOOL SendIoControl(int * InputData, ULONG InputSize, PROCESSENTRY32 * ProcessInfo, DWORD * dwReturn); 20 | 21 | BOOL WcharToChar(CHAR ** szDestString, WCHAR * wzSourString); 22 | BOOL EnumProcessInDriver(PROCESSENTRY32 * ProcessEntry); 23 | 24 | 25 | BOOL IatInject(CHAR* ProcessName, CHAR* DllName, CHAR* FunctionName); 26 | 27 | 28 | ULONG32 PEAlign(ULONG32 dwNumber, ULONG32 dwAlign); 29 | 30 | BOOL AddNewSection(CHAR* ProcessName); 31 | BOOL AddNewImportDescriptor(CHAR* ProcessName, CHAR* DllName, CHAR* FunctionName); 32 | DWORD RVAToFOA(PIMAGE_NT_HEADERS pNTHeaders, DWORD dwRVA); 33 | PIMAGE_SECTION_HEADER GetOwnerSection(PIMAGE_NT_HEADERS pNTHeaders, DWORD dwRVA); 34 | 35 | -------------------------------------------------------------------------------- /InjectDll/InjectDll.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 头文件 23 | 24 | 25 | 头文件 26 | 27 | 28 | 29 | 30 | 源文件 31 | 32 | 33 | 源文件 34 | 35 | 36 | 源文件 37 | 38 | 39 | -------------------------------------------------------------------------------- /WonderWallDll/Rtl/file.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include "..\stdafx.h" 4 | extern HMODULE hCurrentModule; 5 | BOOL RtlFileExists(WCHAR* InPath) 6 | { 7 | HANDLE hFile; 8 | 9 | if((hFile = CreateFileW(InPath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL)) == INVALID_HANDLE_VALUE) 10 | return FALSE; 11 | 12 | CloseHandle(hFile); 13 | 14 | return TRUE; 15 | } 16 | 17 | LONG RtlGetWorkingDirectory(WCHAR* OutPath, ULONG InMaxLength) 18 | { 19 | NTSTATUS NtStatus; 20 | LONG Index; 21 | 22 | Index = GetModuleFileName(NULL, OutPath, InMaxLength); 23 | 24 | if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) 25 | THROW(STATUS_BUFFER_TOO_SMALL, L"The given buffer is too small."); 26 | 27 | // remove file name... 28 | for(Index--; Index >= 0; Index--) 29 | { 30 | if(OutPath[Index] == '\\') 31 | { 32 | OutPath[Index + 1] = 0; 33 | 34 | break; 35 | } 36 | } 37 | 38 | RETURN; 39 | 40 | THROW_OUTRO: 41 | FINALLY_OUTRO: 42 | return NtStatus; 43 | } 44 | 45 | LONG RtlGetCurrentModulePath(WCHAR* OutPath, ULONG InMaxLength) 46 | { 47 | NTSTATUS NtStatus; 48 | 49 | GetModuleFileName(hCurrentModule, OutPath, InMaxLength); 50 | 51 | if(GetLastError() == ERROR_INSUFFICIENT_BUFFER) 52 | THROW(STATUS_BUFFER_TOO_SMALL, L"The given buffer is too small."); 53 | 54 | RETURN; 55 | 56 | THROW_OUTRO: 57 | FINALLY_OUTRO: 58 | return NtStatus; 59 | } 60 | -------------------------------------------------------------------------------- /WonderWallDriver/Common.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #define MAX_PATH 260 4 | 5 | 6 | #define DEVICE_NAME L"\\Device\\WonderWallDriverDeviceName" 7 | 8 | #define LINK_NAME L"\\DosDevices\\WonderWallDriverLinkName" 9 | 10 | #define PROCESS_QUERY_INFORMATION (0x0400) 11 | 12 | typedef struct _PROCESS_INFORMATION_ 13 | { 14 | ULONG EProcessAddress; 15 | ULONG ProcessNameLength; 16 | CHAR szProcessName[MAX_PATH]; 17 | ULONG ProcessFullPathLength; 18 | WCHAR wzProcessFullPath[MAX_PATH]; 19 | }PROCESS_INFORMATION, *PPROCESS_INFORMATION; 20 | 21 | typedef struct tagPROCESSENTRY32W 22 | { 23 | ULONG dwSize; 24 | ULONG cntUsage; 25 | ULONG th32ProcessID; // this process 26 | ULONG_PTR th32DefaultHeapID; 27 | ULONG th32ModuleID; // associated exe 28 | ULONG cntThreads; 29 | ULONG th32ParentProcessID; // this process's parent process 30 | LONG pcPriClassBase; // Base priority of process's threads 31 | ULONG dwFlags; 32 | WCHAR szExeFile[MAX_PATH]; // Path 33 | } PROCESSENTRY32W; 34 | typedef PROCESSENTRY32W * PPROCESSENTRY32; 35 | 36 | BOOLEAN GetProcessImageNameByProcessID(ULONG32 ulProcessID, char* szProcessImageName, ULONG32* ulProcessImageNameLength); 37 | BOOLEAN GetProcessFullPathByProcessID(ULONG32 ulProcessID, WCHAR* wzProcessFullPath, ULONG32* ulProcessFullPathLength); 38 | extern 39 | char* PsGetProcessImageFileName(PEPROCESS EProcess); 40 | extern 41 | NTSTATUS ZwQueryInformationProcess(HANDLE ProcessHandle, 42 | PROCESSINFOCLASS ProcessInformationClass,PVOID ProcessInformation,ULONG ProcessInformationLength, 43 | PULONG ReturnLength); -------------------------------------------------------------------------------- /WonderWallDll/ntstatus.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef _NTSTATUS_H_ 4 | #define _NTSTATUS_H_ 5 | 6 | #define STATUS_SUCCESS ((NTSTATUS)0x000000000) 7 | #define STATUS_NOT_SUPPORTED ((NTSTATUS)0xC00000BBL) 8 | #define STATUS_INTERNAL_ERROR ((NTSTATUS)0xC00000E5L) 9 | #define STATUS_PROCEDURE_NOT_FOUND ((NTSTATUS)0xC000007AL) 10 | #define STATUS_NOINTERFACE ((NTSTATUS)0xC00002B9L) 11 | #define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L) 12 | #define STATUS_BUFFER_TOO_SMALL ((NTSTATUS)0xC0000023L) 13 | #define STATUS_INVALID_PARAMETER ((NTSTATUS)0xC000000DL) 14 | #define STATUS_INSUFFICIENT_RESOURCES ((NTSTATUS)0xC000009AL) 15 | #define STATUS_UNHANDLED_EXCEPTION ((NTSTATUS)0xC0000144L) 16 | #define STATUS_NOT_FOUND ((NTSTATUS)0xC0000225L) 17 | #define STATUS_NOT_IMPLEMENTED ((NTSTATUS)0xC0000002L) 18 | #define STATUS_ACCESS_DENIED ((NTSTATUS)0xC0000022L) 19 | #define STATUS_ALREADY_REGISTERED ((NTSTATUS)0xC0000718L) 20 | #define STATUS_WOW_ASSERTION ((NTSTATUS)0xC0009898L) 21 | #define STATUS_BUFFER_OVERFLOW ((NTSTATUS)0x80000005L) 22 | #define STATUS_DLL_INIT_FAILED ((NTSTATUS)0xC0000142L) 23 | 24 | 25 | #define STATUS_INVALID_PARAMETER_1 ((NTSTATUS)0xC00000EFL) 26 | #define STATUS_INVALID_PARAMETER_1 ((NTSTATUS)0xC00000EFL) 27 | #define STATUS_INVALID_PARAMETER_2 ((NTSTATUS)0xC00000F0L) 28 | #define STATUS_INVALID_PARAMETER_3 ((NTSTATUS)0xC00000F1L) 29 | #define STATUS_INVALID_PARAMETER_4 ((NTSTATUS)0xC00000F2L) 30 | #define STATUS_INVALID_PARAMETER_5 ((NTSTATUS)0xC00000F3L) 31 | #define STATUS_INVALID_PARAMETER_6 ((NTSTATUS)0xC00000F4L) 32 | #define STATUS_INVALID_PARAMETER_7 ((NTSTATUS)0xC00000F5L) 33 | #define STATUS_INVALID_PARAMETER_8 ((NTSTATUS)0xC00000F6L) 34 | 35 | #endif -------------------------------------------------------------------------------- /WonderWallDriver/WonderWallDriver.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {8E41214B-6785-4CFE-B992-037D68949A14} 18 | inf;inv;inx;mof;mc; 19 | 20 | 21 | {bf071241-5b2e-42be-be86-f6278ac2333e} 22 | 23 | 24 | {0f6c22ed-9fd2-40b3-8973-972d0bd1c7cf} 25 | 26 | 27 | 28 | 29 | Source Files 30 | 31 | 32 | Process 33 | 34 | 35 | Inject 36 | 37 | 38 | 39 | 40 | Header Files 41 | 42 | 43 | Header Files 44 | 45 | 46 | Process 47 | 48 | 49 | Header Files 50 | 51 | 52 | Inject 53 | 54 | 55 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | ############################################################################### 2 | # Set default behavior to automatically normalize line endings. 3 | ############################################################################### 4 | * text=auto 5 | 6 | ############################################################################### 7 | # Set default behavior for command prompt diff. 8 | # 9 | # This is need for earlier builds of msysgit that does not have it on by 10 | # default for csharp files. 11 | # Note: This is only used by command line 12 | ############################################################################### 13 | #*.cs diff=csharp 14 | 15 | ############################################################################### 16 | # Set the merge driver for project and solution files 17 | # 18 | # Merging from the command prompt will add diff markers to the files if there 19 | # are conflicts (Merging from VS is not affected by the settings below, in VS 20 | # the diff markers are never inserted). Diff markers may cause the following 21 | # file extensions to fail to load in VS. An alternative would be to treat 22 | # these files as binary and thus will always conflict and require user 23 | # intervention with every merge. To do so, just uncomment the entries below 24 | ############################################################################### 25 | #*.sln merge=binary 26 | #*.csproj merge=binary 27 | #*.vbproj merge=binary 28 | #*.vcxproj merge=binary 29 | #*.vcproj merge=binary 30 | #*.dbproj merge=binary 31 | #*.fsproj merge=binary 32 | #*.lsproj merge=binary 33 | #*.wixproj merge=binary 34 | #*.modelproj merge=binary 35 | #*.sqlproj merge=binary 36 | #*.wwaproj merge=binary 37 | 38 | ############################################################################### 39 | # behavior for image files 40 | # 41 | # image files are treated as binary by default. 42 | ############################################################################### 43 | #*.jpg binary 44 | #*.png binary 45 | #*.gif binary 46 | 47 | ############################################################################### 48 | # diff behavior for common document formats 49 | # 50 | # Convert binary document formats to text before diffing them. This feature 51 | # is only available from the command line. Turn it on by uncommenting the 52 | # entries below. 53 | ############################################################################### 54 | #*.doc diff=astextplain 55 | #*.DOC diff=astextplain 56 | #*.docx diff=astextplain 57 | #*.DOCX diff=astextplain 58 | #*.dot diff=astextplain 59 | #*.DOT diff=astextplain 60 | #*.pdf diff=astextplain 61 | #*.PDF diff=astextplain 62 | #*.rtf diff=astextplain 63 | #*.RTF diff=astextplain 64 | -------------------------------------------------------------------------------- /WonderWallDll/WonderWallDll.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | {4be7fe0e-171b-4d22-b183-70d3f70c3f87} 18 | 19 | 20 | {ce1cbe10-1a32-4f1b-8e48-4960fb6b2bd4} 21 | 22 | 23 | {9b9d4b2d-d88a-4c47-bea1-300c563ec7b2} 24 | 25 | 26 | {a6ceebdc-4975-48ca-9872-782d1baaad58} 27 | 28 | 29 | {201b88d7-e578-49d7-9a90-f6ee5357d560} 30 | 31 | 32 | {d6625110-7b6a-4fa0-a309-2f219554f4ba} 33 | 34 | 35 | {c34b29e5-e276-4ae0-9896-01ba69cd4672} 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 头文件 44 | 45 | 46 | 头文件 47 | 48 | 49 | 头文件 50 | 51 | 52 | 头文件 53 | 54 | 55 | Driver 56 | 57 | 58 | DriverShared 59 | 60 | 61 | 62 | 63 | 源文件 64 | 65 | 66 | 源文件 67 | 68 | 69 | 源文件 70 | 71 | 72 | Driver 73 | 74 | 75 | Process\EnumProcess 76 | 77 | 78 | Rtl 79 | 80 | 81 | Rtl 82 | 83 | 84 | Rtl 85 | 86 | 87 | Inject 88 | 89 | 90 | -------------------------------------------------------------------------------- /WonderWallDll/Rtl/memory.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "..\stdafx.h" 3 | #include "..\DriverShared\rtl.h" 4 | #include 5 | extern HANDLE HookHeap; 6 | void RtlInitializeLock(RTL_SPIN_LOCK* OutLock) 7 | { 8 | RtlZeroMemory(OutLock, sizeof(RTL_SPIN_LOCK)); 9 | 10 | InitializeCriticalSection(&OutLock->Lock); 11 | } 12 | 13 | void RtlAcquireLock(RTL_SPIN_LOCK* InLock) 14 | { 15 | EnterCriticalSection(&InLock->Lock); 16 | 17 | ASSERT(!InLock->IsOwned,L"memory.c - !InLock->IsOwned"); 18 | 19 | InLock->IsOwned = TRUE; 20 | } 21 | 22 | void RtlReleaseLock(RTL_SPIN_LOCK* InLock) 23 | { 24 | ASSERT(InLock->IsOwned,L"memory.c - InLock->IsOwned"); 25 | 26 | InLock->IsOwned = FALSE; 27 | 28 | LeaveCriticalSection(&InLock->Lock); 29 | } 30 | 31 | void RtlDeleteLock(RTL_SPIN_LOCK* InLock) 32 | { 33 | ASSERT(!InLock->IsOwned,L"memory.c - InLock->IsOwned"); 34 | 35 | DeleteCriticalSection(&InLock->Lock); 36 | } 37 | 38 | void RtlSleep(ULONG InTimeout) 39 | { 40 | Sleep(InTimeout); 41 | } 42 | 43 | 44 | void RtlCopyMemory( 45 | PVOID InDest, 46 | PVOID InSource, 47 | ULONG InByteCount) 48 | { 49 | ULONG Index; 50 | UCHAR* Dest = (UCHAR*)InDest; 51 | UCHAR* Src = (UCHAR*)InSource; 52 | 53 | for(Index = 0; Index < InByteCount; Index++) 54 | { 55 | *Dest = *Src; 56 | 57 | Dest++; 58 | Src++; 59 | } 60 | } 61 | 62 | BOOL RtlMoveMemory( 63 | PVOID InDest, 64 | PVOID InSource, 65 | ULONG InByteCount) 66 | { 67 | PVOID Buffer = RtlAllocateMemory(FALSE, InByteCount); 68 | 69 | if(Buffer == NULL) 70 | return FALSE; 71 | 72 | RtlCopyMemory(Buffer, InSource, InByteCount); 73 | RtlCopyMemory(InDest, Buffer, InByteCount); 74 | 75 | RtlFreeMemory(Buffer); 76 | return TRUE; 77 | } 78 | 79 | #ifndef _DEBUG 80 | #pragma optimize ("", off) // suppress _memset 81 | #endif 82 | void RtlZeroMemory( 83 | PVOID InTarget, 84 | ULONG InByteCount) 85 | { 86 | ULONG Index; 87 | UCHAR* Target = (UCHAR*)InTarget; 88 | 89 | for(Index = 0; Index < InByteCount; Index++) 90 | { 91 | *Target = 0; 92 | 93 | Target++; 94 | } 95 | } 96 | #ifndef _DEBUG 97 | #pragma optimize ("", on) 98 | #endif 99 | 100 | 101 | void* RtlAllocateMemory(BOOL InZeroMemory, ULONG InSize) 102 | { 103 | void* Result = 104 | #ifdef _DEBUG 105 | malloc(InSize); 106 | #else 107 | HeapAlloc(HookHeap, 0, InSize); 108 | #endif 109 | 110 | if(InZeroMemory && (Result != NULL)) 111 | RtlZeroMemory(Result, InSize); 112 | 113 | return Result; 114 | } 115 | 116 | LONG RtlProtectMemory(void* InPointer, ULONG InSize, ULONG InNewProtection) 117 | { 118 | DWORD OldProtect; 119 | NTSTATUS NtStatus; 120 | 121 | if(!VirtualProtect(InPointer, InSize, InNewProtection, &OldProtect)) 122 | THROW(STATUS_INVALID_PARAMETER, L"Unable to make memory executable.") 123 | else 124 | RETURN; 125 | 126 | THROW_OUTRO: 127 | FINALLY_OUTRO: 128 | return NtStatus; 129 | } 130 | 131 | void RtlFreeMemory(void* InPointer) 132 | { 133 | ASSERT(InPointer != NULL,L"InPointer != NULL"); 134 | 135 | #ifdef _DEBUG 136 | free(InPointer); 137 | #else 138 | HeapFree(HookHeap, 0, InPointer); 139 | #endif 140 | } 141 | 142 | LONG RtlInterlockedIncrement(LONG* RefValue) 143 | { 144 | return InterlockedIncrement(RefValue); 145 | } 146 | 147 | BOOL RtlIsValidPointer(PVOID InPtr, ULONG InSize) 148 | { 149 | if((InPtr == NULL) || (InPtr == (PVOID)~0)) 150 | return FALSE; 151 | 152 | ASSERT(!IsBadReadPtr(InPtr, InSize),L"memory.c - !IsBadReadPtr(InPtr, InSize)"); 153 | 154 | return TRUE; 155 | } -------------------------------------------------------------------------------- /WonderWallDll/DriverShared/rtl.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ifndef _EASYHOOK_RTL_ 4 | #define _EASYHOOK_RTL_ 5 | 6 | #ifdef __cplusplus 7 | extern "C"{ 8 | #endif 9 | 10 | #include "..\stdafx.h" 11 | 12 | #if _DEBUG 13 | #define DEBUGMSG(message) { WCHAR debugMsg[1024] = { 0 }; _snwprintf_s(debugMsg, 1024, _TRUNCATE, L"%s\n", message); OutputDebugStringW(debugMsg); } 14 | #else 15 | #define DEBUGMSG(message) { } 16 | #endif 17 | 18 | #ifndef DRIVER 19 | #define ASSERT(expr, Msg) RtlAssert((BOOL)(expr),(LPCWSTR) Msg); 20 | #define THROW(code, Msg) { NtStatus = (code); RtlSetLastError(GetLastError(), NtStatus, Msg); goto THROW_OUTRO; } 21 | #else 22 | #pragma warning(disable: 4005) 23 | #define ASSERT( exp, Msg ) ((!(exp)) ? (RtlAssert(#exp, __FILE__, __LINE__, NULL), FALSE) : TRUE) 24 | #pragma warning(default: 4005) 25 | #define THROW(code, Msg) { NtStatus = (code); RtlSetLastError(NtStatus, NtStatus, Msg); goto THROW_OUTRO; } 26 | #endif 27 | 28 | #define RETURN { RtlSetLastError(STATUS_SUCCESS, STATUS_SUCCESS, L""); NtStatus = STATUS_SUCCESS; goto FINALLY_OUTRO; } 29 | #define FORCE(expr) { if(!RTL_SUCCESS(NtStatus = (expr))) goto THROW_OUTRO; } 30 | #define IsValidPointer RtlIsValidPointer 31 | 32 | #ifdef DRIVER 33 | 34 | typedef struct _RTL_SPIN_LOCK_ 35 | { 36 | KSPIN_LOCK Lock; 37 | KIRQL OldIrql; 38 | }RTL_SPIN_LOCK; 39 | 40 | #else 41 | 42 | typedef struct _RTL_SPIN_LOCK_ 43 | { 44 | CRITICAL_SECTION Lock; 45 | BOOL IsOwned; 46 | }RTL_SPIN_LOCK; 47 | 48 | #endif 49 | 50 | void RtlInitializeLock(RTL_SPIN_LOCK* InLock); 51 | 52 | void RtlAcquireLock(RTL_SPIN_LOCK* InLock); 53 | 54 | void RtlReleaseLock(RTL_SPIN_LOCK* InLock); 55 | 56 | void RtlDeleteLock(RTL_SPIN_LOCK* InLock); 57 | 58 | void RtlSleep(ULONG InTimeout); 59 | 60 | void* RtlAllocateMemory( 61 | BOOL InZeroMemory, 62 | ULONG InSize); 63 | 64 | void RtlFreeMemory(void* InPointer); 65 | 66 | #undef RtlCopyMemory 67 | void RtlCopyMemory( 68 | PVOID InDest, 69 | PVOID InSource, 70 | ULONG InByteCount); 71 | 72 | #undef RtlMoveMemory 73 | BOOL RtlMoveMemory( 74 | PVOID InDest, 75 | PVOID InSource, 76 | ULONG InByteCount); 77 | 78 | #undef RtlZeroMemory 79 | void RtlZeroMemory( 80 | PVOID InTarget, 81 | ULONG InByteCount); 82 | 83 | LONG RtlProtectMemory( 84 | void* InPointer, 85 | ULONG InSize, 86 | ULONG InNewProtection); 87 | 88 | #ifndef DRIVER 89 | void RtlAssert(BOOL InAssert,LPCWSTR lpMessageText); 90 | #endif 91 | 92 | void RtlSetLastError( 93 | LONG InCode, 94 | LONG InNtStatus, 95 | WCHAR* InMessage); 96 | 97 | LONGLONG RtlAnsiHexToLongLong( 98 | const CHAR *s, 99 | int len); 100 | 101 | BOOL RtlAnsiDbgHexToLongLong( 102 | CHAR* InHexString, 103 | ULONG InMinStrLen, 104 | LONGLONG* OutValue); 105 | 106 | LONG RtlAnsiSubString( 107 | CHAR* InString, 108 | ULONG InOffset, 109 | ULONG InCount, 110 | CHAR* InTarget, 111 | ULONG InTargetMaxLen); 112 | 113 | LONG RtlAnsiIndexOf( 114 | CHAR* InString, 115 | CHAR InChar); 116 | 117 | ULONG RtlAnsiLength(CHAR* InString); 118 | 119 | ULONG RtlUnicodeLength(WCHAR* InString); 120 | 121 | void RtlLongLongToUnicodeHex(LONGLONG InValue, WCHAR* InBuffer); 122 | 123 | BOOL RtlIsValidPointer(PVOID InPtr, ULONG InSize); 124 | 125 | #if X64_DRIVER 126 | // Write Protection Off 127 | KIRQL RtlWPOff(); 128 | //Write Protection On 129 | void RtlWPOn(KIRQL irql); 130 | 131 | #endif 132 | 133 | #ifdef __cplusplus 134 | } 135 | #endif 136 | 137 | #endif -------------------------------------------------------------------------------- /WonderWallDll/Rtl/error.cpp: -------------------------------------------------------------------------------- 1 | 2 | 3 | #include "..\stdafx.h" 4 | #include 5 | #include 6 | static PWCHAR LastError = L""; 7 | static ULONG LastErrorCode = 0; 8 | 9 | WONDERWALL_NT_EXPORT RtlGetLastError() 10 | { 11 | return LastErrorCode; 12 | } 13 | 14 | PWCHAR RtlGetLastErrorString() 15 | { 16 | return LastError; 17 | } 18 | 19 | #ifndef DRIVER 20 | PWCHAR RtlGetLastErrorStringCopy() 21 | { 22 | 23 | ULONG len = (ULONG)(wcslen(LastError)+1)*sizeof(TCHAR); 24 | PWCHAR pBuffer = (PWCHAR) CoTaskMemAlloc(len); 25 | CopyMemory(pBuffer, LastError, len); 26 | 27 | return pBuffer; 28 | } 29 | #endif 30 | 31 | WCHAR* RtlErrorCodeToString(LONG InCode) 32 | { 33 | switch(InCode) 34 | { 35 | case STATUS_SUCCESS: return L"STATUS_SUCCESS"; 36 | case STATUS_NOT_SUPPORTED: return L"STATUS_NOT_SUPPORTED"; 37 | case STATUS_INTERNAL_ERROR: return L"STATUS_INTERNAL_ERROR"; 38 | case STATUS_PROCEDURE_NOT_FOUND: return L"STATUS_PROCEDURE_NOT_FOUND"; 39 | case STATUS_NOINTERFACE: return L"STATUS_NOINTERFACE"; 40 | case STATUS_INFO_LENGTH_MISMATCH: return L"STATUS_INFO_LENGTH_MISMATCH"; 41 | case STATUS_BUFFER_TOO_SMALL: return L"STATUS_BUFFER_TOO_SMALL"; 42 | case STATUS_INVALID_PARAMETER: return L"STATUS_INVALID_PARAMETER"; 43 | case STATUS_INSUFFICIENT_RESOURCES: return L"STATUS_INSUFFICIENT_RESOURCES"; 44 | case STATUS_UNHANDLED_EXCEPTION: return L"STATUS_UNHANDLED_EXCEPTION"; 45 | case STATUS_NOT_FOUND: return L"STATUS_NOT_FOUND"; 46 | case STATUS_NOT_IMPLEMENTED: return L"STATUS_NOT_IMPLEMENTED"; 47 | case STATUS_ACCESS_DENIED: return L"STATUS_ACCESS_DENIED"; 48 | case STATUS_ALREADY_REGISTERED: return L"STATUS_ALREADY_REGISTERED"; 49 | case STATUS_WOW_ASSERTION: return L"STATUS_WOW_ASSERTION"; 50 | case STATUS_BUFFER_OVERFLOW: return L"STATUS_BUFFER_OVERFLOW"; 51 | case STATUS_DLL_INIT_FAILED: return L"STATUS_DLL_INIT_FAILED"; 52 | case STATUS_INVALID_PARAMETER_1: return L"STATUS_INVALID_PARAMETER_1"; 53 | case STATUS_INVALID_PARAMETER_2: return L"STATUS_INVALID_PARAMETER_2"; 54 | case STATUS_INVALID_PARAMETER_3: return L"STATUS_INVALID_PARAMETER_3"; 55 | case STATUS_INVALID_PARAMETER_4: return L"STATUS_INVALID_PARAMETER_4"; 56 | case STATUS_INVALID_PARAMETER_5: return L"STATUS_INVALID_PARAMETER_5"; 57 | case STATUS_INVALID_PARAMETER_6: return L"STATUS_INVALID_PARAMETER_6"; 58 | case STATUS_INVALID_PARAMETER_7: return L"STATUS_INVALID_PARAMETER_7"; 59 | case STATUS_INVALID_PARAMETER_8: return L"STATUS_INVALID_PARAMETER_8"; 60 | default: return L"UNKNOWN"; 61 | } 62 | } 63 | 64 | void RtlSetLastError(LONG InCode, NTSTATUS InNtStatus, WCHAR* InMessage) 65 | { 66 | LastErrorCode = InCode; 67 | 68 | if(InMessage == NULL) 69 | LastError = L""; 70 | else 71 | { 72 | #if _DEBUG 73 | // output to debugger 74 | if (lstrlenW(InMessage) > 0) 75 | { 76 | WCHAR msg[1024] = { 0 }; 77 | LPVOID lpMsgBuf; 78 | 79 | if (InNtStatus == STATUS_SUCCESS) 80 | { 81 | FormatMessage( 82 | FORMAT_MESSAGE_ALLOCATE_BUFFER | 83 | FORMAT_MESSAGE_FROM_SYSTEM | 84 | FORMAT_MESSAGE_IGNORE_INSERTS, 85 | NULL, 86 | InCode, 87 | MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 88 | (LPTSTR) &lpMsgBuf, 89 | 0, NULL ); 90 | _snwprintf_s(msg, 1024, _TRUNCATE, L"%s (%s)", InMessage, lpMsgBuf); 91 | } 92 | else 93 | { 94 | _snwprintf_s(msg, 1024, _TRUNCATE, L"%s (%s)", InMessage, RtlErrorCodeToString(InNtStatus)); 95 | } 96 | DEBUGMSG(msg); 97 | 98 | LocalFree(lpMsgBuf); 99 | } 100 | #endif 101 | LastError = (PWCHAR)InMessage; 102 | } 103 | } 104 | 105 | #ifndef DRIVER 106 | void RtlAssert(BOOL InAssert,LPCWSTR lpMessageText) 107 | { 108 | if(InAssert) 109 | return; 110 | 111 | #ifdef _DEBUG 112 | DebugBreak(); 113 | #endif 114 | 115 | FatalAppExitW(0, lpMessageText); 116 | 117 | } 118 | #endif -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## Ignore Visual Studio temporary files, build results, and 2 | ## files generated by popular Visual Studio add-ons. 3 | 4 | # User-specific files 5 | *.suo 6 | *.user 7 | *.userosscache 8 | *.sln.docstates 9 | 10 | # User-specific files (MonoDevelop/Xamarin Studio) 11 | *.userprefs 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | [Xx]64/ 19 | [Xx]86/ 20 | [Bb]uild/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | 25 | # Visual Studio 2015 cache/options directory 26 | .vs/ 27 | # Uncomment if you have tasks that create the project's static files in wwwroot 28 | #wwwroot/ 29 | 30 | # MSTest test Results 31 | [Tt]est[Rr]esult*/ 32 | [Bb]uild[Ll]og.* 33 | 34 | # NUNIT 35 | *.VisualState.xml 36 | TestResult.xml 37 | 38 | # Build Results of an ATL Project 39 | [Dd]ebugPS/ 40 | [Rr]eleasePS/ 41 | dlldata.c 42 | 43 | # DNX 44 | project.lock.json 45 | artifacts/ 46 | 47 | *_i.c 48 | *_p.c 49 | *_i.h 50 | *.ilk 51 | *.meta 52 | *.obj 53 | *.pch 54 | *.pdb 55 | *.pgc 56 | *.pgd 57 | *.rsp 58 | *.sbr 59 | *.tlb 60 | *.tli 61 | *.tlh 62 | *.tmp 63 | *.tmp_proj 64 | *.log 65 | *.vspscc 66 | *.vssscc 67 | .builds 68 | *.pidb 69 | *.svclog 70 | *.scc 71 | 72 | # Chutzpah Test files 73 | _Chutzpah* 74 | 75 | # Visual C++ cache files 76 | ipch/ 77 | *.aps 78 | *.ncb 79 | *.opendb 80 | *.opensdf 81 | *.sdf 82 | *.cachefile 83 | *.VC.db 84 | 85 | # Visual Studio profiler 86 | *.psess 87 | *.vsp 88 | *.vspx 89 | *.sap 90 | 91 | # TFS 2012 Local Workspace 92 | $tf/ 93 | 94 | # Guidance Automation Toolkit 95 | *.gpState 96 | 97 | # ReSharper is a .NET coding add-in 98 | _ReSharper*/ 99 | *.[Rr]e[Ss]harper 100 | *.DotSettings.user 101 | 102 | # JustCode is a .NET coding add-in 103 | .JustCode 104 | 105 | # TeamCity is a build add-in 106 | _TeamCity* 107 | 108 | # DotCover is a Code Coverage Tool 109 | *.dotCover 110 | 111 | # NCrunch 112 | _NCrunch_* 113 | .*crunch*.local.xml 114 | nCrunchTemp_* 115 | 116 | # MightyMoose 117 | *.mm.* 118 | AutoTest.Net/ 119 | 120 | # Web workbench (sass) 121 | .sass-cache/ 122 | 123 | # Installshield output folder 124 | [Ee]xpress/ 125 | 126 | # DocProject is a documentation generator add-in 127 | DocProject/buildhelp/ 128 | DocProject/Help/*.HxT 129 | DocProject/Help/*.HxC 130 | DocProject/Help/*.hhc 131 | DocProject/Help/*.hhk 132 | DocProject/Help/*.hhp 133 | DocProject/Help/Html2 134 | DocProject/Help/html 135 | 136 | # Click-Once directory 137 | publish/ 138 | 139 | # Publish Web Output 140 | *.[Pp]ublish.xml 141 | *.azurePubxml 142 | 143 | # TODO: Un-comment the next line if you do not want to checkin 144 | # your web deploy settings because they may include unencrypted 145 | # passwords 146 | #*.pubxml 147 | *.publishproj 148 | 149 | # NuGet Packages 150 | *.nupkg 151 | # The packages folder can be ignored because of Package Restore 152 | **/packages/* 153 | # except build/, which is used as an MSBuild target. 154 | !**/packages/build/ 155 | # Uncomment if necessary however generally it will be regenerated when needed 156 | #!**/packages/repositories.config 157 | # NuGet v3's project.json files produces more ignoreable files 158 | *.nuget.props 159 | *.nuget.targets 160 | 161 | # Microsoft Azure Build Output 162 | csx/ 163 | *.build.csdef 164 | 165 | # Microsoft Azure Emulator 166 | ecf/ 167 | rcf/ 168 | 169 | # Windows Store app package directory 170 | AppPackages/ 171 | BundleArtifacts/ 172 | 173 | # Visual Studio cache files 174 | # files ending in .cache can be ignored 175 | *.[Cc]ache 176 | # but keep track of directories ending in .cache 177 | !*.[Cc]ache/ 178 | 179 | # Others 180 | ClientBin/ 181 | [Ss]tyle[Cc]op.* 182 | ~$* 183 | *~ 184 | *.dbmdl 185 | *.dbproj.schemaview 186 | *.pfx 187 | *.publishsettings 188 | node_modules/ 189 | orleans.codegen.cs 190 | 191 | # RIA/Silverlight projects 192 | Generated_Code/ 193 | 194 | # Backup & report files from converting an old project file 195 | # to a newer Visual Studio version. Backup files are not needed, 196 | # because we have git ;-) 197 | _UpgradeReport_Files/ 198 | Backup*/ 199 | UpgradeLog*.XML 200 | UpgradeLog*.htm 201 | 202 | # SQL Server files 203 | *.mdf 204 | *.ldf 205 | 206 | # Business Intelligence projects 207 | *.rdl.data 208 | *.bim.layout 209 | *.bim_*.settings 210 | 211 | # Microsoft Fakes 212 | FakesAssemblies/ 213 | 214 | # GhostDoc plugin setting file 215 | *.GhostDoc.xml 216 | 217 | # Node.js Tools for Visual Studio 218 | .ntvs_analysis.dat 219 | 220 | # Visual Studio 6 build log 221 | *.plg 222 | 223 | # Visual Studio 6 workspace options file 224 | *.opt 225 | 226 | # Visual Studio LightSwitch build output 227 | **/*.HTMLClient/GeneratedArtifacts 228 | **/*.DesktopClient/GeneratedArtifacts 229 | **/*.DesktopClient/ModelManifest.xml 230 | **/*.Server/GeneratedArtifacts 231 | **/*.Server/ModelManifest.xml 232 | _Pvt_Extensions 233 | 234 | # LightSwitch generated files 235 | GeneratedArtifacts/ 236 | ModelManifest.xml 237 | 238 | # Paket dependency manager 239 | .paket/paket.exe 240 | 241 | # FAKE - F# Make 242 | .fake/ 243 | -------------------------------------------------------------------------------- /YIFI.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "YIFI", "YIFI\YIFI.vcxproj", "{E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}" 7 | ProjectSection(ProjectDependencies) = postProject 8 | {C4FFD118-F573-4230-9A55-7280091D32AE} = {C4FFD118-F573-4230-9A55-7280091D32AE} 9 | EndProjectSection 10 | EndProject 11 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WonderWallDll", "WonderWallDll\WonderWallDll.vcxproj", "{C4FFD118-F573-4230-9A55-7280091D32AE}" 12 | EndProject 13 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WonderWallDriver", "WonderWallDriver\WonderWallDriver.vcxproj", "{2CC38C65-8D2D-4989-93C4-22E8D74766B9}" 14 | EndProject 15 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "InjectDll", "InjectDll\InjectDll.vcxproj", "{29EDBDFB-46AA-46CF-9295-F879D031252A}" 16 | EndProject 17 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Target", "Target\Target.vcxproj", "{F2A9FE8B-D3A0-48CC-B807-94376812B707}" 18 | EndProject 19 | Global 20 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 21 | Debug|ARM = Debug|ARM 22 | Debug|ARM64 = Debug|ARM64 23 | Debug|x64 = Debug|x64 24 | Debug|x86 = Debug|x86 25 | Release|ARM = Release|ARM 26 | Release|ARM64 = Release|ARM64 27 | Release|x64 = Release|x64 28 | Release|x86 = Release|x86 29 | EndGlobalSection 30 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 31 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Debug|ARM.ActiveCfg = Debug|Win32 32 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Debug|ARM64.ActiveCfg = Debug|Win32 33 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Debug|x64.ActiveCfg = Debug|x64 34 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Debug|x64.Build.0 = Debug|x64 35 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Debug|x86.ActiveCfg = Debug|Win32 36 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Debug|x86.Build.0 = Debug|Win32 37 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Release|ARM.ActiveCfg = Release|Win32 38 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Release|ARM64.ActiveCfg = Release|Win32 39 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Release|x64.ActiveCfg = Release|x64 40 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Release|x64.Build.0 = Release|x64 41 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Release|x86.ActiveCfg = Release|Win32 42 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60}.Release|x86.Build.0 = Release|Win32 43 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Debug|ARM.ActiveCfg = Debug|Win32 44 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Debug|ARM64.ActiveCfg = Debug|Win32 45 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Debug|x64.ActiveCfg = Debug|x64 46 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Debug|x64.Build.0 = Debug|x64 47 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Debug|x86.ActiveCfg = Debug|Win32 48 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Debug|x86.Build.0 = Debug|Win32 49 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Release|ARM.ActiveCfg = Release|Win32 50 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Release|ARM64.ActiveCfg = Release|Win32 51 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Release|x64.ActiveCfg = Release|x64 52 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Release|x64.Build.0 = Release|x64 53 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Release|x86.ActiveCfg = Release|Win32 54 | {C4FFD118-F573-4230-9A55-7280091D32AE}.Release|x86.Build.0 = Release|Win32 55 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|ARM.ActiveCfg = Debug|ARM 56 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|ARM.Build.0 = Debug|ARM 57 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|ARM64.ActiveCfg = Debug|ARM64 58 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|ARM64.Build.0 = Debug|ARM64 59 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|x64.ActiveCfg = Debug|x64 60 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|x64.Build.0 = Debug|x64 61 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|x86.ActiveCfg = Debug|Win32 62 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|x86.Build.0 = Debug|Win32 63 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Debug|x86.Deploy.0 = Debug|Win32 64 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|ARM.ActiveCfg = Release|ARM 65 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|ARM.Build.0 = Release|ARM 66 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|ARM64.ActiveCfg = Release|ARM64 67 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|ARM64.Build.0 = Release|ARM64 68 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|x64.ActiveCfg = Release|x64 69 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|x64.Build.0 = Release|x64 70 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|x86.ActiveCfg = Release|Win32 71 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|x86.Build.0 = Release|Win32 72 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9}.Release|x86.Deploy.0 = Release|Win32 73 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Debug|ARM.ActiveCfg = Debug|Win32 74 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Debug|ARM64.ActiveCfg = Debug|Win32 75 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Debug|x64.ActiveCfg = Debug|x64 76 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Debug|x64.Build.0 = Debug|x64 77 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Debug|x86.ActiveCfg = Debug|Win32 78 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Debug|x86.Build.0 = Debug|Win32 79 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Release|ARM.ActiveCfg = Release|Win32 80 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Release|ARM64.ActiveCfg = Release|Win32 81 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Release|x64.ActiveCfg = Release|x64 82 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Release|x64.Build.0 = Release|x64 83 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Release|x86.ActiveCfg = Release|Win32 84 | {29EDBDFB-46AA-46CF-9295-F879D031252A}.Release|x86.Build.0 = Release|Win32 85 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Debug|ARM.ActiveCfg = Debug|Win32 86 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Debug|ARM64.ActiveCfg = Debug|Win32 87 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Debug|x64.ActiveCfg = Debug|x64 88 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Debug|x64.Build.0 = Debug|x64 89 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Debug|x86.ActiveCfg = Debug|Win32 90 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Debug|x86.Build.0 = Debug|Win32 91 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Release|ARM.ActiveCfg = Release|Win32 92 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Release|ARM64.ActiveCfg = Release|Win32 93 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Release|x64.ActiveCfg = Release|x64 94 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Release|x64.Build.0 = Release|x64 95 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Release|x86.ActiveCfg = Release|Win32 96 | {F2A9FE8B-D3A0-48CC-B807-94376812B707}.Release|x86.Build.0 = Release|Win32 97 | EndGlobalSection 98 | GlobalSection(SolutionProperties) = preSolution 99 | HideSolutionNode = FALSE 100 | EndGlobalSection 101 | EndGlobal 102 | -------------------------------------------------------------------------------- /YIFI/YIFI.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {E7E1AB15-1A4F-4BC6-8241-6B4800AFFF60} 23 | Win32Proj 24 | YIFI 25 | 8.1 26 | 27 | 28 | 29 | Application 30 | true 31 | v140 32 | Unicode 33 | 34 | 35 | Application 36 | false 37 | v140 38 | true 39 | Unicode 40 | 41 | 42 | Application 43 | true 44 | v140 45 | Unicode 46 | 47 | 48 | Application 49 | false 50 | v140 51 | true 52 | Unicode 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | true 75 | 76 | 77 | true 78 | 79 | 80 | false 81 | 82 | 83 | false 84 | 85 | 86 | 87 | 88 | 89 | Level3 90 | Disabled 91 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 92 | 93 | 94 | Console 95 | true 96 | 97 | 98 | 99 | 100 | 101 | 102 | Level3 103 | Disabled 104 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions) 105 | MultiThreadedDebug 106 | 107 | 108 | Console 109 | true 110 | RequireAdministrator 111 | 112 | 113 | 114 | 115 | Level3 116 | 117 | 118 | MaxSpeed 119 | true 120 | true 121 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 122 | 123 | 124 | Console 125 | true 126 | true 127 | true 128 | 129 | 130 | 131 | 132 | Level3 133 | 134 | 135 | MaxSpeed 136 | true 137 | true 138 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 139 | 140 | 141 | Console 142 | true 143 | true 144 | true 145 | RequireAdministrator 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | -------------------------------------------------------------------------------- /WonderWallDriver/WonderWallDriver.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | Debug 22 | ARM 23 | 24 | 25 | Release 26 | ARM 27 | 28 | 29 | Debug 30 | ARM64 31 | 32 | 33 | Release 34 | ARM64 35 | 36 | 37 | 38 | {2CC38C65-8D2D-4989-93C4-22E8D74766B9} 39 | {dd38f7fc-d7bd-488b-9242-7d8754cde80d} 40 | v4.5 41 | 12.0 42 | Debug 43 | Win32 44 | WonderWallDriver 45 | 10.0.10240.0 46 | 47 | 48 | 49 | Windows10 50 | true 51 | WindowsKernelModeDriver10.0 52 | Driver 53 | WDM 54 | 55 | 56 | Windows10 57 | false 58 | WindowsKernelModeDriver10.0 59 | Driver 60 | WDM 61 | 62 | 63 | Windows7 64 | true 65 | WindowsKernelModeDriver10.0 66 | Driver 67 | WDM 68 | 69 | 70 | Windows10 71 | false 72 | WindowsKernelModeDriver10.0 73 | Driver 74 | WDM 75 | 76 | 77 | Windows10 78 | true 79 | WindowsKernelModeDriver10.0 80 | Driver 81 | WDM 82 | 83 | 84 | Windows10 85 | false 86 | WindowsKernelModeDriver10.0 87 | Driver 88 | WDM 89 | 90 | 91 | Windows10 92 | true 93 | WindowsKernelModeDriver10.0 94 | Driver 95 | WDM 96 | 97 | 98 | Windows10 99 | false 100 | WindowsKernelModeDriver10.0 101 | Driver 102 | WDM 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | DbgengKernelDebugger 114 | 115 | 116 | DbgengKernelDebugger 117 | 118 | 119 | DbgengKernelDebugger 120 | 121 | 122 | DbgengKernelDebugger 123 | 124 | 125 | DbgengKernelDebugger 126 | 127 | 128 | DbgengKernelDebugger 129 | 130 | 131 | DbgengKernelDebugger 132 | 133 | 134 | DbgengKernelDebugger 135 | 136 | 137 | 138 | false 139 | 140 | 141 | false 142 | 143 | 144 | 145 | 146 | false 147 | 148 | 149 | false 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | -------------------------------------------------------------------------------- /Target/Target.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {F2A9FE8B-D3A0-48CC-B807-94376812B707} 23 | Win32Proj 24 | Target 25 | 8.1 26 | 27 | 28 | 29 | Application 30 | true 31 | v140 32 | Unicode 33 | 34 | 35 | Application 36 | false 37 | v140 38 | true 39 | Unicode 40 | 41 | 42 | Application 43 | true 44 | v140 45 | Unicode 46 | 47 | 48 | Application 49 | false 50 | v140 51 | true 52 | Unicode 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | true 74 | 75 | 76 | true 77 | 78 | 79 | false 80 | 81 | 82 | false 83 | 84 | 85 | 86 | Use 87 | Level3 88 | Disabled 89 | WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) 90 | true 91 | 92 | 93 | Console 94 | true 95 | 96 | 97 | 98 | 99 | Use 100 | Level3 101 | Disabled 102 | _DEBUG;_CONSOLE;%(PreprocessorDefinitions) 103 | true 104 | 105 | 106 | Console 107 | true 108 | 109 | 110 | 111 | 112 | Level3 113 | Use 114 | MaxSpeed 115 | true 116 | true 117 | WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 118 | true 119 | 120 | 121 | Console 122 | true 123 | true 124 | true 125 | 126 | 127 | 128 | 129 | Level3 130 | Use 131 | MaxSpeed 132 | true 133 | true 134 | NDEBUG;_CONSOLE;%(PreprocessorDefinitions) 135 | true 136 | 137 | 138 | Console 139 | true 140 | true 141 | true 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | Create 154 | Create 155 | Create 156 | Create 157 | 158 | 159 | 160 | 161 | 162 | 163 | -------------------------------------------------------------------------------- /InjectDll/InjectDll.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {29EDBDFB-46AA-46CF-9295-F879D031252A} 23 | Win32Proj 24 | InjectDll 25 | 8.1 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v140 32 | Unicode 33 | 34 | 35 | DynamicLibrary 36 | false 37 | v140 38 | true 39 | Unicode 40 | 41 | 42 | DynamicLibrary 43 | true 44 | v140 45 | Unicode 46 | 47 | 48 | DynamicLibrary 49 | false 50 | v140 51 | true 52 | Unicode 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | true 74 | 75 | 76 | true 77 | 78 | 79 | false 80 | 81 | 82 | false 83 | 84 | 85 | 86 | Use 87 | Level3 88 | Disabled 89 | WIN32;_DEBUG;_WINDOWS;_USRDLL;INJECTDLL_EXPORTS;%(PreprocessorDefinitions) 90 | true 91 | 92 | 93 | Windows 94 | true 95 | 96 | 97 | 98 | 99 | Use 100 | Level3 101 | Disabled 102 | _DEBUG;_WINDOWS;_USRDLL;INJECTDLL_EXPORTS;%(PreprocessorDefinitions) 103 | true 104 | 105 | 106 | Windows 107 | true 108 | 109 | 110 | 111 | 112 | Level3 113 | Use 114 | MaxSpeed 115 | true 116 | true 117 | WIN32;NDEBUG;_WINDOWS;_USRDLL;INJECTDLL_EXPORTS;%(PreprocessorDefinitions) 118 | true 119 | 120 | 121 | Windows 122 | true 123 | true 124 | true 125 | 126 | 127 | 128 | 129 | Level3 130 | Use 131 | MaxSpeed 132 | true 133 | true 134 | NDEBUG;_WINDOWS;_USRDLL;INJECTDLL_EXPORTS;%(PreprocessorDefinitions) 135 | true 136 | 137 | 138 | Windows 139 | true 140 | true 141 | true 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | false 154 | 155 | 156 | false 157 | 158 | 159 | false 160 | 161 | 162 | false 163 | 164 | 165 | 166 | 167 | 168 | Create 169 | Create 170 | Create 171 | Create 172 | 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /WonderWallDll/WonderWallDll.vcxproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Debug 6 | Win32 7 | 8 | 9 | Release 10 | Win32 11 | 12 | 13 | Debug 14 | x64 15 | 16 | 17 | Release 18 | x64 19 | 20 | 21 | 22 | {C4FFD118-F573-4230-9A55-7280091D32AE} 23 | Win32Proj 24 | WonderWallDll 25 | 8.1 26 | 27 | 28 | 29 | DynamicLibrary 30 | true 31 | v140 32 | Unicode 33 | 34 | 35 | DynamicLibrary 36 | false 37 | v140 38 | true 39 | Unicode 40 | 41 | 42 | DynamicLibrary 43 | true 44 | v140 45 | Unicode 46 | 47 | 48 | DynamicLibrary 49 | false 50 | v140 51 | true 52 | Unicode 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | true 74 | 75 | 76 | true 77 | 78 | 79 | false 80 | 81 | 82 | false 83 | 84 | 85 | 86 | 87 | 88 | Level3 89 | Disabled 90 | WIN32;_DEBUG;_WINDOWS;_USRDLL;WONDERWALLDLL_EXPORTS;%(PreprocessorDefinitions) 91 | 92 | 93 | Windows 94 | true 95 | 96 | 97 | 98 | 99 | 100 | 101 | Level3 102 | Disabled 103 | _DEBUG;_WINDOWS;_USRDLL;WONDERWALLDLL_EXPORTS;%(PreprocessorDefinitions) 104 | 105 | 106 | Windows 107 | true 108 | RequireAdministrator 109 | 110 | 111 | 112 | 113 | Level3 114 | 115 | 116 | MaxSpeed 117 | true 118 | true 119 | WIN32;NDEBUG;_WINDOWS;_USRDLL;WONDERWALLDLL_EXPORTS;%(PreprocessorDefinitions) 120 | 121 | 122 | Windows 123 | true 124 | true 125 | true 126 | 127 | 128 | 129 | 130 | Level3 131 | 132 | 133 | MaxSpeed 134 | true 135 | true 136 | NDEBUG;_WINDOWS;_USRDLL;WONDERWALLDLL_EXPORTS;%(PreprocessorDefinitions) 137 | MultiThreaded 138 | 139 | 140 | Windows 141 | true 142 | true 143 | true 144 | RequireAdministrator 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | false 161 | 162 | 163 | false 164 | 165 | 166 | false 167 | 168 | 169 | false 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | --------------------------------------------------------------------------------