📄 patcher.c
字号:
#if _MSC_VER > 1000
#pragma once
#endif
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include "ApiHooks.h"
#define PatchRVA 0x103f
#define PatchSize 1
BYTE OrigValues[PatchSize] = {'X'};
BYTE WantedValues[PatchSize] = {'u'};
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
if(ul_reason_for_call == DLL_PROCESS_ATTACH) {
HMODULE main_module;
ULONG OldAttr;
DWORD i, j;
if(main_module = GetModuleHandle(NULL)) {
LPBYTE dest = (LPBYTE)main_module+PatchRVA;
if(VirtualProtect(dest, PatchSize, PAGE_READWRITE, &OldAttr)) {
for(i=0, j=0; i<PatchSize; ++i)
if(dest[i] == OrigValues[i]) ++j;
else break;
if (i == j)
while(i--)
dest[i] = WantedValues[i];
VirtualProtect(dest, PatchSize, OldAttr, &OldAttr);
}
}
}
return TRUE;
}
__declspec(dllexport) API_HOOK ApiHookChain[1] = {
{HOOKS_END}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -