diff options
author | Toni Uhlig <matzeton@googlemail.com> | 2020-03-26 22:02:45 +0100 |
---|---|---|
committer | Toni Uhlig <matzeton@googlemail.com> | 2020-03-26 22:02:45 +0100 |
commit | 9cf0997ebd7aaabe42dedd617c4984314e546af7 (patch) | |
tree | d3f60de406d28af5b535755db799de02fae22bee | |
parent | 68bafa869df2165209a1887ce21f345bfdb71a97 (diff) |
removed hunt leftover..
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
-rw-r--r-- | Hunted/Hunted.cpp | 325 | ||||
-rw-r--r-- | Hunted/Hunted.vcxproj | 203 | ||||
-rw-r--r-- | Hunted/Hunted.vcxproj.filters | 36 | ||||
-rw-r--r-- | Hunted/pch.cpp | 5 | ||||
-rw-r--r-- | Hunted/pch.h | 14 | ||||
-rw-r--r-- | KMemDriver.sln | 6 | ||||
-rw-r--r-- | TestDLL/HuntClasses.h | 965 | ||||
-rw-r--r-- | TestDLL/TestDLL.vcxproj | 21 | ||||
-rw-r--r-- | TestDLL/TestDLL.vcxproj.filters | 3 | ||||
-rw-r--r-- | TestDLL/dllmain.cpp | 189 |
10 files changed, 15 insertions, 1752 deletions
diff --git a/Hunted/Hunted.cpp b/Hunted/Hunted.cpp deleted file mode 100644 index 0eca6d0..0000000 --- a/Hunted/Hunted.cpp +++ /dev/null @@ -1,325 +0,0 @@ -#include "pch.h" -#include "KMemDriver.h" -#include "KInterface.h" -#include "DLLHelper.h" -#include "PatternScanner.h" - -#include <array> -#include <iostream> -#include <iomanip> -#include <windows.h> -#include <Shlwapi.h> - -#define WHEXOUT std::setfill(L'0') << std::setw(16) << std::hex - -static BOOL running = false; -static const wchar_t wName[] = L"HUNT"; - - -static bool consoleHandler(int signal) { - if (signal == CTRL_C_EVENT) { - if (!running) - exit(EXIT_FAILURE); - running = false; - std::wcout << L"Waiting for graceful shutdown .." << std::endl; - } - return true; -} - -static void printBuf(UCHAR *buf, SIZE_T siz, SIZE_T bytesBeforeNewline) { - unsigned int i, j; - const unsigned char colors[] = { 10,11,12,13,14,15 }; - HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); - - for (i = 0, j = 0; i < siz; ++i) { - if (i % bytesBeforeNewline == 0) { - SetConsoleTextAttribute(hConsole, colors[j++ % (sizeof colors)]); - wprintf(L"\n0x%04X: ", i); - } - wprintf(L"%02X ", buf[i]); - } - wprintf(L"\n"); - SetConsoleTextAttribute(hConsole, 15); -} - -static BOOL CALLBACK enumWindowsProc(HWND hWnd, LPARAM lParam) -{ - int length = GetWindowTextLength(hWnd); - TCHAR* buffer; - buffer = new TCHAR[length + 1]; - memset(buffer, 0, (length + 1) * sizeof(TCHAR)); - GetWindowText(hWnd, buffer, length + 1); - if (!wcscmp(buffer, wName)) - *(HWND *)lParam = hWnd; - delete[] buffer; - return TRUE; -} - -int wmain(int argc, wchar_t **argv) -{ - HANDLE targetPID = 0; - PVOID buf; - HANDLE kevent; - HANDLE uevent; - - KInterface &ki = KInterface::getInstance(); - std::vector<MEMORY_BASIC_INFORMATION> pages; - std::vector<MODULE_DATA> modules; - - std::wcout << L"Waiting for window title: '" << wName << L"'" << std::endl; - - HWND targetHWND = NULL; - while (1) { - if (!EnumWindows(enumWindowsProc, (LPARAM)&targetHWND)) { - return 1; - } - if (targetHWND) { - std::wcout << L"Found window '" << wName << L"' with Handle 0x" - << std::hex << targetHWND << std::endl; - break; - } - Sleep(1000); - } - GetWindowThreadProcessId(targetHWND, (LPDWORD)&targetPID); - - SetConsoleCtrlHandler((PHANDLER_ROUTINE)consoleHandler, TRUE); - - if (!ki.Init()) { - std::wcout << L"Kernel Interface Init() failed" << std::endl; - return 1; - } - - try { - buf = ki.getBuffer(); - kevent = ki.getKHandle(); - uevent = ki.getUHandle(); - } - catch (std::runtime_error& err) { - std::wcout << err.what() << std::endl; - return 1; - } - - std::wcout << L"Buffer.: " << buf << std::endl; - std::wcout << L"KHandle: " << kevent << std::endl; - std::wcout << L"UHandle: " << uevent << std::endl; - - if (!ki.Handshake()) { - std::wcout << L"Kernel Interface Handshake() failed" << std::endl; - return 1; - } - if (targetPID) { - if (!ki.Modules(targetPID, modules)) - std::wcout << L"Kernel Interface Modules() failed with 0x" - << std::hex << ki.getLastNtStatus() << std::endl; - else std::wcout << L"Got " << std::dec << modules.size() << L" modules for pid 0x" - << std::hex << targetPID << std::endl; - if (!ki.Pages(targetPID, pages)) - std::wcout << L"Kernel Interface Pages() failed with 0x" - << std::hex << ki.getLastNtStatus() << std::endl; - else std::wcout << L"Got " << std::dec << pages.size() << L" mapped pages for pid 0x" - << std::hex << targetPID << std::endl; - } - - running = TRUE; - do { - if (ki.RecvWait() == SRR_TIMEOUT) { - std::wcout << L"Ping -> "; - if (!ki.Ping()) { - std::wcout << L"Got no valid PONG, abort!" << std::endl; - running = FALSE; - } - else std::wcout << L"PONG!" << std::endl; - } - - if (!running) - break; - - try { - if (targetPID) { - for (MODULE_DATA& md : modules) { - if (!strncmp(md.BaseDllName, "CryEntitySystem.dll", - sizeof md.BaseDllName)) - { - /* "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe" /Zp2 /c /d1reportSingleClassLayoutCEntitySystem C:\Users\segfault\Source\Repos\CRYENGINE\Code\CryEngine\CryEntitySystem\EntitySystem.cpp /I C:\Users\segfault\Source\Repos\CRYENGINE\Code\CryEngine\CryCommon /I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um" */ - - static bool first = true; - if (first) { - first = false; - - SymbolResolver sresolv; - DLLHelper dll(sresolv); - if (!dll.Init(targetPID, "./TestDLL.dll")) { - std::wcout << L"DLL Init failed" << std::endl; - } - if (!dll.VerifyHeader()) { - std::wcout << L"DLL VerifyHeader failed" << std::endl; - } - if (!dll.InitTargetMemory(/* 0x7ffe00000000 */)) { - std::wcout << L"DLL InitTargetMemory failed" << std::endl; - } - if (!dll.HasImports()) - { - std::wcout << L"DLL has no ImportTable" << std::endl; - } - else if (!dll.FixImports()) { - std::wcout << L"DLL FixImports failed" << std::endl; - } - if (!dll.HasRelocs()) { - std::wcout << L"DLL has no RelocTable" << std::endl; - } - else if (!dll.FixRelocs()) { - std::wcout << L"DLL FixRelocs failed" << std::endl; - } - if (!dll.CopyHeaderAndSections()) { - std::wcout << L"DLL CopyHeaderAndSections failed" << std::endl; - } - std::wcout << L"DLL mapping succesful, " - << "BaseAddress: " << WHEXOUT << dll.GetBaseAddress() - << ", EntryPoint: " << WHEXOUT << dll.GetEntryPoint() << std::endl; - - UINT64 targetAddr = dll.GetBaseAddress(); - UINT64 g_pEnvSysSigged = NULL; - UINT64 g_pCCryActionSigged = NULL; - UINT64 g_pEntSys = 0; - - { - struct loadlib_user_data llua; - char * cryDllDir = new char[sizeof md.FullDllPath]; - std::memcpy(cryDllDir, md.FullDllPath, sizeof md.FullDllPath); - PathRemoveFileSpecA(cryDllDir); - llua.additionalDllSearchDirectories.push_back(std::string(cryDllDir)); - delete cryDllDir; - - PatternScanner pscan(sresolv, &map_loadlib, &llua); - std::vector<SIZE_T> foundAddresses; - /* ?g_pIEntitySystem -> EXPORT TABLE [Offset: -0x32 == g_pEntSys] */ - pscan.Scan(md, "3F 67 5F 70 49 45 6E 74 69 74 79 53 79 73 74 65 6D", foundAddresses); - - for (auto& addr : foundAddresses) { - g_pEntSys = KMemory::Rpm<UINT64>(targetPID, (PVOID)(addr - 0x8)); - g_pEntSys >>= 32; - g_pEntSys += addr; - std::wcout << "g_pEntSys via SigScan: " << g_pEntSys << std::endl; - } - } - - for (MODULE_DATA& md : modules) { - if (!strncmp(md.BaseDllName, "CryAction.dll", - sizeof md.BaseDllName)) { - - struct loadlib_user_data llua; - char * cryDllDir = new char[sizeof md.FullDllPath]; - std::memcpy(cryDllDir, md.FullDllPath, sizeof md.FullDllPath); - PathRemoveFileSpecA(cryDllDir); - llua.additionalDllSearchDirectories.push_back(std::string(cryDllDir)); - delete cryDllDir; - - for (auto& dir : llua.additionalDllSearchDirectories) { - std::wcout << L"AdditionalDLLDir: " - << std::wstring(dir.begin(), dir.end()) << std::endl; - } - { - PatternScanner pscan(sresolv, &map_loadlib, &llua); - std::vector<SIZE_T> foundAddresses; - pscan.Scan(md, "48 8B 48 20 48 8B 01 FF 90 20 01 00 00", foundAddresses); - - for (auto& addr : foundAddresses) { - g_pEnvSysSigged = KMemory::Rpm<UINT64>(targetPID, (PVOID)(addr - 0x8)); - g_pEnvSysSigged >>= 32; - g_pEnvSysSigged += addr; - std::wcout << "g_pEnvSys via SigScan: " << g_pEnvSysSigged << std::endl; - } - } - { - PatternScanner pscan(sresolv, &map_loadlib, &llua); - std::vector<SIZE_T> foundAddresses; - pscan.Scan(md, "48 89 6C 24 38 48 8D 2D ?? ?? ?? ?? 48 8B 11", foundAddresses); - - for (auto& addr : foundAddresses) { - g_pCCryActionSigged = KMemory::Rpm<UINT64>(targetPID, (PVOID)(addr - 0x8)); - g_pCCryActionSigged >>= 32; - g_pCCryActionSigged += addr; - std::wcout << "g_pCCryAction via SigScan: " << g_pCCryActionSigged << std::endl; - } - } - - break; - } - } - - BYTE cc[] = { /* push rax; push rbx; push rcx; push rdx; push rsi; - push rdi; push rsp; push rbp; push r8; push r9; - push r10; push r11; push r12; push r13; push r14; - push r15 */ - 0x50, 0x53, 0x51, 0x52, 0x56, 0x57, - 0x54, 0x55, 0x41, 0x50, 0x41, 0x51, - 0x41, 0x52, 0x41, 0x53, 0x41, 0x54, - 0x41, 0x55, 0x41, 0x56, 0x41, 0x57, - /* nops */ - 0x90, 0x90, 0x90, 0x90, 0x90, - /* mov rcx, 0x0000000000000000 */ - 0x48, 0xB9, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* mov rax, 0x0000000000000000 */ - 0x48, 0xB8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* call rax */ - 0xFF, 0xD0, - /* nops */ - 0x90, 0x90, - /* pop r15; pop r14; pop r13; pop r12; pop r11; - pop r10; pop r9; pop r8; pop rbp; pop rsp; - pop rdi; pop rsi; pop rdx; pop rcx; pop rbx; - pop rax */ - 0x41, 0x5F, 0x41, 0x5E, 0x41, 0x5D, - 0x41, 0x5C, 0x41, 0x5B, 0x41, 0x5A, - 0x41, 0x59, 0x41, 0x58, 0x5D, 0x5C, - 0x5F, 0x5E, 0x5A, 0x59, 0x5B, 0x58, - /* nops */ - 0x90, 0x90, - /* mov rax, 0x0000000000000000 */ - 0x48, 0xB8, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* jmp rax */ - 0xFF, 0xE0, - /* the following is part of the HuntCtx struct */ - /* ptr to ptr to EntitySystem */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* ptr to ptr to GlobalEnv */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - /* ptr to ptr to CCryAction */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; - *(UINT64 *)((BYTE *)cc + 31) = targetAddr + 91; - *(UINT64 *)((BYTE *)cc + 41) = dll.GetEntryPoint(); - /* PATTERN: 48 89 4C 24 08 48 83 EC 48 +0x275 */ - UINT64 jumpBackAddr = (UINT64)md.DllBase + 0x70875; /* TODO: SigScan Me! */ - *(UINT64 *)((BYTE *)cc + 81) = jumpBackAddr; - *(UINT64 *)((BYTE *)cc + 91) = g_pEntSys; - *(UINT64 *)((BYTE *)cc + 99) = g_pEnvSysSigged; - *(UINT64 *)((BYTE *)cc + 107) = g_pCCryActionSigged; - - printBuf(cc, sizeof cc, 32); - KMemoryBuf::Wpm<sizeof cc>(targetPID, (PVOID)targetAddr, &cc[0]); - - /* mov rax, 0x0000000000000000; jmp rax */ - BYTE dd[] = { 0x48, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xE0 }; - *(UINT64 *)((BYTE *)dd + 2) = (UINT64)targetAddr; - printBuf(dd, sizeof dd, 32); - - /* PATTERN: 48 89 4C 24 08 48 83 EC 48 +0x9 */ - KMemoryBuf::Wpm<sizeof dd>(targetPID, (PVOID)((UINT64)md.DllBase + 0x70609 /* TODO: SigScan Me! */), &dd[0]); - } - } - } - } - } - catch (std::runtime_error& err) { - std::wcout << err.what() << std::endl; - } - } while (running); - - std::wcout << L"Driver shutdown .." << std::endl; - ki.Exit(); - - return 0; -}
\ No newline at end of file diff --git a/Hunted/Hunted.vcxproj b/Hunted/Hunted.vcxproj deleted file mode 100644 index 14bc425..0000000 --- a/Hunted/Hunted.vcxproj +++ /dev/null @@ -1,203 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup Label="ProjectConfigurations"> - <ProjectConfiguration Include="Debug|Win32"> - <Configuration>Debug</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|Win32"> - <Configuration>Release</Configuration> - <Platform>Win32</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Debug|x64"> - <Configuration>Debug</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - <ProjectConfiguration Include="Release|x64"> - <Configuration>Release</Configuration> - <Platform>x64</Platform> - </ProjectConfiguration> - </ItemGroup> - <PropertyGroup Label="Globals"> - <VCProjectVersion>15.0</VCProjectVersion> - <ProjectGuid>{8661069D-CE09-4A70-8C75-8F33E77732E6}</ProjectGuid> - <Keyword>Win32Proj</Keyword> - <RootNamespace>Hunted</RootNamespace> - <WindowsTargetPlatformVersion>10.0.17763.0</WindowsTargetPlatformVersion> - <ProjectName>Hunted</ProjectName> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - <SpectreMitigation>false</SpectreMitigation> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v141</PlatformToolset> - <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> - <SpectreMitigation>false</SpectreMitigation> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>true</UseDebugLibraries> - <PlatformToolset>v141</PlatformToolset> - <CharacterSet>Unicode</CharacterSet> - <UseOfMfc>Static</UseOfMfc> - <SpectreMitigation>false</SpectreMitigation> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> - <ConfigurationType>Application</ConfigurationType> - <UseDebugLibraries>false</UseDebugLibraries> - <PlatformToolset>v141</PlatformToolset> - <WholeProgramOptimization>true</WholeProgramOptimization> - <CharacterSet>Unicode</CharacterSet> - <SpectreMitigation>false</SpectreMitigation> - <UseOfMfc>Static</UseOfMfc> - </PropertyGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> - <ImportGroup Label="ExtensionSettings"> - </ImportGroup> - <ImportGroup Label="Shared"> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> - </ImportGroup> - <PropertyGroup Label="UserMacros" /> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <LinkIncremental>true</LinkIncremental> - <TargetName>$(ProjectName)-kmem</TargetName> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <LinkIncremental>true</LinkIncremental> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <LinkIncremental>false</LinkIncremental> - </PropertyGroup> - <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <LinkIncremental>false</LinkIncremental> - <TargetName>$(ProjectName)-kmem</TargetName> - </PropertyGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> - <ClCompile> - <PrecompiledHeader>Use</PrecompiledHeader> - <WarningLevel>Level3</WarningLevel> - <Optimization>Disabled</Optimization> - <SDLCheck>true</SDLCheck> - <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <ConformanceMode>true</ConformanceMode> - <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> - <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> - <ExceptionHandling>SyncCThrow</ExceptionHandling> - <BufferSecurityCheck>true</BufferSecurityCheck> - <AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories> - </ClCompile> - <Link> - <SubSystem>Console</SubSystem> - <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>$(VCToolsInstallDir)lib\x64;$(OutputPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> - <AdditionalDependencies>kernel32.lib;user32.lib;Shlwapi.lib;MemDriverLib.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> - <ClCompile> - <PrecompiledHeader>Use</PrecompiledHeader> - <WarningLevel>Level3</WarningLevel> - <Optimization>Disabled</Optimization> - <SDLCheck>true</SDLCheck> - <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <ConformanceMode>true</ConformanceMode> - <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> - <ExceptionHandling>SyncCThrow</ExceptionHandling> - <BufferSecurityCheck>false</BufferSecurityCheck> - <RuntimeLibrary>MultiThreaded</RuntimeLibrary> - </ClCompile> - <Link> - <SubSystem>Console</SubSystem> - <GenerateDebugInformation>true</GenerateDebugInformation> - <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> - <ClCompile> - <PrecompiledHeader>Use</PrecompiledHeader> - <WarningLevel>Level3</WarningLevel> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <ConformanceMode>true</ConformanceMode> - <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> - <ExceptionHandling>Sync</ExceptionHandling> - <BufferSecurityCheck>false</BufferSecurityCheck> - </ClCompile> - <Link> - <SubSystem>Console</SubSystem> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <GenerateDebugInformation>true</GenerateDebugInformation> - <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> - </Link> - </ItemDefinitionGroup> - <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> - <ClCompile> - <PrecompiledHeader>Use</PrecompiledHeader> - <WarningLevel>Level3</WarningLevel> - <Optimization>MaxSpeed</Optimization> - <FunctionLevelLinking>true</FunctionLevelLinking> - <IntrinsicFunctions>true</IntrinsicFunctions> - <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> - <ConformanceMode>true</ConformanceMode> - <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile> - <ExceptionHandling>Sync</ExceptionHandling> - <BufferSecurityCheck>false</BufferSecurityCheck> - <AdditionalIncludeDirectories>$(SolutionDir)include</AdditionalIncludeDirectories> - <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> - </ClCompile> - <Link> - <SubSystem>Console</SubSystem> - <EnableCOMDATFolding>true</EnableCOMDATFolding> - <OptimizeReferences>true</OptimizeReferences> - <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>$(VCToolsInstallDir)lib\x64;$(OutputPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> - <AdditionalDependencies>kernel32.lib;user32.lib;Shlwapi.lib;MemDriverLib.lib;%(AdditionalDependencies)</AdditionalDependencies> - </Link> - </ItemDefinitionGroup> - <ItemGroup> - <ClInclude Include="..\include\KInterface.h" /> - <ClInclude Include="..\include\KMemDriver.h" /> - <ClInclude Include="pch.h" /> - </ItemGroup> - <ItemGroup> - <ClCompile Include="Hunted.cpp" /> - <ClCompile Include="pch.cpp"> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> - <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> - </ClCompile> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\MemDriverLib\MemDriverLib.vcxproj"> - <Project>{b6790a97-6995-46b6-ad73-ac5bc4ac76db}</Project> - </ProjectReference> - </ItemGroup> - <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> - <ImportGroup Label="ExtensionTargets"> - </ImportGroup> -</Project>
\ No newline at end of file diff --git a/Hunted/Hunted.vcxproj.filters b/Hunted/Hunted.vcxproj.filters deleted file mode 100644 index e3b3430..0000000 --- a/Hunted/Hunted.vcxproj.filters +++ /dev/null @@ -1,36 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <ItemGroup> - <Filter Include="Source Files"> - <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> - <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> - </Filter> - <Filter Include="Header Files"> - <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> - <Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions> - </Filter> - <Filter Include="Resource Files"> - <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> - <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> - </Filter> - </ItemGroup> - <ItemGroup> - <ClInclude Include="pch.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\include\KInterface.h"> - <Filter>Header Files</Filter> - </ClInclude> - <ClInclude Include="..\include\KMemDriver.h"> - <Filter>Header Files</Filter> - </ClInclude> - </ItemGroup> - <ItemGroup> - <ClCompile Include="pch.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - <ClCompile Include="Hunted.cpp"> - <Filter>Source Files</Filter> - </ClCompile> - </ItemGroup> -</Project>
\ No newline at end of file diff --git a/Hunted/pch.cpp b/Hunted/pch.cpp deleted file mode 100644 index 3a3d12b..0000000 --- a/Hunted/pch.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// pch.cpp: source file corresponding to pre-compiled header; necessary for compilation to succeed - -#include "pch.h" - -// In general, ignore this file, but keep it around if you are using pre-compiled headers. diff --git a/Hunted/pch.h b/Hunted/pch.h deleted file mode 100644 index b04e71e..0000000 --- a/Hunted/pch.h +++ /dev/null @@ -1,14 +0,0 @@ -// Tips for Getting Started: -// 1. Use the Solution Explorer window to add/manage files -// 2. Use the Team Explorer window to connect to source control -// 3. Use the Output window to see build output and other messages -// 4. Use the Error List window to view errors -// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project -// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file - -#ifndef PCH_H -#define PCH_H - -// TODO: add headers that you want to pre-compile here - -#endif //PCH_H diff --git a/KMemDriver.sln b/KMemDriver.sln index 7666726..c508006 100644 --- a/KMemDriver.sln +++ b/KMemDriver.sln @@ -5,8 +5,6 @@ VisualStudioVersion = 15.0.28307.421 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KMemDriver", "KMemDriver\KMemDriver.vcxproj", "{5B65BD0E-C43C-41E3-A016-1CD0B092998F}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Hunted", "Hunted\Hunted.vcxproj", "{8661069D-CE09-4A70-8C75-8F33E77732E6}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MemDriverLib", "MemDriverLib\MemDriverLib.vcxproj", "{B6790A97-6995-46B6-AD73-AC5BC4AC76DB}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MemDriverWeb", "MemDriverWeb\MemDriverWeb.vcxproj", "{D36A5026-3729-4CC0-BD26-37177ACE3590}" @@ -32,10 +30,6 @@ Global {5B65BD0E-C43C-41E3-A016-1CD0B092998F}.Release|x64.ActiveCfg = Release|x64 {5B65BD0E-C43C-41E3-A016-1CD0B092998F}.Release|x64.Build.0 = Release|x64 {5B65BD0E-C43C-41E3-A016-1CD0B092998F}.Release|x64.Deploy.0 = Release|x64 - {8661069D-CE09-4A70-8C75-8F33E77732E6}.Debug|x64.ActiveCfg = Debug|x64 - {8661069D-CE09-4A70-8C75-8F33E77732E6}.Debug|x64.Build.0 = Debug|x64 - {8661069D-CE09-4A70-8C75-8F33E77732E6}.Release|x64.ActiveCfg = Release|x64 - {8661069D-CE09-4A70-8C75-8F33E77732E6}.Release|x64.Build.0 = Release|x64 {B6790A97-6995-46B6-AD73-AC5BC4AC76DB}.Debug|x64.ActiveCfg = Debug|x64 {B6790A97-6995-46B6-AD73-AC5BC4AC76DB}.Debug|x64.Build.0 = Debug|x64 {B6790A97-6995-46B6-AD73-AC5BC4AC76DB}.Release|x64.ActiveCfg = Release|x64 diff --git a/TestDLL/HuntClasses.h b/TestDLL/HuntClasses.h deleted file mode 100644 index e394cf8..0000000 --- a/TestDLL/HuntClasses.h +++ /dev/null @@ -1,965 +0,0 @@ -#pragma once - -#include <Windows.h> -#include <stdarg.h> - -#include <string> -#include <map> - -struct ISystem; - - -#define ENTITY_FLAG_LOCAL_PLAYER 0x8000000 - -#define PENTITYSYSTEM_ISYSTEM_OFFSET 104 - -template<class _I> class _smart_ptr -{ -private: - _I* p; -public: - _smart_ptr() : p(NULL) {} - _smart_ptr(_I* p_) - { - p = p_; - if (p) - p->AddRef(); - } - _smart_ptr(const _smart_ptr& p_) - { - p = p_.p; - if (p) - p->AddRef(); - } - _smart_ptr(_smart_ptr&& p_) noexcept - { - p = p_.p; - p_.p = nullptr; - } - template<typename _Y> - _smart_ptr(const _smart_ptr<_Y>& p_) - { - p = p_.get(); - if (p) - p->AddRef(); - } - ~_smart_ptr() - { - if (p) - p->Release(); - } - operator _I*() const { return p; } - - _I& operator*() const { return *p; } - _I* operator->(void) const { return p; } - _I* get() const { return p; } - _smart_ptr& operator=(_I* newp) - { - if (newp != this->p) - { - _I* oldp = p; - p = newp; - if (p) - p->AddRef(); - if (oldp) - oldp->Release(); - } - return *this; - } - void reset() - { - _smart_ptr<_I>().swap(*this); - } - void reset(_I* p) - { - if (p != this->p) - { - _smart_ptr<_I>(p).swap(*this); - } - } - _smart_ptr& operator=(const _smart_ptr& newp) - { - if (newp.p != this->p) - { - if (newp.p) - newp.p->AddRef(); - if (p) - p->Release(); - p = newp.p; - } - return *this; - } - _smart_ptr& operator=(_smart_ptr&& p_) - { - if (this != &p_) - { - if (p) - p->Release(); - p = p_.p; - p_.p = nullptr; - } - return *this; - } - template<typename _Y> - _smart_ptr& operator=(const _smart_ptr<_Y>& newp) - { - _I* const p2 = newp.get(); - if (p2 != this->p) - { - if (p2) - p2->AddRef(); - if (p) - p->Release(); - p = p2; - } - return *this; - } - void swap(_smart_ptr<_I>& other) - { - std::swap(p, other.p); - } - void Assign_NoAddRef(_I* ptr) - { - CRY_ASSERT(!p, "Assign_NoAddRef should only be used on a default-constructed, not-yet-assigned smart_ptr instance"); - p = ptr; - } - _I* ReleaseOwnership() - { - _I* ret = p; - p = 0; - return ret; - } -}; - -template<typename T, int N> -struct INumberArray -{ -}; - -template<typename T, int N, typename Final> -struct INumberVector : INumberArray<T, N> -{ -}; - -template<typename F> struct Vec3_tpl - : INumberVector<F, 3, Vec3_tpl<F>> -{ -public: - F x, y, z; - Vec3_tpl(F vx, F vy, F vz) : x(vx), y(vy), z(vz) {} -}; -typedef Vec3_tpl<float> Vec3; - -template<typename F> struct Ang3_tpl - : INumberVector<F, 3, Ang3_tpl<F>> -{ -public: - F x, y, z; - Ang3_tpl(F vx, F vy, F vz) : x(vx), y(vy), z(vz) {} -}; -typedef Ang3_tpl<float> Ang3; - -template<typename F> struct Quat_tpl - : INumberVector<F, 4, Quat_tpl<F>> -{ -public: - Vec3_tpl<F> v; - F w; -}; -typedef Quat_tpl<float> Quat; - -class Matrix34 { -public: - float m00; - float m01; - float m02; - float m03; - float m10; - float m11; - float m12; - float m13; - float m20; - float m21; - float m22; - float m23; - Vec3 GetTranslation() const { return Vec3(m03, m13, m23); } -}; - -enum EDrawTextFlags : UINT32 -{ - eDrawText_Default, - eDrawText_Center = 1, - eDrawText_Right = 2, - eDrawText_CenterV = 4, - eDrawText_Bottom = 8, - eDrawText_2D = 16, - eDrawText_FixedSize = 32, - eDrawText_800x600 = 64, - eDrawText_Monospace = 128, - eDrawText_Framed = 256, - eDrawText_DepthTest = 512, - eDrawText_IgnoreOverscan = 1024, - eDrawText_LegacyBehavior = 2048 -}; - -template<class T> struct Color_tpl -{ - T r, g, b, a; - Color_tpl() {}; - Color_tpl(T _r, T _g, T _b, T _a) : r(_r), g(_g), b(_b), a(_a) {} -}; - -typedef Color_tpl<UINT8> ColorB; - -struct SAuxGeomRenderFlags -{ - UINT32 m_renderFlags; -}; - -class IRenderAuxGeom -{ -public: - virtual ~IRenderAuxGeom() {} - virtual SAuxGeomRenderFlags SetRenderFlags(const SAuxGeomRenderFlags& renderFlags) = 0; - virtual SAuxGeomRenderFlags GetRenderFlags() = 0; - virtual PVOID GetCamera() const = 0; -}; - -struct IEntity -{ -public: - virtual ~IEntity() {} - virtual int GetId() const = 0; - virtual const PVOID GetGuid() const = 0; - virtual PVOID GetClass() const = 0; - virtual void fn_00(void) = 0; - virtual void fn_01(void) = 0; - virtual UINT32 GetFlags() const = 0; - virtual void fn_02(void) = 0; - virtual void fn_03(void) = 0; - virtual void fn_04(void) const = 0; - virtual void fn_05(void) = 0; - virtual UINT32 GetFlagsExtended() const = 0; - virtual bool IsInitialized() const = 0; - virtual bool IsGarbage() const = 0; - virtual UINT8 GetComponentChangeState() const = 0; - virtual void fn_06(void) = 0; - virtual const char* GetName() const = 0; - virtual std::string GetEntityTextDescription() const = 0; - virtual void fn_07(void) = 0; - virtual bool IsLoadedFromLevelFile() const = 0; - virtual void fn_08(void) = 0; - virtual void fn_09(void) = 0; - virtual void fn_10(void) = 0; - virtual int GetChildCount() const = 0; - virtual IEntity* GetChild(int nIndex) const = 0; - virtual IEntity* GetParent() const = 0; - virtual IEntity* GetLocalSimParent() const = 0; - virtual Matrix34 GetParentAttachPointWorldTM() const = 0; - virtual bool IsParentAttachmentValid() const = 0; - virtual void fn_11(void) = 0; - virtual void fn_12(void) = 0; - virtual const Matrix34& GetWorldTM() const = 0; - virtual Matrix34 GetLocalTM() const = 0; - virtual void fn_13(void) const = 0; - virtual void fn_14(void) const = 0; - virtual void fn_15(void) = 0; - virtual void fn_16(void) = 0; - virtual void fn_17(void) = 0; - virtual const Vec3& GetPos() const = 0; - virtual void fn_18(void) = 0; - virtual void fn_19(void) const = 0; - virtual void fn_20(void) = 0; - virtual const Vec3& GetScale() const = 0; - virtual void fn_21(void) = 0; - virtual Vec3 GetWorldPos() const = 0; - virtual Ang3 GetWorldAngles() const = 0; - virtual Quat GetWorldRotation() const = 0; - virtual Vec3 GetWorldScale() const = 0; - //virtual IScriptTable* GetScriptTable() const final; - //GetScriptTable -> VirtualFuncIndex 64 -}; - -struct IEntityIt -{ - virtual ~IEntityIt() {} - virtual void AddRef() = 0; - virtual void Release() = 0; - virtual bool IsEnd() = 0; - virtual IEntity* Next() = 0; - virtual IEntity* This() = 0; - virtual void MoveFirst() = 0; -}; - -typedef _smart_ptr<IEntityIt> IEntityItPtr; - -struct IEntitySystem -{ - virtual ~IEntitySystem() {} - virtual void fn_00(void) = 0; - virtual void fn_01(void) = 0; - virtual void fn_02(void) = 0; - virtual void fn_03(void) = 0; - virtual void fn_04(void) = 0; - virtual void fn_05(void) = 0; - virtual void fn_06(void) = 0; - virtual void fn_07(void) = 0; - virtual void fn_08(void) const = 0; - virtual void fn_09(void) = 0; - virtual void fn_10(void) = 0; - virtual PVOID GetEntity(void) const = 0; - virtual PVOID FindEntityByName(void) const = 0; - virtual void fn_11(void) = 0; - virtual void fn_12(void) = 0; - virtual void fn_13(void) = 0; - virtual UINT32 GetNumEntities(void) const = 0; - virtual IEntityItPtr GetEntityIterator() = 0; - virtual void fn_14(void) = 0; - virtual void fn_15(void) = 0; - virtual void fn_16(void) = 0; - virtual void fn_17(void) = 0; - virtual void fn_18(void) = 0; - virtual void fn_19(void) const = 0; - virtual void fn_20(void) const = 0; - virtual void fn_21(void) = 0; - virtual void fn_22(void) = 0; - virtual void fn_23(void) = 0; - virtual void fn_24(void) = 0; - virtual void fn_25(void) const = 0; - virtual ISystem* GetSystem() const = 0; -}; - -struct IRenderer//: public IRendererCallbackServer -{ - virtual ~IRenderer() {} - virtual void fn_00(void) = 0; - virtual void fn_01(void) = 0; - virtual void fn_02(void) = 0; - virtual void fn_03(void) = 0; - virtual void fn_04(void) = 0; - virtual void fn_05(void) = 0; - virtual void fn_06(void) = 0; - virtual void fn_07(void) = 0; - virtual void fn_08(void) = 0; - virtual void fn_09(void) = 0; - virtual void fn_10(void) = 0; - virtual void fn_11(void) = 0; - virtual int GetFeatures() = 0; - virtual void fn_12(void) = 0; - virtual int GetNumGeomInstances() = 0; - virtual int GetNumGeomInstanceDrawCalls() = 0; - virtual int GetCurrentNumberOfDrawCalls() = 0; - virtual void fn_13(void) = 0; - virtual void fn_14(void) = 0; - virtual void fn_15(void) = 0; - virtual void fn_16(void) = 0; - virtual void fn_17(void) = 0; - virtual void fn_18(void) = 0; - virtual void fn_19(void) = 0; - virtual void fn_20(void) = 0; - virtual void fn_21(void) = 0; - virtual void fn_22(void) = 0; - virtual void fn_23(void) = 0; - virtual void fn_24(void) = 0; - virtual void fn_25(void) = 0; - virtual void fn_26(void) = 0; - virtual void fn_27(void) = 0; - virtual void fn_28(void) = 0; - virtual void fn_29(void) = 0; - virtual void fn_30(void) = 0; - virtual void fn_31(void) = 0; - virtual void fn_32(void) = 0; - virtual void fn_33(void) = 0; - virtual void fn_34(void) = 0; - virtual void fn_35(void) = 0; - virtual void fn_36(void) = 0; - virtual void fn_37(void) = 0; - virtual int GetWhiteTextureId() const = 0; - virtual void fn_38(void) = 0; - virtual void fn_39(void) = 0; - virtual int GetHeight() const = 0; - virtual int GetWidth() const = 0; - virtual float GetPixelAspectRatio() const = 0; - virtual int GetOverlayHeight() const = 0; - virtual int GetOverlayWidth() const = 0; - virtual void GetMemoryUsage(PVOID Sizer) = 0; - virtual void GetBandwidthStats(float* fBandwidthRequested) = 0; - virtual void fn_40(void) = 0; - virtual void fn_41(void) = 0; - virtual void fn_42(void) = 0; - virtual int GetColorBpp() = 0; - virtual int GetDepthBpp() = 0; - virtual int GetStencilBpp() = 0; - virtual bool IsStereoEnabled() const = 0; - virtual float GetNearestRangeMax() const = 0; - virtual bool ProjectToScreen( - float ptx, float pty, float ptz, - float* sx, float* sy, float* sz) = 0; - virtual int UnProject( - float sx, float sy, float sz, - float* px, float* py, float* pz, - const float modelMatrix[16], - const float projMatrix[16], - const int viewport[4]) = 0; - virtual int UnProjectFromScreen( - float sx, float sy, float sz, - float* px, float* py, float* pz) = 0; - virtual void fn_43(void) = 0; - virtual void fn_44(void) = 0; - virtual void fn_45(void) = 0; - virtual void fn_46(void) = 0; - virtual void fn_47(void) = 0; - virtual void fn_48(void) = 0; - virtual void fn_49(void) = 0; - virtual void fn_50(void) = 0; - virtual int CurThreadList() = 0; - virtual void fn_51(void) = 0; - virtual void fn_52(void) = 0; - virtual void fn_53(void) = 0; - virtual void fn_54(void) = 0; - virtual void fn_55(void) = 0; - virtual void fn_56(void) = 0; - virtual void fn_57(void) = 0; - virtual void fn_58(void) = 0; - virtual void fn_59(void) = 0; - virtual void fn_60(void) = 0; - virtual void fn_61(void) = 0; - virtual void fn_62(void) = 0; - virtual void fn_63(void) = 0; - virtual void fn_64(void) = 0; - virtual void fn_65(void) = 0; - virtual void fn_66(void) = 0; - virtual void fn_67(void) = 0; - virtual void fn_68(void) = 0; - virtual void fn_69(void) = 0; - virtual void fn_70(void) = 0; - virtual void fn_71(void) = 0; - virtual void fn_72(void) = 0; - virtual void fn_73(void) = 0; - virtual void fn_74(void) = 0; - virtual void fn_75(void) = 0; - virtual void fn_76(void) = 0; - virtual void fn_77(void) = 0; - virtual void fn_78(void) = 0; - virtual void fn_79(void) const = 0; - virtual void fn_80(void) = 0; - virtual void fn_81(void) = 0; - virtual void fn_82(void) = 0; - virtual void fn_83(void) = 0; - virtual void fn_84(void) = 0; - virtual void fn_85(void) = 0; - virtual void fn_86(void) = 0; - virtual void fn_87(void) = 0; - virtual void fn_88(void) = 0; - virtual void fn_89(void) = 0; - virtual void fn_90(void) = 0; - virtual void fn_91(void) = 0; - virtual void fn_92(void) = 0; - virtual void fn_93(void) = 0; - virtual void fn_94(void) = 0; - virtual void fn_95(void) = 0; - virtual void fn_96(void) = 0; - virtual void fn_97(void) = 0; - virtual void fn_98(void) = 0; - virtual void fn_99(void) = 0; - virtual void fn_100(void) = 0; - virtual void fn_101(void) = 0; - virtual void fn_102(void) = 0; - virtual void fn_103(void) = 0; - virtual void fn_104(void) const = 0; - virtual void fn_105(void) = 0; - virtual void fn_106(void) = 0; - virtual void fn_107(void) = 0; - virtual void fn_108(void) = 0; - virtual void fn_109(void) = 0; - virtual void fn_110(void) = 0; - virtual void fn_111(void) = 0; - virtual void fn_112(void) = 0; - virtual void fn_113(void) = 0; - virtual void fn_114(void) = 0; - virtual void fn_115(void) = 0; - virtual void fn_116(void) = 0; - virtual void fn_117(void) = 0; - virtual void fn_118(void) = 0; - virtual void fn_119(void) = 0; - virtual void fn_120(void) = 0; - virtual void fn_121(void) = 0; - virtual int GetPolyCount() = 0; - virtual void fn_122(void) = 0; - virtual void fn_123(void) = 0; - virtual void fn_124(void) = 0; - virtual int GetFrameID(bool bIncludeRecursiveCalls = true) = 0; - virtual void fn_125(void) = 0; - virtual float ScaleCoordX(float value) const = 0; - virtual float ScaleCoordY(float value) const = 0; - virtual void ScaleCoord(float& x, float& y) const = 0; - virtual void fn_126(void) = 0;; - virtual void fn_127(void) = 0; - virtual void fn_128(void) = 0; - virtual void fn_129(void) = 0; - virtual IRenderAuxGeom* GetIRenderAuxGeom() = 0; - virtual IRenderAuxGeom* GetOrCreateIRenderAuxGeom(const PVOID pCustomCamera = nullptr) = 0; - virtual void DeleteAuxGeom(IRenderAuxGeom* pRenderAuxGeom) = 0; - virtual void SubmitAuxGeom(IRenderAuxGeom* pRenderAuxGeom, bool merge = true) = 0; -}; - -/* generated with: "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe" /Zp2 /c /d1reportSingleClassLayoutIActor C:\Users\segfault\Source\Repos\CRYENGINE\Code\CryEngine\CryAction\ActorSystem.cpp /I C:\Users\segfault\Source\Repos\CRYENGINE\Code\CryEngine\CryCommon /I "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared" /I "C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um" /I "C:\Users\segfault\Source\Repos\CRYENGINE\Code\CryEngine\CryAction" */ -struct IActor -{ - virtual void fn_00(void) = 0; - virtual ~IActor(void) = 0; - virtual void fn_01(void) = 0; - virtual void fn_02(void) = 0; - virtual void fn_03(void) = 0; - virtual void fn_04(void) = 0; - virtual void fn_05(void) = 0; - virtual void fn_06(void) = 0; - virtual void fn_07(void) = 0; - virtual void fn_08(void) = 0; - virtual void fn_09(void) = 0; - virtual void fn_10(void) = 0; - virtual void fn_11(void) = 0; - virtual void fn_12(void) = 0; - virtual void fn_13(void) = 0; - virtual void fn_14(void) = 0; - virtual void fn_15(void) = 0; - virtual void fn_16(void) = 0; - virtual void fn_17(void) = 0; - virtual void fn_18(void) = 0; - virtual void fn_19(void) = 0; - virtual void fn_20(void) = 0; - virtual void fn_21(void) = 0; - virtual void fn_22(void) = 0; - virtual void fn_23(void) = 0; - virtual void fn_24(void) = 0; - virtual void fn_25(void) = 0; - virtual void fn_26(void) = 0; - virtual void fn_27(void) = 0; - virtual void fn_28(void) = 0; - virtual void fn_29(void) = 0; - virtual void fn_30(void) = 0; - virtual void fn_31(void) = 0; - virtual void fn_32(void) = 0; - virtual void fn_33(void) = 0; - virtual void IActor_SetChannelId(void) = 0; - virtual void fn_34(void) = 0; - virtual void fn_35(void) = 0; - virtual void fn_36(void) = 0; - - virtual void SetHealth(float health) = 0; - virtual float GetHealth() const = 0; - virtual int GetHealthAsRoundedPercentage() const = 0; - virtual void SetMaxHealth(float maxHealth) = 0; - virtual float GetMaxHealth() const = 0; - virtual int GetArmor() const = 0; - virtual int GetMaxArmor() const = 0; - virtual int GetTeamId() const = 0; - virtual bool IsFallen() const = 0; - virtual bool IsDead() const = 0; - virtual int IsGod() = 0; - virtual void Fall(Vec3 hitPos = Vec3(0, 0, 0)) = 0; - virtual bool AllowLandingBob() = 0; - virtual void PlayAction(const char* action, const char* extension, bool looping = false) = 0; - virtual PVOID GetAnimationGraphState() = 0; - virtual void ResetAnimationState() = 0; - virtual void CreateScriptEvent(const char* event, float value, const char* str = NULL) = 0; - virtual bool BecomeAggressiveToAgent(int entityID) = 0; - virtual void SetFacialAlertnessLevel(int alertness) = 0; - virtual void RequestFacialExpression(const char* pExpressionName = NULL, float* sequenceLength = NULL) = 0; - virtual void PrecacheFacialExpression(const char* pExpressionName) = 0; - virtual int GetGrabbedEntityId() const = 0; - virtual void HideAllAttachments(bool isHiding) = 0; - virtual void SetIKPos(const char* pLimbName, const Vec3& goalPos, int priority) = 0; - virtual void SetViewInVehicle(PVOID viewRotation) = 0; - virtual void SetViewRotation(PVOID rotation) = 0; - virtual PVOID GetViewRotation() const = 0; - virtual bool IsFriendlyEntity(int entityId, bool bUsingAIIgnorePlayer = true) const = 0; - virtual Vec3 GetLocalEyePos() const = 0; - virtual void CameraShake(float angle, float shift, float duration, float frequency, Vec3 pos, int ID, const char* source = "") = 0; - virtual PVOID GetHolsteredItem() const = 0; - virtual void HolsterItem(bool holster, bool playSelect = true, float selectSpeedBias = 1.0f, bool hideLeftHandObject = true) = 0; - virtual PVOID GetCurrentItem(bool includeVehicle = false) const = 0; - virtual bool DropItem(int itemId, float impulseScale = 1.0f, bool selectNext = true, bool byDeath = false) = 0; - virtual PVOID GetInventory() const = 0; - virtual void NotifyCurrentItemChanged(PVOID newItem) = 0; - virtual PVOID GetMovementController() const = 0; - virtual IEntity* LinkToVehicle(int vehicleId) = 0; - virtual IEntity* GetLinkedEntity() const = 0; - virtual UINT8 GetSpectatorMode() const = 0; - virtual bool IsThirdPerson() const = 0; - virtual void ToggleThirdPerson() = 0; - virtual bool IsStillWaitingOnServerUseResponse() const { return false; } - virtual void SetStillWaitingOnServerUseResponse(bool waiting) { UNREFERENCED_PARAMETER(waiting); } - virtual void SetFlyMode(UINT8 flyMode) { UNREFERENCED_PARAMETER(flyMode); }; - virtual UINT8 GetFlyMode() const { return 0; }; - virtual void Release() = 0; - virtual bool IsPlayer() const = 0; - virtual bool IsClient() const = 0; - virtual bool IsMigrating() const = 0; - virtual void SetMigrating(bool isMigrating) = 0; - virtual void InitLocalPlayer() = 0; - virtual const char* GetActorClassName() const = 0; - virtual PVOID GetActorClass() const = 0; - virtual const char* GetEntityClassName() const = 0; - virtual void SerializeLevelToLevel(PVOID ser) = 0; - virtual void ProcessEvent(const PVOID event) = 0; - virtual PVOID GetAnimatedCharacter() = 0; - virtual const PVOID GetAnimatedCharacter() const = 0; - virtual void PlayExactPositioningAnimation(const char* sAnimationName, bool bSignal, const Vec3& vPosition, const Vec3& vDirection, float startWidth, float startArcAngle, float directionTolerance) = 0; - virtual void CancelExactPositioningAnimation() = 0; - virtual void PlayAnimation(const char* sAnimationName, bool bSignal) = 0; - virtual bool Respawn() { return false; } - virtual void ResetToSpawnLocation() {} - virtual bool CanBreakGlass() const { return false; } - virtual bool MustBreakGlass() const { return false; } - virtual void EnableTimeDemo(bool bTimeDemo) = 0; - void SetChannelId(UINT16 id) { UNREFERENCED_PARAMETER(id); } - virtual void SwitchDemoModeSpectator(bool activate) = 0; - virtual void SetCustomHead(const char* customHead) { UNREFERENCED_PARAMETER(customHead); }; - virtual PVOID GetLinkedVehicle() const = 0; - virtual bool GetValidPositionNearby(const Vec3& proposedPosition, Vec3& adjustedPosition) const = 0; - virtual void SetExpectedPhysicsPos(const Vec3& expectedPosition) = 0; - virtual void OnAIProxyEnabled(bool enabled) = 0; - virtual void OnReturnedToPool() = 0; - virtual void OnPreparedFromPool() = 0; - virtual void OnShiftWorld() {}; - virtual void MountedGunControllerEnabled(bool val) { UNREFERENCED_PARAMETER(val); }; - virtual bool MountedGunControllerEnabled() const { return false; } - virtual bool ShouldMuteWeaponSoundStimulus() const = 0; - virtual int GetPhysicalSkipEntities(PVOID pSkipList, const int maxSkipSize) const - { - UNREFERENCED_PARAMETER(pSkipList); - UNREFERENCED_PARAMETER(maxSkipSize); - return 0; - } - virtual void OnReused(IEntity* pEntity, PVOID params) = 0; - virtual bool IsInteracting() const = 0; -}; - -struct IActorIterator -{ - virtual ~IActorIterator() {} - virtual size_t Count() = 0; - virtual IActor* Next() = 0; - virtual void AddRef() = 0; - virtual void Release() = 0; -}; -typedef _smart_ptr<IActorIterator> IActorIteratorPtr; - -typedef std::map<int, IActor*> TActorMap; - -struct IActorSystem -{ - virtual ~IActorSystem() {} - virtual void Reset() = 0; - virtual void Reload() = 0; - virtual IActor* GetActor(int entityId) = 0; - virtual IActor* GetActorByChannelId(UINT16 channelId) = 0; - virtual IActor* fn_00(void) = 0; - virtual int GetActorCount() const = 0; - virtual IActorIteratorPtr CreateActorIterator() = 0; - virtual void SetDemoPlaybackMappedOriginalServerPlayer(int id) = 0; - virtual int GetDemoPlaybackMappedOriginalServerPlayer() const = 0; - virtual void SwitchDemoSpectator(int id = 0) = 0; - virtual IActor* GetCurrentDemoSpectator() = 0; - virtual IActor* GetOriginalDemoSpectator() = 0; - virtual void AddActor(int entityId, IActor* pActor) = 0; - virtual void RemoveActor(int entityId) = 0; - virtual void Scan(const char* folderName) = 0; - virtual bool fn_01(void) = 0; - virtual const PVOID GetActorParams(const char* actorClass) const = 0; - virtual bool IsActorClass(PVOID pClass) const = 0; -}; - -struct IGameFramework -{ - virtual void fn_00(void) = 0; - virtual void fn_01(void) = 0; - virtual void fn_02(void) = 0; - virtual void fn_03(void) = 0; - virtual void fn_04(void) = 0; - virtual void fn_05(void) = 0; - - virtual ~IGameFramework() {} - virtual void fn_06(void) = 0; - virtual void fn_07(void) = 0; - virtual void fn_08(void) = 0; - virtual void fn_09(void) = 0; - virtual void fn_10(void) = 0; - virtual void fn_11(void) = 0; - virtual void fn_12(void) = 0; - virtual void fn_13(void) = 0; - virtual void fn_14(void) = 0; - virtual void fn_15(void) = 0; - virtual void fn_16(void) = 0; - virtual bool IsGamePaused() = 0; - virtual bool IsGameStarted() = 0; - virtual ISystem* GetISystem() = 0; - virtual void fn_17(void) = 0; - virtual void fn_18(void) = 0; - virtual void fn_19(void) = 0; - virtual void fn_20(void) = 0; - virtual void fn_21(void) = 0; - virtual IActorSystem* GetIActorSystem(void) = 0; - virtual void fn_23(void) = 0; - virtual void fn_24(void) = 0; - virtual void fn_25(void) = 0; - virtual void fn_26(void) = 0; - virtual void fn_27(void) = 0; - virtual void fn_28(void) = 0; - virtual void fn_29(void) = 0; - virtual void fn_30(void) = 0; - virtual void fn_31(void) = 0; - virtual void fn_32(void) = 0; - virtual void fn_33(void) = 0; - virtual void fn_34(void) = 0; - virtual void fn_35(void) = 0; - virtual void fn_36(void) = 0; - virtual void fn_37(void) = 0; - virtual void fn_38(void) = 0; - virtual void fn_39(void) = 0; - virtual void fn_40(void) = 0; - virtual void fn_41(void) = 0; - virtual void fn_42(void) = 0; - virtual void fn_43(void) = 0; - virtual void fn_44(void) = 0; - virtual void fn_45(void) = 0; - virtual void fn_46(void) = 0; - virtual void fn_47(void) = 0; - virtual void fn_48(void) = 0; - virtual void fn_49(void) = 0; - virtual void fn_50(void) = 0; - virtual void fn_51(void) = 0; - virtual void fn_52(void) = 0; - virtual void fn_53(void) = 0; - virtual void fn_54(void) = 0; - virtual void fn_55(void) = 0; - virtual void fn_56(void) = 0; - virtual void fn_57(void) = 0; - virtual void fn_58(void) = 0; - virtual void fn_59(void) = 0; - virtual void fn_60(void) = 0; - virtual void fn_61(void) = 0; - virtual void fn_62(void) = 0; - virtual void fn_62_1(void) = 0; - virtual void fn_63(void) = 0; - virtual IActor* GetClientActor() const = 0; - virtual int GetClientActorId() const = 0; - virtual IEntity* GetClientEntity() const = 0; - virtual int GetClientEntityId() const = 0; - virtual PVOID GetClientChannel() const = 0; - virtual void fn_64(void) = 0; - virtual void fn_65(void) = 0; - virtual void fn_66(void) = 0; - virtual void fn_67(void) = 0; - virtual void fn_68(void) = 0; - virtual void fn_69(void) = 0; - virtual void fn_70(void) = 0; - virtual void fn_71(void) = 0; - virtual void fn_72(void) = 0; - virtual void fn_73(void) = 0; - virtual void fn_74(void) = 0; - virtual void fn_75(void) = 0; - virtual void fn_76(void) = 0; - virtual void fn_77(void) = 0; - virtual void fn_78(void) = 0; - virtual void fn_79(void) = 0; - virtual void fn_80(void) = 0; - virtual void fn_81(void) = 0; - virtual UINT8 IsEditing() = 0; - virtual UINT8 IsInLevelLoad() = 0; - virtual UINT8 IsLoadingSaveGame() = 0; - virtual UINT8 IsInTimeDemo() = 0; - virtual UINT8 IsTimeDemoRecording() = 0; - virtual void fn_82(void) = 0; - virtual void fn_83(void) = 0; - virtual UINT8 CanSave() = 0; - virtual UINT8 CanLoad() = 0; - virtual void fn_84(void) = 0; - virtual UINT8 CanCheat() = 0; - virtual const char* GetLevelName() = 0; - virtual void GetAbsLevelPath(char* pPathBuffer, UINT32 pathBufferSize) = 0; - virtual PVOID GetIPersistantDebug() = 0; - virtual void fn_85(void) = 0; - virtual void fn_86(void) = 0; - virtual void fn_87(void) = 0; - virtual void fn_88(void) = 0; - virtual void fn_89(void) = 0; - virtual void fn_90(void) = 0; - virtual void fn_91(void) = 0; - virtual void fn_92(void) = 0; - virtual void fn_93(void) = 0; - virtual const char* GetGameGUID() = 0; -}; - -struct SSystemGlobalEnvironment { - UINT64 ukn_00; - UINT64 ukn_01; - UINT64 ukn_02; - UINT64 ukn_03; - UINT64 ukn_04; - UINT64 ukn_05; - UINT64 ukn_06; - UINT64 ukn_07; - UINT64 ukn_08; - UINT64 ukn_09; - UINT64 ukn_10; - UINT64 ukn_11; - UINT64 ukn_12; - UINT64 ukn_13; - UINT64 ukn_14; - UINT64 ukn_15; - UINT64 ukn_16; - UINT64 ukn_17; - IGameFramework* pGameFramework; - UINT64 ukn_18; - IEntitySystem* pEntitySystem; - UINT64 ukn_19; - UINT64 ukn_20; - ISystem* pSystem; - UINT64 ukn_21; - UINT64 ukn_22; - UINT64 ukn_23; - UINT64 ukn_24; - UINT64 ukn_25; - UINT64 ukn_26; - IRenderer* pRenderer; - IRenderAuxGeom* pAuxGeomRenderer; /* NullAuxGeomRenderer */ - UINT64 ukn_27; - UINT64 ukn_28; - UINT64 ukn_29; - UINT64 ukn_30; - UINT64 ukn_31; - UINT64 ukn_32; - UINT64 ukn_33; - UINT64 ukn_34; - UINT64 ukn_35; - UINT64 ukn_36; - UINT64 ukn_37; - UINT64 ukn_38; - UINT64 ukn_39; - UINT64 ukn_40; - UINT64 ukn_41; - UINT64 ukn_42; - UINT64 ukn_43; - UINT64 ukn_44; - UINT64 ukn_45; - UINT64 ukn_46; - UINT32 mMainThreadId; - UINT32 nMainFrameID; - LPCSTR szCmdLine; - CHAR szDebugStatus[128]; - BOOL bServer; - BOOL bMultiplayer; - BOOL bHostMigrating; -}; - -struct ISystem -{ - virtual ~ISystem() {} - virtual void fn_00(void) const = 0; - virtual SSystemGlobalEnvironment* GetGlobalEnvironment() = 0; - virtual void fn_01(void) const = 0; - virtual const char* GetRootFolder() const = 0; - virtual void fn_02(void) = 0; - virtual void fn_03(void) = 0; - virtual void fn_04(void) = 0; - virtual void fn_05(void) = 0; - virtual void fn_06(void) = 0; - virtual void fn_07(void) = 0; - virtual void fn_08(void) = 0; - virtual void fn_09(void) = 0; - virtual void fn_10(void) = 0; - virtual void fn_11(void) = 0; - virtual UINT32 GetUsedMemory() = 0; - virtual const char* GetUserName() = 0; - virtual UINT32 GetCPUFlags() = 0; - virtual int GetLogicalCPUCount() = 0; - virtual void fn_12(void) = 0; - virtual void Quit() = 0; - virtual void Relaunch(bool bRelaunch) = 0; - virtual UINT32 IsQuitting() const = 0; - virtual void fn_13(void) = 0; - virtual void fn_14(void) = 0; - virtual void fn_15(void) = 0; - virtual UINT32 IsRelaunch() const = 0; - virtual void fn_16(void) = 0; - virtual void fn_17(void) = 0; - virtual void fn_18(void) = 0; - virtual void fn_19(void) = 0; - virtual void fn_20(void) = 0; - virtual void fn_21(void) = 0; - virtual void fn_22(void) = 0; - virtual void fn_23(void) = 0; - virtual void fn_24(void) = 0; - virtual void fn_25(void) = 0; - virtual void fn_26(void) = 0; - virtual void fn_27(void) = 0; - virtual void fn_28(void) = 0; - virtual void fn_29(void) = 0; - virtual void fn_30(void) = 0; - virtual void fn_31(void) = 0; - virtual void fn_32(void) = 0; - virtual void fn_33(void) = 0; - virtual void fn_34(void) = 0; - virtual void fn_35(void) = 0; - virtual void fn_36(void) = 0; - virtual void fn_37(void) = 0; - virtual void fn_38(void) = 0; - virtual void fn_39(void) = 0; - virtual void fn_40(void) = 0; - virtual void fn_41(void) = 0; - virtual void fn_42(void) = 0; - virtual void fn_43(void) = 0; - virtual void fn_44(void) = 0; - virtual void fn_45(void) = 0; - virtual void fn_46(void) = 0; - virtual void fn_47(void) = 0; - virtual void fn_48(void) = 0; - virtual IEntitySystem* GetIEntitySystem() = 0; - virtual void fn_50(void) = 0; - virtual void fn_51(void) = 0; - virtual void fn_52(void) = 0; - virtual void fn_53(void) = 0; - virtual void fn_54(void) = 0; - virtual void fn_55(void) = 0; - virtual void fn_56(void) = 0; - virtual void fn_57(void) = 0; - virtual void fn_58(void) = 0; - virtual void fn_59(void) = 0; - virtual void fn_60(void) = 0; - virtual void fn_61(void) = 0; - virtual void fn_62(void) = 0; - virtual void fn_63(void) = 0; - virtual void fn_64(void) = 0; - virtual void fn_65(void) = 0; - virtual PVOID GetHWND() = 0; - virtual PVOID GetActiveHWND() = 0; - virtual void fn_66(void) = 0; - virtual IRenderer* GetIRenderer() = 0; -}; - -static inline bool HProjectToScreen(IRenderer* pIRenderer, float sx, float sy, float sz, float* ox, float* oy, float* oz) -{ - return pIRenderer->ProjectToScreen(sx, sy, sz, ox, oy, oz); -} - -static inline bool WorldToScreen(SSystemGlobalEnvironment* globalEnv, Vec3 vEntPos, Vec3 &vOut) -{ - IRenderer* Renderer = globalEnv->pRenderer; - HProjectToScreen(Renderer, vEntPos.x, vEntPos.y, vEntPos.z, - &vOut.x, &vOut.y, &vOut.z); - - vOut.x *= (Renderer->GetWidth() / 100.0f); - vOut.y *= (Renderer->GetHeight() / 100.0f); - vOut.z *= 1.0f; - - return ((vOut.z < 1.0f) && (vOut.x > 0) && (vOut.x < (float)Renderer->GetWidth()) && (vOut.y > 0) && (vOut.y < (float)Renderer->GetHeight())); -} - - -struct HuntCtx { - IEntitySystem ** ppEntSys; - SSystemGlobalEnvironment ** ppGlobalEnv; - IGameFramework ** ppCCryAction; -};
\ No newline at end of file diff --git a/TestDLL/TestDLL.vcxproj b/TestDLL/TestDLL.vcxproj index 107db70..46597ab 100644 --- a/TestDLL/TestDLL.vcxproj +++ b/TestDLL/TestDLL.vcxproj @@ -31,6 +31,7 @@ <UseDebugLibraries>true</UseDebugLibraries> <PlatformToolset>v141</PlatformToolset> <CharacterSet>Unicode</CharacterSet> + <SpectreMitigation>false</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>DynamicLibrary</ConfigurationType> @@ -38,6 +39,7 @@ <PlatformToolset>v141</PlatformToolset> <WholeProgramOptimization>true</WholeProgramOptimization> <CharacterSet>Unicode</CharacterSet> + <SpectreMitigation>false</SpectreMitigation> </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <ConfigurationType>DynamicLibrary</ConfigurationType> @@ -95,13 +97,13 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <BufferSecurityCheck>false</BufferSecurityCheck> <BasicRuntimeChecks>Default</BasicRuntimeChecks> - <AdditionalIncludeDirectories>$(SolutionDir)..\GdiRadar\GdiRadarLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>$(SolutionDir)..\GdiRadar\x64\Debug;$(VCToolsInstallDir)lib\x64;$(OutputPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>kernel32.lib;user32.lib;GdiRadarLib.lib</AdditionalDependencies> + <AdditionalLibraryDirectories>$(VCToolsInstallDir)lib\x64;$(OutputPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>kernel32.lib;user32.lib</AdditionalDependencies> <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> <EntryPointSymbol>LibEntry</EntryPointSymbol> </Link> @@ -111,9 +113,10 @@ <PrecompiledHeader>Use</PrecompiledHeader> <WarningLevel>Level3</WarningLevel> <Optimization>Disabled</Optimization> - <SDLCheck>true</SDLCheck> + <SDLCheck>false</SDLCheck> <PreprocessorDefinitions>WIN32;_DEBUG;TESTDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> + <BufferSecurityCheck>false</BufferSecurityCheck> </ClCompile> <Link> <SubSystem>Windows</SubSystem> @@ -127,9 +130,10 @@ <Optimization>MaxSpeed</Optimization> <FunctionLevelLinking>true</FunctionLevelLinking> <IntrinsicFunctions>true</IntrinsicFunctions> - <SDLCheck>true</SDLCheck> + <SDLCheck>false</SDLCheck> <PreprocessorDefinitions>WIN32;NDEBUG;TESTDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> + <BufferSecurityCheck>false</BufferSecurityCheck> </ClCompile> <Link> <SubSystem>Windows</SubSystem> @@ -151,21 +155,20 @@ <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <BufferSecurityCheck>false</BufferSecurityCheck> <DisableSpecificWarnings>%(DisableSpecificWarnings)</DisableSpecificWarnings> - <AdditionalIncludeDirectories>$(SolutionDir)..\GdiRadar\GdiRadarLib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <SubSystem>Windows</SubSystem> <EnableCOMDATFolding>true</EnableCOMDATFolding> <OptimizeReferences>true</OptimizeReferences> <GenerateDebugInformation>true</GenerateDebugInformation> - <AdditionalLibraryDirectories>$(SolutionDir)..\GdiRadar\x64\Release-Verbose;$(VCToolsInstallDir)lib\x64;$(OutputPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> - <AdditionalDependencies>kernel32.lib;user32.lib;GdiRadarLib.lib</AdditionalDependencies> + <AdditionalLibraryDirectories>$(VCToolsInstallDir)lib\x64;$(OutputPath);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <AdditionalDependencies>kernel32.lib;user32.lib</AdditionalDependencies> <IgnoreAllDefaultLibraries>false</IgnoreAllDefaultLibraries> <EntryPointSymbol>LibEntry</EntryPointSymbol> </Link> </ItemDefinitionGroup> <ItemGroup> - <ClInclude Include="HuntClasses.h" /> <ClInclude Include="stdafx.h" /> <ClInclude Include="targetver.h" /> </ItemGroup> diff --git a/TestDLL/TestDLL.vcxproj.filters b/TestDLL/TestDLL.vcxproj.filters index 7ebfcff..a11e11a 100644 --- a/TestDLL/TestDLL.vcxproj.filters +++ b/TestDLL/TestDLL.vcxproj.filters @@ -21,9 +21,6 @@ <ClInclude Include="targetver.h"> <Filter>Header Files</Filter> </ClInclude> - <ClInclude Include="HuntClasses.h"> - <Filter>Header Files</Filter> - </ClInclude> </ItemGroup> <ItemGroup> <ClCompile Include="stdafx.cpp"> diff --git a/TestDLL/dllmain.cpp b/TestDLL/dllmain.cpp index 63d810f..691c389 100644 --- a/TestDLL/dllmain.cpp +++ b/TestDLL/dllmain.cpp @@ -1,222 +1,39 @@ #include "stdafx.h" -#include "HuntClasses.h" #include <vector> #include <string> #include <sstream> #include <array> -#include <GdiRadar.h> #include <Windows.h> EXTERN_C BOOL WINAPI _CRT_INIT(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved); -static gdi_radar_context * ctx = NULL; -static UINT64 pEntSys = 0x0; -static IEntitySystem * iEnt = NULL; - - #define SHOW_WARNING(format, ...) \ do { char errbuf[128]; \ snprintf(errbuf, sizeof errbuf, "WARNING: " # format, __VA_ARGS__); \ MessageBoxA(NULL, errbuf, "Hunted WARNING", MB_OK | MB_ICONINFORMATION); \ } while (0); -static bool ConfigureAndInitGDI(void) -{ - SetWindowTextA(GetConsoleWindow(), "Hunted"); - - gdi_radar_config cfg = {}; - cfg.className = L"HR"; - cfg.windowName = L"HRWND"; - cfg.minimumUpdateTime = 0.20f; - cfg.maximumRedrawFails = 5; - cfg.reservedEntities = 16; - cfg.drawAngles = true; - - printf("Configure.\n"); - ctx = gdi_radar_configure(&cfg, gdi_radar_get_fake_hinstance()); - if (!ctx) - { - printf("Configure failed.\n"); - return false; - } - - gdi_radar_set_game_dimensions(ctx, 1020.0f, 1020.0f); - - if (!gdi_radar_init(ctx)) - { - printf("Init failed.\n"); - return false; - } - - return true; -} - -static bool InitAndCheckPtr(struct HuntCtx * HuntCtx) -{ - pEntSys = *(UINT64*)(HuntCtx->ppEntSys); - iEnt = *HuntCtx->ppEntSys; - - if (iEnt->GetNumEntities() > 65535) { - SHOW_WARNING("Invalid number of Entities : VALUE[%u] > 65535\n", - iEnt->GetNumEntities()); - return false; - } - if ((PVOID)(*(UINT64*)(pEntSys + PENTITYSYSTEM_ISYSTEM_OFFSET)) != iEnt->GetSystem()) { - SHOW_WARNING("ISystem interface instance not equal : MEMBER[%p] != GETSYSTEM[%p]\n", - (PVOID)(*(UINT64*)(pEntSys + PENTITYSYSTEM_ISYSTEM_OFFSET)), iEnt->GetSystem()); - return false; - } - if (iEnt->GetSystem()->GetLogicalCPUCount() < 1 || - iEnt->GetSystem()->GetLogicalCPUCount() > 32) - { - SHOW_WARNING("GetLogicalCPUCount returned an invalid value: %u", - iEnt->GetSystem()->GetLogicalCPUCount()); - return false; - } - if (iEnt->GetSystem()->IsQuitting() || - iEnt->GetSystem()->IsRelaunch()) - { - SHOW_WARNING("IsQuitting/IsRelaunch returned invalid values: %u/%u", - iEnt->GetSystem()->IsQuitting(), iEnt->GetSystem()->IsRelaunch()); - return false; - } - if (iEnt->GetSystem()->GetHWND() > (PVOID)((ULONG_PTR)0xFFFFFFFF)) - { - SHOW_WARNING("GetHWND returned an invalid window handle: %p", - iEnt->GetSystem()->GetHWND()); - return false; - } - if ((PVOID)pEntSys != iEnt->GetSystem()->GetIEntitySystem()) { - SHOW_WARNING("IEntitySystem interface instance not equal: GLOBAL[%p] != GETENTITYSYSTEM[%p]\n", - (PVOID)pEntSys, iEnt->GetSystem()->GetIEntitySystem()); - return false; - } - if ((PVOID)pEntSys != iEnt->GetSystem()->GetGlobalEnvironment()->pEntitySystem) { - SHOW_WARNING("IEntitySystem interface instance not equal: GLOBAL[%p] != pEntitySystem[%p]\n", - (PVOID)pEntSys, iEnt->GetSystem()->GetGlobalEnvironment()->pEntitySystem); - return false; - } - if (*HuntCtx->ppGlobalEnv != iEnt->GetSystem()->GetGlobalEnvironment()) { - SHOW_WARNING("GlobalEnvironment signature not equals GetGlobalEnvironment() instance: ppGlobalEnv[%p] != GetGlobalEnvironment[%p]\n", - (PVOID)pEntSys, iEnt->GetSystem()->GetGlobalEnvironment()->pEntitySystem); - return false; - } - if ((*HuntCtx->ppCCryAction)->GetIActorSystem() != iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetIActorSystem()) { - SHOW_WARNING("CCryAction->GetIActorSystem() signature not equals GameFramework->GetIActorSystem() instance: ppCCryAction[%p] != pGameFramework[%p]\n", - (*HuntCtx->ppCCryAction)->GetIActorSystem(), iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetIActorSystem()); - return false; - } - if (iEnt->GetSystem() != iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetISystem()) { - SHOW_WARNING("ISystem interface instance not equal: IEntitySystem[%p] != pGameFramework[%p]\n", - iEnt->GetSystem(), iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->GetISystem()); - return false; - } - if (iEnt->GetSystem() != iEnt->GetSystem()->GetGlobalEnvironment()->pSystem) { - SHOW_WARNING("ISystem interface instance not equal: IEntitySystem[%p] != pSystem[%p]\n", - iEnt->GetSystem(), iEnt->GetSystem()->GetGlobalEnvironment()->pSystem); - return false; - } - if (iEnt->GetSystem()->GetGlobalEnvironment()->pRenderer != iEnt->GetSystem()->GetIRenderer()) { - SHOW_WARNING("ISystem interface instance not equal: IEntitySystem[%p] != pSystem[%p]\n", - iEnt->GetSystem(), iEnt->GetSystem()->GetGlobalEnvironment()->pSystem); - return false; - } - - return true; -} -void APIENTRY LibEntry(struct HuntCtx * HuntCtx) +/* function signature depends on used shellcode */ +void APIENTRY LibEntry(/* void * arg */) { static bool firstEntry = true; - if (!HuntCtx || !HuntCtx->ppEntSys || !HuntCtx->ppGlobalEnv || !HuntCtx->ppCCryAction) - return; - if (firstEntry) { firstEntry = false; HINSTANCE addr = GetModuleHandle(NULL); _CRT_INIT(addr, DLL_PROCESS_ATTACH, NULL); - if (!InitAndCheckPtr(HuntCtx)) - { - return; - } - AllocConsole(); FILE * conout = NULL; freopen_s(&conout, "CONOUT$", "w", stdout); printf("Welcome.\n"); - printf("[thread id: %d][used memory: %u][cpu flags: %u][user name: %s][cpu count: %d]\n", - GetCurrentThreadId(), - iEnt->GetSystem()->GetUsedMemory(), - iEnt->GetSystem()->GetCPUFlags(), - iEnt->GetSystem()->GetUserName(), - iEnt->GetSystem()->GetLogicalCPUCount()); - - if (!ConfigureAndInitGDI()) { - return; - } - } - - if (!iEnt || iEnt->GetSystem()->GetGlobalEnvironment()->pGameFramework->IsInLevelLoad()) { - return; - } - if (!gdi_radar_check_if_redraw_necessary(ctx)) { - return; - } - - gdi_radar_clear_entities(ctx); - - SIZE_T i = 1; - IEntityItPtr pEntIt = iEnt->GetEntityIterator(); - while (IEntity* pEnt = pEntIt->Next()) { - if (!pEnt->IsInitialized() || pEnt->IsGarbage()) { - continue; - } - const char *name = pEnt->GetName(); - if (strlen(name) < 4) { - continue; - } - if (name[0] != 'H' || name[1] != 'u' || name[2] != 'n' || name[3] != 't') { - continue; - } - - enum entity_color entCol = entity_color::EC_RED; - if (pEnt->GetFlags() & ENTITY_FLAG_LOCAL_PLAYER) { - entCol = entity_color::EC_BLUE; - } - - Vec3 entPos = pEnt->GetPos(); - entPos.x -= 520.0f; - entPos.y -= 520.0f; - entPos.y = 1020.0f - entPos.y; - float entAngle = pEnt->GetWorldAngles().z; - entAngle *= -1.0f; /* inverse */ - entAngle -= 1.5707963267948966192313216916398f; /* pi/2 == 90deg */ - struct entity radar_entity{ - (int)entPos.x, (int)entPos.y, entAngle, - (entCol == entity_color::EC_BLUE ? 60 : 0), - entCol, "test" - }; - gdi_radar_add_entity(ctx, &radar_entity); - - i++; - } - - static UINT64 redraw_retry = 0; - if (!gdi_radar_redraw_if_necessary(ctx) && - ((++redraw_retry) % 250 == 0)) - { - printf("Reint (redraw failed).\n"); - gdi_radar_close_and_cleanup(&ctx); - ConfigureAndInitGDI(); - return; } - gdi_radar_process_window_events_nonblocking(ctx); + /* ... */ }
\ No newline at end of file |