mirror of
https://github.com/decompals/wibo.git
synced 2025-10-15 14:45:12 +00:00
613 lines
24 KiB
C++
613 lines
24 KiB
C++
#include "modules.h"
|
|
|
|
#include "kernel32/debugapi.h"
|
|
#include "kernel32/errhandlingapi.h"
|
|
#include "kernel32/fibersapi.h"
|
|
#include "kernel32/fileapi.h"
|
|
#include "kernel32/handleapi.h"
|
|
#include "kernel32/heapapi.h"
|
|
#include "kernel32/interlockedapi.h"
|
|
#include "kernel32/ioapiset.h"
|
|
#include "kernel32/libloaderapi.h"
|
|
#include "kernel32/namedpipeapi.h"
|
|
#include "kernel32/memoryapi.h"
|
|
#include "kernel32/processenv.h"
|
|
#include "kernel32/processthreadsapi.h"
|
|
#include "kernel32/profileapi.h"
|
|
#include "kernel32/stringapiset.h"
|
|
#include "kernel32/synchapi.h"
|
|
#include "kernel32/sysinfoapi.h"
|
|
#include "kernel32/timezoneapi.h"
|
|
#include "kernel32/winbase.h"
|
|
#include "kernel32/wincon.h"
|
|
#include "kernel32/winnls.h"
|
|
#include "kernel32/winnt.h"
|
|
#include "kernel32/wow64apiset.h"
|
|
|
|
namespace {
|
|
|
|
void *resolveByName(const char *name) {
|
|
// errhandlingapi.h
|
|
if (strcmp(name, "GetLastError") == 0)
|
|
return (void *)kernel32::GetLastError;
|
|
if (strcmp(name, "SetLastError") == 0)
|
|
return (void *)kernel32::SetLastError;
|
|
if (strcmp(name, "IsBadReadPtr") == 0)
|
|
return (void *)kernel32::IsBadReadPtr;
|
|
if (strcmp(name, "IsBadWritePtr") == 0)
|
|
return (void *)kernel32::IsBadWritePtr;
|
|
if (strcmp(name, "RaiseException") == 0)
|
|
return (void *)kernel32::RaiseException;
|
|
if (strcmp(name, "AddVectoredExceptionHandler") == 0)
|
|
return (void *)kernel32::AddVectoredExceptionHandler;
|
|
if (strcmp(name, "SetUnhandledExceptionFilter") == 0)
|
|
return (void *)kernel32::SetUnhandledExceptionFilter;
|
|
if (strcmp(name, "UnhandledExceptionFilter") == 0)
|
|
return (void *)kernel32::UnhandledExceptionFilter;
|
|
if (strcmp(name, "SetErrorMode") == 0)
|
|
return (void *)kernel32::SetErrorMode;
|
|
|
|
// processthreadsapi.h
|
|
if (strcmp(name, "IsProcessorFeaturePresent") == 0)
|
|
return (void *)kernel32::IsProcessorFeaturePresent;
|
|
if (strcmp(name, "GetCurrentProcess") == 0)
|
|
return (void *)kernel32::GetCurrentProcess;
|
|
if (strcmp(name, "GetCurrentProcessId") == 0)
|
|
return (void *)kernel32::GetCurrentProcessId;
|
|
if (strcmp(name, "GetCurrentThreadId") == 0)
|
|
return (void *)kernel32::GetCurrentThreadId;
|
|
if (strcmp(name, "ExitProcess") == 0)
|
|
return (void *)kernel32::ExitProcess;
|
|
if (strcmp(name, "TerminateProcess") == 0)
|
|
return (void *)kernel32::TerminateProcess;
|
|
if (strcmp(name, "GetExitCodeProcess") == 0)
|
|
return (void *)kernel32::GetExitCodeProcess;
|
|
if (strcmp(name, "CreateProcessW") == 0)
|
|
return (void *)kernel32::CreateProcessW;
|
|
if (strcmp(name, "CreateProcessA") == 0)
|
|
return (void *)kernel32::CreateProcessA;
|
|
if (strcmp(name, "CreateThread") == 0)
|
|
return (void *)kernel32::CreateThread;
|
|
if (strcmp(name, "ExitThread") == 0)
|
|
return (void *)kernel32::ExitThread;
|
|
if (strcmp(name, "GetExitCodeThread") == 0)
|
|
return (void *)kernel32::GetExitCodeThread;
|
|
if (strcmp(name, "TlsAlloc") == 0)
|
|
return (void *)kernel32::TlsAlloc;
|
|
if (strcmp(name, "TlsFree") == 0)
|
|
return (void *)kernel32::TlsFree;
|
|
if (strcmp(name, "TlsGetValue") == 0)
|
|
return (void *)kernel32::TlsGetValue;
|
|
if (strcmp(name, "TlsSetValue") == 0)
|
|
return (void *)kernel32::TlsSetValue;
|
|
if (strcmp(name, "GetStartupInfoA") == 0)
|
|
return (void *)kernel32::GetStartupInfoA;
|
|
if (strcmp(name, "GetStartupInfoW") == 0)
|
|
return (void *)kernel32::GetStartupInfoW;
|
|
if (strcmp(name, "SetThreadStackGuarantee") == 0)
|
|
return (void *)kernel32::SetThreadStackGuarantee;
|
|
if (strcmp(name, "GetCurrentThread") == 0)
|
|
return (void *)kernel32::GetCurrentThread;
|
|
if (strcmp(name, "GetThreadTimes") == 0)
|
|
return (void *)kernel32::GetThreadTimes;
|
|
if (strcmp(name, "SetThreadDescription") == 0)
|
|
return (void *)kernel32::SetThreadDescription;
|
|
if (strcmp(name, "SetThreadAffinityMask") == 0)
|
|
return (void *)kernel32::SetThreadAffinityMask;
|
|
if (strcmp(name, "ResumeThread") == 0)
|
|
return (void *)kernel32::ResumeThread;
|
|
if (strcmp(name, "SetThreadPriority") == 0)
|
|
return (void *)kernel32::SetThreadPriority;
|
|
if (strcmp(name, "GetThreadPriority") == 0)
|
|
return (void *)kernel32::GetThreadPriority;
|
|
if (strcmp(name, "GetPriorityClass") == 0)
|
|
return (void *)kernel32::GetPriorityClass;
|
|
if (strcmp(name, "GetProcessAffinityMask") == 0)
|
|
return (void *)kernel32::GetProcessAffinityMask;
|
|
if (strcmp(name, "SetProcessAffinityMask") == 0)
|
|
return (void *)kernel32::SetProcessAffinityMask;
|
|
|
|
// winnls.h
|
|
if (strcmp(name, "GetSystemDefaultLangID") == 0)
|
|
return (void *)kernel32::GetSystemDefaultLangID;
|
|
if (strcmp(name, "GetUserDefaultUILanguage") == 0)
|
|
return (void *)kernel32::GetUserDefaultUILanguage;
|
|
if (strcmp(name, "GetACP") == 0)
|
|
return (void *)kernel32::GetACP;
|
|
if (strcmp(name, "GetCPInfo") == 0)
|
|
return (void *)kernel32::GetCPInfo;
|
|
if (strcmp(name, "CompareStringA") == 0)
|
|
return (void *)kernel32::CompareStringA;
|
|
if (strcmp(name, "CompareStringW") == 0)
|
|
return (void *)kernel32::CompareStringW;
|
|
if (strcmp(name, "IsValidLocale") == 0)
|
|
return (void *)kernel32::IsValidLocale;
|
|
if (strcmp(name, "IsValidCodePage") == 0)
|
|
return (void *)kernel32::IsValidCodePage;
|
|
if (strcmp(name, "LCMapStringW") == 0)
|
|
return (void *)kernel32::LCMapStringW;
|
|
if (strcmp(name, "LCMapStringA") == 0)
|
|
return (void *)kernel32::LCMapStringA;
|
|
if (strcmp(name, "GetLocaleInfoA") == 0)
|
|
return (void *)kernel32::GetLocaleInfoA;
|
|
if (strcmp(name, "GetLocaleInfoW") == 0)
|
|
return (void *)kernel32::GetLocaleInfoW;
|
|
if (strcmp(name, "EnumSystemLocalesA") == 0)
|
|
return (void *)kernel32::EnumSystemLocalesA;
|
|
if (strcmp(name, "GetUserDefaultLCID") == 0)
|
|
return (void *)kernel32::GetUserDefaultLCID;
|
|
if (strcmp(name, "IsDBCSLeadByte") == 0)
|
|
return (void *)kernel32::IsDBCSLeadByte;
|
|
if (strcmp(name, "IsDBCSLeadByteEx") == 0)
|
|
return (void *)kernel32::IsDBCSLeadByteEx;
|
|
|
|
// synchapi.h
|
|
if (strcmp(name, "InitializeCriticalSection") == 0)
|
|
return (void *)kernel32::InitializeCriticalSection;
|
|
if (strcmp(name, "InitializeCriticalSectionEx") == 0)
|
|
return (void *)kernel32::InitializeCriticalSectionEx;
|
|
if (strcmp(name, "InitializeCriticalSectionAndSpinCount") == 0)
|
|
return (void *)kernel32::InitializeCriticalSectionAndSpinCount;
|
|
if (strcmp(name, "DeleteCriticalSection") == 0)
|
|
return (void *)kernel32::DeleteCriticalSection;
|
|
if (strcmp(name, "EnterCriticalSection") == 0)
|
|
return (void *)kernel32::EnterCriticalSection;
|
|
if (strcmp(name, "LeaveCriticalSection") == 0)
|
|
return (void *)kernel32::LeaveCriticalSection;
|
|
if (strcmp(name, "InitOnceBeginInitialize") == 0)
|
|
return (void *)kernel32::InitOnceBeginInitialize;
|
|
if (strcmp(name, "InitOnceComplete") == 0)
|
|
return (void *)kernel32::InitOnceComplete;
|
|
if (strcmp(name, "AcquireSRWLockShared") == 0)
|
|
return (void *)kernel32::AcquireSRWLockShared;
|
|
if (strcmp(name, "ReleaseSRWLockShared") == 0)
|
|
return (void *)kernel32::ReleaseSRWLockShared;
|
|
if (strcmp(name, "AcquireSRWLockExclusive") == 0)
|
|
return (void *)kernel32::AcquireSRWLockExclusive;
|
|
if (strcmp(name, "ReleaseSRWLockExclusive") == 0)
|
|
return (void *)kernel32::ReleaseSRWLockExclusive;
|
|
if (strcmp(name, "TryAcquireSRWLockExclusive") == 0)
|
|
return (void *)kernel32::TryAcquireSRWLockExclusive;
|
|
if (strcmp(name, "WaitForSingleObject") == 0)
|
|
return (void *)kernel32::WaitForSingleObject;
|
|
if (strcmp(name, "WaitForMultipleObjects") == 0)
|
|
return (void *)kernel32::WaitForMultipleObjects;
|
|
if (strcmp(name, "CreateMutexA") == 0)
|
|
return (void *)kernel32::CreateMutexA;
|
|
if (strcmp(name, "CreateMutexW") == 0)
|
|
return (void *)kernel32::CreateMutexW;
|
|
if (strcmp(name, "CreateEventA") == 0)
|
|
return (void *)kernel32::CreateEventA;
|
|
if (strcmp(name, "CreateEventW") == 0)
|
|
return (void *)kernel32::CreateEventW;
|
|
if (strcmp(name, "CreateSemaphoreA") == 0)
|
|
return (void *)kernel32::CreateSemaphoreA;
|
|
if (strcmp(name, "CreateSemaphoreW") == 0)
|
|
return (void *)kernel32::CreateSemaphoreW;
|
|
if (strcmp(name, "SetEvent") == 0)
|
|
return (void *)kernel32::SetEvent;
|
|
if (strcmp(name, "ResetEvent") == 0)
|
|
return (void *)kernel32::ResetEvent;
|
|
if (strcmp(name, "ReleaseMutex") == 0)
|
|
return (void *)kernel32::ReleaseMutex;
|
|
if (strcmp(name, "ReleaseSemaphore") == 0)
|
|
return (void *)kernel32::ReleaseSemaphore;
|
|
if (strcmp(name, "Sleep") == 0)
|
|
return (void *)kernel32::Sleep;
|
|
|
|
// namedpipeapi.h
|
|
if (strcmp(name, "CreatePipe") == 0)
|
|
return (void *)kernel32::CreatePipe;
|
|
|
|
// winbase.h
|
|
if (strcmp(name, "FindAtomA") == 0)
|
|
return (void *)kernel32::FindAtomA;
|
|
if (strcmp(name, "FindAtomW") == 0)
|
|
return (void *)kernel32::FindAtomW;
|
|
if (strcmp(name, "AddAtomA") == 0)
|
|
return (void *)kernel32::AddAtomA;
|
|
if (strcmp(name, "AddAtomW") == 0)
|
|
return (void *)kernel32::AddAtomW;
|
|
if (strcmp(name, "GetAtomNameA") == 0)
|
|
return (void *)kernel32::GetAtomNameA;
|
|
if (strcmp(name, "GetAtomNameW") == 0)
|
|
return (void *)kernel32::GetAtomNameW;
|
|
if (strcmp(name, "GlobalAlloc") == 0)
|
|
return (void *)kernel32::GlobalAlloc;
|
|
if (strcmp(name, "GlobalReAlloc") == 0)
|
|
return (void *)kernel32::GlobalReAlloc;
|
|
if (strcmp(name, "GlobalFree") == 0)
|
|
return (void *)kernel32::GlobalFree;
|
|
if (strcmp(name, "GlobalFlags") == 0)
|
|
return (void *)kernel32::GlobalFlags;
|
|
if (strcmp(name, "LocalAlloc") == 0)
|
|
return (void *)kernel32::LocalAlloc;
|
|
if (strcmp(name, "LocalReAlloc") == 0)
|
|
return (void *)kernel32::LocalReAlloc;
|
|
if (strcmp(name, "LocalFree") == 0)
|
|
return (void *)kernel32::LocalFree;
|
|
if (strcmp(name, "LocalHandle") == 0)
|
|
return (void *)kernel32::LocalHandle;
|
|
if (strcmp(name, "LocalLock") == 0)
|
|
return (void *)kernel32::LocalLock;
|
|
if (strcmp(name, "LocalUnlock") == 0)
|
|
return (void *)kernel32::LocalUnlock;
|
|
if (strcmp(name, "LocalSize") == 0)
|
|
return (void *)kernel32::LocalSize;
|
|
if (strcmp(name, "LocalFlags") == 0)
|
|
return (void *)kernel32::LocalFlags;
|
|
if (strcmp(name, "GetSystemDirectoryA") == 0)
|
|
return (void *)kernel32::GetSystemDirectoryA;
|
|
if (strcmp(name, "GetSystemDirectoryW") == 0)
|
|
return (void *)kernel32::GetSystemDirectoryW;
|
|
if (strcmp(name, "GetSystemWow64DirectoryA") == 0)
|
|
return (void *)kernel32::GetSystemWow64DirectoryA;
|
|
if (strcmp(name, "GetSystemWow64DirectoryW") == 0)
|
|
return (void *)kernel32::GetSystemWow64DirectoryW;
|
|
if (strcmp(name, "GetCurrentDirectoryA") == 0)
|
|
return (void *)kernel32::GetCurrentDirectoryA;
|
|
if (strcmp(name, "GetCurrentDirectoryW") == 0)
|
|
return (void *)kernel32::GetCurrentDirectoryW;
|
|
if (strcmp(name, "GetSystemWindowsDirectoryA") == 0)
|
|
return (void *)kernel32::GetSystemWindowsDirectoryA;
|
|
if (strcmp(name, "GetSystemWindowsDirectoryW") == 0)
|
|
return (void *)kernel32::GetSystemWindowsDirectoryW;
|
|
if (strcmp(name, "SetCurrentDirectoryA") == 0)
|
|
return (void *)kernel32::SetCurrentDirectoryA;
|
|
if (strcmp(name, "SetCurrentDirectoryW") == 0)
|
|
return (void *)kernel32::SetCurrentDirectoryW;
|
|
if (strcmp(name, "SetHandleCount") == 0)
|
|
return (void *)kernel32::SetHandleCount;
|
|
if (strcmp(name, "FormatMessageA") == 0)
|
|
return (void *)kernel32::FormatMessageA;
|
|
if (strcmp(name, "GetComputerNameA") == 0)
|
|
return (void *)kernel32::GetComputerNameA;
|
|
if (strcmp(name, "GetComputerNameW") == 0)
|
|
return (void *)kernel32::GetComputerNameW;
|
|
if (strcmp(name, "EncodePointer") == 0)
|
|
return (void *)kernel32::EncodePointer;
|
|
if (strcmp(name, "DecodePointer") == 0)
|
|
return (void *)kernel32::DecodePointer;
|
|
if (strcmp(name, "SetDllDirectoryA") == 0)
|
|
return (void *)kernel32::SetDllDirectoryA;
|
|
if (strcmp(name, "FindActCtxSectionStringA") == 0)
|
|
return (void *)kernel32::FindActCtxSectionStringA;
|
|
if (strcmp(name, "FindActCtxSectionStringW") == 0)
|
|
return (void *)kernel32::FindActCtxSectionStringW;
|
|
if (strcmp(name, "GetLongPathNameA") == 0)
|
|
return (void *)kernel32::GetLongPathNameA;
|
|
if (strcmp(name, "GetLongPathNameW") == 0)
|
|
return (void *)kernel32::GetLongPathNameW;
|
|
if (strcmp(name, "GetDiskFreeSpaceA") == 0)
|
|
return (void *)kernel32::GetDiskFreeSpaceA;
|
|
if (strcmp(name, "GetDiskFreeSpaceW") == 0)
|
|
return (void *)kernel32::GetDiskFreeSpaceW;
|
|
if (strcmp(name, "GetDiskFreeSpaceExA") == 0)
|
|
return (void *)kernel32::GetDiskFreeSpaceExA;
|
|
if (strcmp(name, "GetDiskFreeSpaceExW") == 0)
|
|
return (void *)kernel32::GetDiskFreeSpaceExW;
|
|
|
|
// processenv.h
|
|
if (strcmp(name, "GetCommandLineA") == 0)
|
|
return (void *)kernel32::GetCommandLineA;
|
|
if (strcmp(name, "GetCommandLineW") == 0)
|
|
return (void *)kernel32::GetCommandLineW;
|
|
if (strcmp(name, "GetEnvironmentStrings") == 0)
|
|
return (void *)kernel32::GetEnvironmentStrings;
|
|
if (strcmp(name, "FreeEnvironmentStringsA") == 0)
|
|
return (void *)kernel32::FreeEnvironmentStringsA;
|
|
if (strcmp(name, "GetEnvironmentStringsW") == 0)
|
|
return (void *)kernel32::GetEnvironmentStringsW;
|
|
if (strcmp(name, "FreeEnvironmentStringsW") == 0)
|
|
return (void *)kernel32::FreeEnvironmentStringsW;
|
|
if (strcmp(name, "GetEnvironmentVariableA") == 0)
|
|
return (void *)kernel32::GetEnvironmentVariableA;
|
|
if (strcmp(name, "SetEnvironmentVariableA") == 0)
|
|
return (void *)kernel32::SetEnvironmentVariableA;
|
|
if (strcmp(name, "SetEnvironmentVariableW") == 0)
|
|
return (void *)kernel32::SetEnvironmentVariableW;
|
|
if (strcmp(name, "GetEnvironmentVariableW") == 0)
|
|
return (void *)kernel32::GetEnvironmentVariableW;
|
|
if (strcmp(name, "GetStdHandle") == 0)
|
|
return (void *)kernel32::GetStdHandle;
|
|
if (strcmp(name, "SetStdHandle") == 0)
|
|
return (void *)kernel32::SetStdHandle;
|
|
|
|
// handleapi.h
|
|
if (strcmp(name, "DuplicateHandle") == 0)
|
|
return (void *)kernel32::DuplicateHandle;
|
|
if (strcmp(name, "CloseHandle") == 0)
|
|
return (void *)kernel32::CloseHandle;
|
|
|
|
// wincon.h
|
|
if (strcmp(name, "GetConsoleMode") == 0)
|
|
return (void *)kernel32::GetConsoleMode;
|
|
if (strcmp(name, "SetConsoleMode") == 0)
|
|
return (void *)kernel32::SetConsoleMode;
|
|
if (strcmp(name, "GetConsoleCP") == 0)
|
|
return (void *)kernel32::GetConsoleCP;
|
|
if (strcmp(name, "SetConsoleCtrlHandler") == 0)
|
|
return (void *)kernel32::SetConsoleCtrlHandler;
|
|
if (strcmp(name, "GetConsoleScreenBufferInfo") == 0)
|
|
return (void *)kernel32::GetConsoleScreenBufferInfo;
|
|
if (strcmp(name, "WriteConsoleW") == 0)
|
|
return (void *)kernel32::WriteConsoleW;
|
|
if (strcmp(name, "GetConsoleOutputCP") == 0)
|
|
return (void *)kernel32::GetConsoleOutputCP;
|
|
if (strcmp(name, "GetConsoleTitleA") == 0)
|
|
return (void *)kernel32::GetConsoleTitleA;
|
|
if (strcmp(name, "GetConsoleTitleW") == 0)
|
|
return (void *)kernel32::GetConsoleTitleW;
|
|
if (strcmp(name, "PeekConsoleInputA") == 0)
|
|
return (void *)kernel32::PeekConsoleInputA;
|
|
if (strcmp(name, "ReadConsoleInputA") == 0)
|
|
return (void *)kernel32::ReadConsoleInputA;
|
|
|
|
// fileapi.h
|
|
if (strcmp(name, "GetFullPathNameA") == 0)
|
|
return (void *)kernel32::GetFullPathNameA;
|
|
if (strcmp(name, "GetFullPathNameW") == 0)
|
|
return (void *)kernel32::GetFullPathNameW;
|
|
if (strcmp(name, "GetShortPathNameA") == 0)
|
|
return (void *)kernel32::GetShortPathNameA;
|
|
if (strcmp(name, "GetShortPathNameW") == 0)
|
|
return (void *)kernel32::GetShortPathNameW;
|
|
if (strcmp(name, "FindFirstFileA") == 0)
|
|
return (void *)kernel32::FindFirstFileA;
|
|
if (strcmp(name, "FindFirstFileW") == 0)
|
|
return (void *)kernel32::FindFirstFileW;
|
|
if (strcmp(name, "FindFirstFileExA") == 0)
|
|
return (void *)kernel32::FindFirstFileExA;
|
|
if (strcmp(name, "FindNextFileA") == 0)
|
|
return (void *)kernel32::FindNextFileA;
|
|
if (strcmp(name, "FindNextFileW") == 0)
|
|
return (void *)kernel32::FindNextFileW;
|
|
if (strcmp(name, "FindClose") == 0)
|
|
return (void *)kernel32::FindClose;
|
|
if (strcmp(name, "GetFileAttributesA") == 0)
|
|
return (void *)kernel32::GetFileAttributesA;
|
|
if (strcmp(name, "GetFileAttributesW") == 0)
|
|
return (void *)kernel32::GetFileAttributesW;
|
|
if (strcmp(name, "GetDriveTypeA") == 0)
|
|
return (void *)kernel32::GetDriveTypeA;
|
|
if (strcmp(name, "GetDriveTypeW") == 0)
|
|
return (void *)kernel32::GetDriveTypeW;
|
|
if (strcmp(name, "GetVolumeInformationA") == 0)
|
|
return (void *)kernel32::GetVolumeInformationA;
|
|
if (strcmp(name, "GetVolumeInformationW") == 0)
|
|
return (void *)kernel32::GetVolumeInformationW;
|
|
if (strcmp(name, "CompareFileTime") == 0)
|
|
return (void *)kernel32::CompareFileTime;
|
|
if (strcmp(name, "GetFileAttributesW") == 0)
|
|
return (void *)kernel32::GetFileAttributesW;
|
|
if (strcmp(name, "WriteFile") == 0)
|
|
return (void *)kernel32::WriteFile;
|
|
if (strcmp(name, "FlushFileBuffers") == 0)
|
|
return (void *)kernel32::FlushFileBuffers;
|
|
if (strcmp(name, "ReadFile") == 0)
|
|
return (void *)kernel32::ReadFile;
|
|
if (strcmp(name, "CreateFileA") == 0)
|
|
return (void *)kernel32::CreateFileA;
|
|
if (strcmp(name, "CreateFileW") == 0)
|
|
return (void *)kernel32::CreateFileW;
|
|
if (strcmp(name, "CreateFileMappingA") == 0)
|
|
return (void *)kernel32::CreateFileMappingA;
|
|
if (strcmp(name, "CreateFileMappingW") == 0)
|
|
return (void *)kernel32::CreateFileMappingW;
|
|
if (strcmp(name, "MapViewOfFile") == 0)
|
|
return (void *)kernel32::MapViewOfFile;
|
|
if (strcmp(name, "MapViewOfFileEx") == 0)
|
|
return (void *)kernel32::MapViewOfFileEx;
|
|
if (strcmp(name, "UnmapViewOfFile") == 0)
|
|
return (void *)kernel32::UnmapViewOfFile;
|
|
if (strcmp(name, "DeleteFileA") == 0)
|
|
return (void *)kernel32::DeleteFileA;
|
|
if (strcmp(name, "DeleteFileW") == 0)
|
|
return (void *)kernel32::DeleteFileW;
|
|
if (strcmp(name, "MoveFileA") == 0)
|
|
return (void *)kernel32::MoveFileA;
|
|
if (strcmp(name, "MoveFileW") == 0)
|
|
return (void *)kernel32::MoveFileW;
|
|
if (strcmp(name, "SetFilePointer") == 0)
|
|
return (void *)kernel32::SetFilePointer;
|
|
if (strcmp(name, "SetFilePointerEx") == 0)
|
|
return (void *)kernel32::SetFilePointerEx;
|
|
if (strcmp(name, "SetEndOfFile") == 0)
|
|
return (void *)kernel32::SetEndOfFile;
|
|
if (strcmp(name, "CreateDirectoryA") == 0)
|
|
return (void *)kernel32::CreateDirectoryA;
|
|
if (strcmp(name, "RemoveDirectoryA") == 0)
|
|
return (void *)kernel32::RemoveDirectoryA;
|
|
if (strcmp(name, "SetFileAttributesA") == 0)
|
|
return (void *)kernel32::SetFileAttributesA;
|
|
if (strcmp(name, "GetFileSize") == 0)
|
|
return (void *)kernel32::GetFileSize;
|
|
if (strcmp(name, "GetFileTime") == 0)
|
|
return (void *)kernel32::GetFileTime;
|
|
if (strcmp(name, "SetFileTime") == 0)
|
|
return (void *)kernel32::SetFileTime;
|
|
if (strcmp(name, "GetFileType") == 0)
|
|
return (void *)kernel32::GetFileType;
|
|
if (strcmp(name, "FileTimeToLocalFileTime") == 0)
|
|
return (void *)kernel32::FileTimeToLocalFileTime;
|
|
if (strcmp(name, "LocalFileTimeToFileTime") == 0)
|
|
return (void *)kernel32::LocalFileTimeToFileTime;
|
|
if (strcmp(name, "DosDateTimeToFileTime") == 0)
|
|
return (void *)kernel32::DosDateTimeToFileTime;
|
|
if (strcmp(name, "FileTimeToDosDateTime") == 0)
|
|
return (void *)kernel32::FileTimeToDosDateTime;
|
|
if (strcmp(name, "GetFileInformationByHandle") == 0)
|
|
return (void *)kernel32::GetFileInformationByHandle;
|
|
if (strcmp(name, "GetTempFileNameA") == 0)
|
|
return (void *)kernel32::GetTempFileNameA;
|
|
if (strcmp(name, "GetTempPathA") == 0)
|
|
return (void *)kernel32::GetTempPathA;
|
|
|
|
// sysinfoapi.h
|
|
if (strcmp(name, "GetSystemInfo") == 0)
|
|
return (void *)kernel32::GetSystemInfo;
|
|
if (strcmp(name, "GetSystemTime") == 0)
|
|
return (void *)kernel32::GetSystemTime;
|
|
if (strcmp(name, "GetLocalTime") == 0)
|
|
return (void *)kernel32::GetLocalTime;
|
|
if (strcmp(name, "GetSystemTimeAsFileTime") == 0)
|
|
return (void *)kernel32::GetSystemTimeAsFileTime;
|
|
if (strcmp(name, "GetTickCount") == 0)
|
|
return (void *)kernel32::GetTickCount;
|
|
if (strcmp(name, "GetSystemDirectoryA") == 0)
|
|
return (void *)kernel32::GetSystemDirectoryA;
|
|
if (strcmp(name, "GetWindowsDirectoryA") == 0)
|
|
return (void *)kernel32::GetWindowsDirectoryA;
|
|
if (strcmp(name, "GetVersion") == 0)
|
|
return (void *)kernel32::GetVersion;
|
|
if (strcmp(name, "GetVersionExA") == 0)
|
|
return (void *)kernel32::GetVersionExA;
|
|
|
|
// timezoneapi.h
|
|
if (strcmp(name, "SystemTimeToFileTime") == 0)
|
|
return (void *)kernel32::SystemTimeToFileTime;
|
|
if (strcmp(name, "FileTimeToSystemTime") == 0)
|
|
return (void *)kernel32::FileTimeToSystemTime;
|
|
if (strcmp(name, "GetTimeZoneInformation") == 0)
|
|
return (void *)kernel32::GetTimeZoneInformation;
|
|
|
|
// libloaderapi.h
|
|
if (strcmp(name, "GetModuleHandleA") == 0)
|
|
return (void *)kernel32::GetModuleHandleA;
|
|
if (strcmp(name, "GetModuleHandleW") == 0)
|
|
return (void *)kernel32::GetModuleHandleW;
|
|
if (strcmp(name, "GetModuleFileNameA") == 0)
|
|
return (void *)kernel32::GetModuleFileNameA;
|
|
if (strcmp(name, "GetModuleFileNameW") == 0)
|
|
return (void *)kernel32::GetModuleFileNameW;
|
|
if (strcmp(name, "LoadResource") == 0)
|
|
return (void *)kernel32::LoadResource;
|
|
if (strcmp(name, "LockResource") == 0)
|
|
return (void *)kernel32::LockResource;
|
|
if (strcmp(name, "SizeofResource") == 0)
|
|
return (void *)kernel32::SizeofResource;
|
|
if (strcmp(name, "LoadLibraryA") == 0)
|
|
return (void *)kernel32::LoadLibraryA;
|
|
if (strcmp(name, "LoadLibraryW") == 0)
|
|
return (void *)kernel32::LoadLibraryW;
|
|
if (strcmp(name, "LoadLibraryExW") == 0)
|
|
return (void *)kernel32::LoadLibraryExW;
|
|
if (strcmp(name, "DisableThreadLibraryCalls") == 0)
|
|
return (void *)kernel32::DisableThreadLibraryCalls;
|
|
if (strcmp(name, "FreeLibrary") == 0)
|
|
return (void *)kernel32::FreeLibrary;
|
|
if (strcmp(name, "GetProcAddress") == 0)
|
|
return (void *)kernel32::GetProcAddress;
|
|
if (strcmp(name, "FindResourceA") == 0)
|
|
return (void *)kernel32::FindResourceA;
|
|
if (strcmp(name, "FindResourceExA") == 0)
|
|
return (void *)kernel32::FindResourceExA;
|
|
if (strcmp(name, "FindResourceW") == 0)
|
|
return (void *)kernel32::FindResourceW;
|
|
if (strcmp(name, "FindResourceExW") == 0)
|
|
return (void *)kernel32::FindResourceExW;
|
|
|
|
// heapapi.h
|
|
if (strcmp(name, "HeapCreate") == 0)
|
|
return (void *)kernel32::HeapCreate;
|
|
if (strcmp(name, "GetProcessHeap") == 0)
|
|
return (void *)kernel32::GetProcessHeap;
|
|
if (strcmp(name, "HeapSetInformation") == 0)
|
|
return (void *)kernel32::HeapSetInformation;
|
|
if (strcmp(name, "HeapAlloc") == 0)
|
|
return (void *)kernel32::HeapAlloc;
|
|
if (strcmp(name, "HeapDestroy") == 0)
|
|
return (void *)kernel32::HeapDestroy;
|
|
if (strcmp(name, "HeapReAlloc") == 0)
|
|
return (void *)kernel32::HeapReAlloc;
|
|
if (strcmp(name, "HeapSize") == 0)
|
|
return (void *)kernel32::HeapSize;
|
|
if (strcmp(name, "HeapFree") == 0)
|
|
return (void *)kernel32::HeapFree;
|
|
|
|
// memoryapi.h
|
|
if (strcmp(name, "VirtualAlloc") == 0)
|
|
return (void *)kernel32::VirtualAlloc;
|
|
if (strcmp(name, "VirtualFree") == 0)
|
|
return (void *)kernel32::VirtualFree;
|
|
if (strcmp(name, "VirtualProtect") == 0)
|
|
return (void *)kernel32::VirtualProtect;
|
|
if (strcmp(name, "VirtualQuery") == 0)
|
|
return (void *)kernel32::VirtualQuery;
|
|
if (strcmp(name, "GetProcessWorkingSetSize") == 0)
|
|
return (void *)kernel32::GetProcessWorkingSetSize;
|
|
if (strcmp(name, "SetProcessWorkingSetSize") == 0)
|
|
return (void *)kernel32::SetProcessWorkingSetSize;
|
|
|
|
// stringapiset.h
|
|
if (strcmp(name, "WideCharToMultiByte") == 0)
|
|
return (void *)kernel32::WideCharToMultiByte;
|
|
if (strcmp(name, "MultiByteToWideChar") == 0)
|
|
return (void *)kernel32::MultiByteToWideChar;
|
|
if (strcmp(name, "GetStringTypeA") == 0)
|
|
return (void *)kernel32::GetStringTypeA;
|
|
if (strcmp(name, "GetStringTypeW") == 0)
|
|
return (void *)kernel32::GetStringTypeW;
|
|
|
|
// profileapi.h
|
|
if (strcmp(name, "QueryPerformanceCounter") == 0)
|
|
return (void *)kernel32::QueryPerformanceCounter;
|
|
if (strcmp(name, "QueryPerformanceFrequency") == 0)
|
|
return (void *)kernel32::QueryPerformanceFrequency;
|
|
|
|
// debugapi.h
|
|
if (strcmp(name, "IsDebuggerPresent") == 0)
|
|
return (void *)kernel32::IsDebuggerPresent;
|
|
|
|
// interlockedapi.h
|
|
if (strcmp(name, "InitializeSListHead") == 0)
|
|
return (void *)kernel32::InitializeSListHead;
|
|
if (strcmp(name, "InterlockedIncrement") == 0)
|
|
return (void *)kernel32::InterlockedIncrement;
|
|
if (strcmp(name, "InterlockedDecrement") == 0)
|
|
return (void *)kernel32::InterlockedDecrement;
|
|
if (strcmp(name, "InterlockedExchange") == 0)
|
|
return (void *)kernel32::InterlockedExchange;
|
|
if (strcmp(name, "InterlockedCompareExchange") == 0)
|
|
return (void *)kernel32::InterlockedCompareExchange;
|
|
|
|
// winnt.h
|
|
if (strcmp(name, "RtlUnwind") == 0)
|
|
return (void *)kernel32::RtlUnwind;
|
|
|
|
// fibersapi.h
|
|
if (strcmp(name, "FlsAlloc") == 0)
|
|
return (void *)kernel32::FlsAlloc;
|
|
if (strcmp(name, "FlsFree") == 0)
|
|
return (void *)kernel32::FlsFree;
|
|
if (strcmp(name, "FlsSetValue") == 0)
|
|
return (void *)kernel32::FlsSetValue;
|
|
if (strcmp(name, "FlsGetValue") == 0)
|
|
return (void *)kernel32::FlsGetValue;
|
|
|
|
// ioapiset.h
|
|
if (strcmp(name, "GetOverlappedResult") == 0)
|
|
return (void *)kernel32::GetOverlappedResult;
|
|
|
|
// wow64apiset.h
|
|
if (strcmp(name, "Wow64DisableWow64FsRedirection") == 0)
|
|
return (void *)kernel32::Wow64DisableWow64FsRedirection;
|
|
if (strcmp(name, "Wow64RevertWow64FsRedirection") == 0)
|
|
return (void *)kernel32::Wow64RevertWow64FsRedirection;
|
|
if (strcmp(name, "IsWow64Process") == 0)
|
|
return (void *)kernel32::IsWow64Process;
|
|
|
|
return 0;
|
|
}
|
|
|
|
} // namespace
|
|
|
|
wibo::ModuleStub lib_kernel32 = {
|
|
(const char *[]){
|
|
"kernel32",
|
|
nullptr,
|
|
},
|
|
resolveByName,
|
|
nullptr,
|
|
};
|