#include "stdafx.h"
#include "Vcruntime140d.h"
HMODULE g_hVcruntime140d;
BOOL (WINAPI *Vcruntime140d_DllEntryPoint)(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved);
void* __stdcall Vcruntime140d_RVA(DWORD rvaAddr)
{
if(rvaAddr==0)
return g_hVcruntime140d;
if(rvaAddr >= 0x1000 && rvaAddr < 0x16000)
return &Vcruntime140d_text[rvaAddr - 0x1000];
if(rvaAddr >= 0x16000 && rvaAddr < 0x17000)
return &Vcruntime140d_data[rvaAddr - 0x16000];
if(rvaAddr >= 0x17000 && rvaAddr < 0x18000)
return &Vcruntime140d_idata[rvaAddr - 0x17000];
return NULL;
}
BOOL Vcruntime140d_Init()
{
HMODULE hDll;
DWORD oldProtect;
void (*fInitData)(void*);
g_hVcruntime140d = GetModuleHandle(0);
oldProtect = PAGE_EXECUTE_READWRITE;
VirtualProtect(Vcruntime140d_text,sizeof(Vcruntime140d_text),PAGE_EXECUTE_READWRITE,&oldProtect);
hDll = ::LoadLibraryA("ucrtbased.dll");
if(!hDll)
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1707C) = ::GetProcAddress(hDll,"_free_dbg");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1707C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17080) = ::GetProcAddress(hDll,"atol");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17080))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17084) = ::GetProcAddress(hDll,"__stdio_common_vsprintf_s");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17084))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17088) = ::GetProcAddress(hDll,"wcsncmp");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17088))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1708C) = ::GetProcAddress(hDll,"abort");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1708C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17090) = ::GetProcAddress(hDll,"_calloc_dbg");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17090))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17094) = ::GetProcAddress(hDll,"_malloc_dbg");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17094))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17098) = ::GetProcAddress(hDll,"_CrtDbgReport");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17098))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1709C) = ::GetProcAddress(hDll,"strlen");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1709C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x170A0) = ::GetProcAddress(hDll,"strcpy_s");
if(!*(FARPROC*)Vcruntime140d_RVA(0x170A0))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x170A4) = ::GetProcAddress(hDll,"malloc");
if(!*(FARPROC*)Vcruntime140d_RVA(0x170A4))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x170A8) = ::GetProcAddress(hDll,"free");
if(!*(FARPROC*)Vcruntime140d_RVA(0x170A8))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x170AC) = ::GetProcAddress(hDll,"strcmp");
if(!*(FARPROC*)Vcruntime140d_RVA(0x170AC))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x170B0) = ::GetProcAddress(hDll,"terminate");
if(!*(FARPROC*)Vcruntime140d_RVA(0x170B0))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x170B4) = ::GetProcAddress(hDll,"_CrtDbgReportW");
if(!*(FARPROC*)Vcruntime140d_RVA(0x170B4))
return FALSE;
hDll = ::LoadLibraryA("KERNEL32.dll");
if(!hDll)
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17000) = ::GetProcAddress(hDll,"LeaveCriticalSection");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17000))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17004) = ::GetProcAddress(hDll,"TerminateProcess");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17004))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17008) = ::GetProcAddress(hDll,"GetCurrentProcess");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17008))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1700C) = ::GetProcAddress(hDll,"SetUnhandledExceptionFilter");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1700C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17010) = ::GetProcAddress(hDll,"UnhandledExceptionFilter");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17010))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17014) = ::GetProcAddress(hDll,"GetSystemTimeAsFileTime");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17014))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17018) = ::GetProcAddress(hDll,"GetCurrentThreadId");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17018))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1701C) = ::GetProcAddress(hDll,"GetCurrentProcessId");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1701C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17020) = ::GetProcAddress(hDll,"QueryPerformanceCounter");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17020))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17024) = ::GetProcAddress(hDll,"IsProcessorFeaturePresent");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17024))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17028) = ::GetProcAddress(hDll,"GetModuleHandleW");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17028))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1702C) = ::GetProcAddress(hDll,"GetModuleFileNameW");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1702C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17030) = ::GetProcAddress(hDll,"LoadLibraryExW");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17030))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17034) = ::GetProcAddress(hDll,"GetProcAddress");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17034))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17038) = ::GetProcAddress(hDll,"FreeLibrary");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17038))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1703C) = ::GetProcAddress(hDll,"TlsFree");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1703C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17040) = ::GetProcAddress(hDll,"TlsSetValue");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17040))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17044) = ::GetProcAddress(hDll,"RtlUnwind");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17044))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17048) = ::GetProcAddress(hDll,"VirtualQuery");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17048))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1704C) = ::GetProcAddress(hDll,"EncodePointer");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1704C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17050) = ::GetProcAddress(hDll,"InterlockedPushEntrySList");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17050))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17054) = ::GetProcAddress(hDll,"InterlockedFlushSList");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17054))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17058) = ::GetProcAddress(hDll,"RaiseException");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17058))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1705C) = ::GetProcAddress(hDll,"EnterCriticalSection");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1705C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17060) = ::GetProcAddress(hDll,"TlsAlloc");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17060))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17064) = ::GetProcAddress(hDll,"DeleteCriticalSection");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17064))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17068) = ::GetProcAddress(hDll,"GetLastError");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17068))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x1706C) = ::GetProcAddress(hDll,"SetLastError");
if(!*(FARPROC*)Vcruntime140d_RVA(0x1706C))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17070) = ::GetProcAddress(hDll,"InitializeCriticalSectionAndSpinCount");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17070))
return FALSE;
*(FARPROC*)Vcruntime140d_RVA(0x17074) = ::GetProcAddress(hDll,"TlsGetValue");
if(!*(FARPROC*)Vcruntime140d_RVA(0x17074))
return FALSE;
*(FARPROC*)&fInitData = (FARPROC)&Vcruntime140d_InitData[0];
fInitData(Vcruntime140d_RVA);
VirtualProtect(Vcruntime140d_text,sizeof(Vcruntime140d_text),oldProtect,NULL);
*(FARPROC*)&Vcruntime140d_DllEntryPoint = (FARPROC)Vcruntime140d_RVA(0x14930);
return TRUE;
}
BOOL Vcruntime140d_LoadLibrary()
{
return Vcruntime140d_DllEntryPoint(g_hVcruntime140d, DLL_PROCESS_ATTACH, 0);
}
BOOL Vcruntime140d_FreeLibrary()
{
return Vcruntime140d_DllEntryPoint(g_hVcruntime140d, DLL_PROCESS_DETACH, 0);
}
FARPROC Vcruntime140d_GetProcAddress(LPCSTR lpProcName)
{
if(lstrcmpA(lpProcName,"_CreateFrameInfo")==0)
return (FARPROC)Vcruntime140d_RVA(0x14660);
if(lstrcmpA(lpProcName,"_CxxThrowException")==0)
return (FARPROC)Vcruntime140d_RVA(0x9280);
if(lstrcmpA(lpProcName,"_EH_prolog")==0)
return (FARPROC)Vcruntime140d_RVA(0x15110);
if(lstrcmpA(lpProcName,"_FindAndUnlinkFrame")==0)
return (FARPROC)Vcruntime140d_RVA(0x14690);
if(lstrcmpA(lpProcName,"_IsExceptionObjectToBeDestroyed")==0)
return (FARPROC)Vcruntime140d_RVA(0x62C0);
if(lstrcmpA(lpProcName,"_NLG_Dispatch2")==0)
return (FARPROC)Vcruntime140d_RVA(0x3133);
if(lstrcmpA(lpProcName,"_NLG_Return")==0)
return (FARPROC)Vcruntime140d_RVA(0x45C7);
if(lstrcmpA(lpProcName,"_NLG_Return2")==0)
return (FARPROC)Vcruntime140d_RVA(0x313D);
if(lstrcmpA(lpProcName,"_SetWinRTOutOfMemoryExceptionCallback")==0)
return (FARPROC)Vcruntime140d_RVA(0x6300);
if(lstrcmpA(lpProcName,"__AdjustPointer")==0)
return (FARPROC)Vcruntime140d_RVA(0x6310);
if(lstrcmpA(lpProcName,"__BuildCatchObject")==0)
return (FARPROC)Vcruntime140d_RVA(0x7390);
if(lstrcmpA(lpProcName,"__BuildCatchObjectHelper")==0)
return (FARPROC)Vcruntime140d_RVA(0x74A0);
if(lstrcmpA(lpProcName,"__CxxDetectRethrow")==0)
return (FARPROC)Vcruntime140d_RVA(0x7BF0);
if(lstrcmpA(lpProcName,"__CxxExceptionFilter")==0)
return (FARPROC)Vcruntime140d_RVA(0x7C70);
if(lstrcmpA(lpProcName,"__CxxFrameHandler")==0)
return (FARPROC)Vcruntime140d_RVA(0x147B0);
if(lstrcmpA(lpProcName,"__CxxFrameHandler2")==0)
return (FARPROC)Vcruntime140d_RVA(0x147B0);
if(lstrcmpA(lpProcName,"__CxxFrameHandler3")==0)
return (FARPROC)Vcruntime140d_RVA(0x147B0);
if(lstrcmpA(lpProcName,"__CxxLongjmpUnwind")==0)
return (FARPROC)Vcruntime140d_RVA(0x147F0);
if(lstrcmpA(lpProcName,"__CxxQueryExceptionSize")==0)
return (FARPROC)Vcruntime140d_RVA(0x7E60);
if(lstrcmpA(lpProcName,"__CxxRegisterExceptionObject")==0)
return (FARPROC)Vcruntime140d_RVA(0x7E70);
if(lstrcmpA(lpProcName,"__CxxUnregisterExceptionObject")==0)
return (FARPROC)Vcruntime140d_RVA(0x7F90);
if(lstrcmpA(lpProcName,"__DestructExceptionObject")==0)
return (FARPROC)Vcruntime140d_RVA(0x6150);
if(lstrcmpA(lpProcName,"__FrameUnwindFilter")==0)
return (FARPROC)Vcruntime140d_RVA(0x6360);
if(lstrcmpA(lpProcName,"__GetPlatformExceptionInfo")==0)
return (FARPROC)Vcruntime140d_RVA(0x63E0);
if(lstrcmpA(lpProcName,"__RTCastToVoid")==0)
return (FARPROC)Vcruntime140d_RVA(0x88D0);
if(lstrcmpA(lpProcName,"__RTDynamicCast")==0)
return (FARPROC)Vcruntime140d_RVA(0x89A0);
if(lstrcmpA(lpProcName,"__RTtypeid")==0)
return (FARPROC)Vcruntime140d_RVA(0x8B70);
if(lstrcmpA(lpProcName,"__TypeMatch")==0)
return (FARPROC)Vcruntime140d_RVA(0x7B00);
if(lstrcmpA(lpProcName,"__current_exception")==0)
return (FARPROC)Vcruntime140d_RVA(0x6460);
if(lstrcmpA(lpProcName,"__current_exception_context")==0)
return (FARPROC)Vcruntime140d_RVA(0x6470);
if(lstrcmpA(lpProcName,"__intrinsic_setjmp")==0)
return (FARPROC)Vcruntime140d_RVA(0x2F30);
if(lstrcmpA(lpProcName,"__processing_throw")==0)
return (FARPROC)Vcruntime140d_RVA(0x6480);
if(lstrcmpA(lpProcName,"__report_gsfailure")==0)
return (FARPROC)Vcruntime140d_RVA(0x15160);
if(lstrcmpA(lpProcName,"__std_exception_copy")==0)
return (FARPROC)Vcruntime140d_RVA(0x8DB0);
if(lstrcmpA(lpProcName,"__std_exception_destroy")==0)
return (FARPROC)Vcruntime140d_RVA(0x8EA0);
if(lstrcmpA(lpProcName,"__std_terminate")==0)
return (FARPROC)Vcruntime140d_RVA(0x6490);
if(lstrcmpA(lpProcName,"__std_type_info_compare")==0)
return (FARPROC)Vcruntime140d_RVA(0x8FD0);
if(lstrcmpA(lpProcName,"__std_type_info_destroy_list")==0)
return (FARPROC)Vcruntime140d_RVA(0x9000);
if(lstrcmpA(lpProcName,"__std_type_info_hash")==0)
return (FARPROC)Vcruntime140d_RVA(0x9040);
if(lstrcmpA(lpProcName,"__std_type_info_name")==0)
return (FARPROC)Vcruntime140d_RVA(0x90A0);
if(lstrcmpA(lpProcName,"__telemetry_main_invoke_trigger")==0)
return (FARPROC)Vcruntime140d_RVA(0x9540);
if(lstrcmpA(lpProcName,"__telemetry_main_return_trigger")==0)
return (FARPROC)Vcruntime140d_RVA(0x9540);
if(lstrcmpA(lpProcName,"__unDName")==0)
return (FARPROC)Vcruntime140d_RVA(0x141B0);
if(lstrcmpA(lpProcName,"__unDNameEx")==0)
return (FARPROC)Vcruntime140d_RVA(0x141E0);
if(lstrcmpA(lpProcName,"__uncaught_exception")==0)
return (FARPROC)Vcruntime140d_RVA(0x9330);
if(lstrcmpA(lpProcName,"__uncaught_exceptions")==0)
return (FARPROC)Vcruntime140d_RVA(0x9380);
if(lstrcmpA(lpProcName,"__vcrt_GetModuleFileNameW")==0)
return (FARPROC)Vcruntime140d_RVA(0xA090);
if(lstrcmpA(lpProcName,"__vcrt_GetModuleHandleW")==0)
return (FARPROC)Vcruntime140d_RVA(0xA0B0);
if(lstrcmpA(lpProcName,"__vcrt_InitializeCriticalSectionEx")==0)
return (FARPROC)Vcruntime140d_RVA(0x9F70);
if(lstrcmpA(lpProcName,"__vcrt_LoadLibraryExW")==0)
return (FARPROC)Vcruntime140d_RVA(0xA0C0);
if(lstrcmpA(lpProcName,"_chkesp")==0)
return (FARPROC)Vcruntime140d_RVA(0x33E0);
if(lstrcmpA(lpProcName,"_except_handler2")==0)
return (FARPROC)Vcruntime140d_RVA(0x2AF8);
if(lstrcmpA(lpProcName,"_except_handler3")==0)
return (FARPROC)Vcruntime140d_RVA(0x2BC8);
if(lstrcmpA(lpProcName,"_except_handler4_common")==0)
return (FARPROC)Vcruntime140d_RVA(0x3200);
if(lstrcmpA(lpProcName,"_get_purecall_handler")==0)
return (FARPROC)Vcruntime140d_RVA(0xA0E0);
if(lstrcmpA(lpProcName,"_get_unexpected")==0)
return (FARPROC)Vcruntime140d_RVA(0x93E0);
if(lstrcmpA(lpProcName,"_global_unwind2")==0)
return (FARPROC)Vcruntime140d_RVA(0x3000);
if(lstrcmpA(lpProcName,"_is_exception_typeof")==0)
return (FARPROC)Vcruntime140d_RVA(0x64A0);
if(lstrcmpA(lpProcName,"_local_unwind2")==0)
return (FARPROC)Vcruntime140d_RVA(0x3066);
if(lstrcmpA(lpProcName,"_local_unwind4")==0)
return (FARPROC)Vcruntime140d_RVA(0x2D00);
if(lstrcmpA(lpProcName,"_longjmpex")==0)
return (FARPROC)Vcruntime140d_RVA(0x2FF0);
if(lstrcmpA(lpProcName,"_purecall")==0)
return (FARPROC)Vcruntime140d_RVA(0xA100);
if(lstrcmpA(lpProcName,"_seh_longjmp_unwind4")==0)
return (FARPROC)Vcruntime140d_RVA(0x2DD8);
if(lstrcmpA(lpProcName,"_seh_longjmp_unwind")==0)
return (FARPROC)Vcruntime140d_RVA(0x2CD4);
if(lstrcmpA(lpProcName,"_set_purecall_handler")==0)
return (FARPROC)Vcruntime140d_RVA(0xA130);
if(lstrcmpA(lpProcName,"_set_se_translator")==0)
return (FARPROC)Vcruntime140d_RVA(0x9470);
if(lstrcmpA(lpProcName,"_setjmp3")==0)
return (FARPROC)Vcruntime140d_RVA(0x2F70);
if(lstrcmpA(lpProcName,"longjmp")==0)
return (FARPROC)Vcruntime140d_RVA(0x5950);
if(lstrcmpA(lpProcName,"memchr")==0)
return (FARPROC)Vcruntime140d_RVA(0x45F0);
if(lstrcmpA(lpProcName,"memcmp")==0)
return (FARPROC)Vcruntime140d_RVA(0x3CD0);
if(lstrcmpA(lpProcName,"memcpy")==0)
return (FARPROC)Vcruntime140d_RVA(0x46A0);
if(lstrcmpA(lpProcName,"memmove")==0)
return (FARPROC)Vcruntime140d_RVA(0x4C20);
if(lstrcmpA(lpProcName,"memset")==0)
return (FARPROC)Vcruntime140d_RVA(0x51A0);
if(lstrcmpA(lpProcName,"set_unexpected")==0)
return (FARPROC)Vcruntime140d_RVA(0x9400);
if(lstrcmpA(lpProcName,"strchr")==0)
return (FARPROC)Vcruntime140d_RVA(0x5300);
if(lstrcmpA(lpProcName,"strrchr")==0)
return (FARPROC)Vcruntime140d_RVA(0x5430);
if(lstrcmpA(lpProcName,"strstr")==0)
return (FARPROC)Vcruntime140d_RVA(0x5570);
if(lstrcmpA(lpProcName,"unexpected")==0)
return (FARPROC)Vcruntime140d_RVA(0x9430);
if(lstrcmpA(lpProcName,"wcschr")==0)
return (FARPROC)Vcruntime140d_RVA(0x5980);
if(lstrcmpA(lpProcName,"wcsrchr")==0)
return (FARPROC)Vcruntime140d_RVA(0x5AF0);
if(lstrcmpA(lpProcName,"wcsstr")==0)
return (FARPROC)Vcruntime140d_RVA(0x5C80);
return NULL;
最新发布