2020-07-12 02:19:51 +02:00

28 lines
1.2 KiB
C

#pragma once
typedef unsigned long long QWORD;
typedef QWORD *PQWORD, *LPQWORD;
extern "C" IMAGE_DOS_HEADER __ImageBase;
#define HINST_THISCOMPONENT ((HINSTANCE)&__ImageBase)
#define IJ_JUMP 0 //Insert a jump (0xE9) with InsertJump
#define IJ_CALL 1 //Insert a call (0xE8) with InsertJump
#define IJ_FARJUMP 2 //Insert a farjump (0xEA) with InsertJump
#define IJ_FARCALL 3 //Insert a farcall (0x9A) with InsertJump
#define IJ_PUSHRET 4 //Insert a pushret with InsertJump
BOOL WritePrivateProfileIntA(LPCSTR lpAppName, LPCSTR lpKeyName, int nInteger, LPCSTR lpFileName);
LPSTR GetPathUnderModuleA(HMODULE hModule, LPSTR OutBuf, LPCSTR FileName);
BOOL __stdcall PatchMemData(ULONG dwAddr, ULONG dwBufLen, PVOID pNewData, ULONG dwDataLen);
BOOL __stdcall PatchMemQword(ULONG dwAddr, QWORD qNewValue);
BOOL __stdcall PatchMemDword(ULONG dwAddr, DWORD dwNewValue);
BOOL __stdcall PatchMemWord(ULONG dwAddr, WORD wNewValue);
BOOL __stdcall PatchMemByte(ULONG dwAddr, BYTE bNewValue);
BOOL __stdcall PatchMemFloat(ULONG dwAddr, FLOAT fNewValue);
BOOL __stdcall PatchMemNop(ULONG dwAddr, DWORD dwPatchSize);
BOOL __stdcall InsertJump(PVOID pDest, DWORD dwPatchSize, PVOID pCallee, DWORD dwJumpType = IJ_JUMP);