void GetApi() {
MyLoadLibraryExA
=
(MYLoadLibraryExA)MyGetProcAddress(gKernelBase,
"LoadLibraryExA"
);
MyVirtualProtect
=
(MYVirtualProtect)MyGetProcAddress(gKernelBase,
"VirtualProtect"
);
gUser32Base
=
MyLoadLibraryExA(
"User32.dll"
, NULL, NULL);
MyMessageBoxA
=
(MYMessageBoxA) MyGetProcAddress(gUser32Base,
"MessageBoxA"
);
MyVirtualAlloc
=
(MYVirtualAlloc)MyGetProcAddress(gKernelBase,
"VirtualAlloc"
);
HMODULE hVcruntime
=
MyLoadLibraryExA(
"vcruntime140.dll"
, NULL, NULL);
Myatexit
=
(MYatexit)MyGetProcAddress(hVcruntime,
"atexit"
);
Mymemcpy
=
(MYmemcpy)MyGetProcAddress(hVcruntime,
"memcpy"
);
MyRegisterClassA
=
(MYRegisterClassA)MyGetProcAddress(gUser32Base,
"RegisterClassA"
);
MyCreateWindowExA
=
(MYCreateWindowExA)MyGetProcAddress(gUser32Base,
"CreateWindowExA"
);
MyGetModuleHandleA
=
(MYGetModuleHandleA)MyGetProcAddress(gKernelBase,
"GetModuleHandleA"
);
MyShowWindow
=
(MYShowWindow)MyGetProcAddress(gUser32Base,
"ShowWindow"
);
MyUpdateWindow
=
(MYUpdateWindow)MyGetProcAddress(gUser32Base,
"UpdateWindow"
);
MyGetMessageA
=
(MYGetMessageA)MyGetProcAddress(gUser32Base,
"GetMessageA"
);
MyTranslateMessage
=
(MYTranslateMessage)MyGetProcAddress(gUser32Base,
"TranslateMessage"
);
MyDispatchMessageA
=
(MYDispatchMessageA)MyGetProcAddress(gUser32Base,
"DispatchMessageA"
);
MyDefWindowProcA
=
(MYDefWindowProcA)MyGetProcAddress(gUser32Base,
"DefWindowProcA"
);
MyPostQuitMessage
=
(MYPostQuitMessage)MyGetProcAddress(gUser32Base,
"PostQuitMessage"
);
MyGetClientRect
=
(MYGetClientRect)MyGetProcAddress(gUser32Base,
"GetClientRect"
);
MyGetWindowTextA
=
(MYGetWindowTextA)MyGetProcAddress(gUser32Base,
"GetWindowTextA"
);
MyGetDlgItem
=
(MYGetDlgItem)MyGetProcAddress(gUser32Base,
"GetDlgItem"
);
Mymemcmp
=
(MYmemcmp)MyGetProcAddress(hVcruntime,
"memcmp"
);
MyExitProcess
=
(MYExitProcess)MyGetProcAddress(gKernelBase,
"ExitProcess"
);
MySendMessageA
=
(MYSendMessageA)MyGetProcAddress(gUser32Base,
"SendMessageA"
);
MyCreateThread
=
(MYCreateThread)MyGetProcAddress(gKernelBase,
"CreateThread"
);
MyGetThreadContext
=
(MYGetThreadContext)MyGetProcAddress(gKernelBase,
"GetThreadContext"
);
MyGetCurrentThread
=
(MYGetCurrentThread)MyGetProcAddress(gKernelBase,
"GetCurrentThread"
);
MyTerminateThread
=
(MYTerminateThread)MyGetProcAddress(gKernelBase,
"TerminateThread"
);
HMODULE hKernel32
=
MyLoadLibraryExA(
"Kernel32.dll"
, NULL, NULL);
HMODULE hNtdll
=
MyLoadLibraryExA(
"ntdll.dll"
, NULL, NULL);
MYCreateToolhelp32Snapshot MyCreateToolhelp32Snapshot
=
(MYCreateToolhelp32Snapshot)MyGetProcAddress(hKernel32,
"CreateToolhelp32Snapshot"
);
MyThread32First
=
(MYThread32First)MyGetProcAddress(hKernel32,
"Thread32First"
);
MyThread32Next
=
(MYThread32Next)MyGetProcAddress(hKernel32,
"Thread32Next"
);
MyOpenThread
=
(MYOpenThread)MyGetProcAddress(hKernel32,
"OpenThread"
);
MyNtQueryInformationThread
=
(MYNtQueryInformationThread)MyGetProcAddress(hNtdll,
"NtQueryInformationThread"
);
MyIsDebuggerPresent
=
(MYIsDebuggerPresent)MyGetProcAddress(hKernel32,
"IsDebuggerPresent"
);
}