fix comment spacing, variable names
This commit is contained in:
42
wufuc/core.c
42
wufuc/core.c
@@ -80,30 +80,30 @@ BOOL PatchWUModule(HMODULE hModule) {
|
|||||||
SIZE_T n1, n2;
|
SIZE_T n1, n2;
|
||||||
#ifdef _WIN64
|
#ifdef _WIN64
|
||||||
lpszPattern =
|
lpszPattern =
|
||||||
"FFF3" // push rbx
|
"FFF3" // push rbx
|
||||||
"4883EC??" // sub rsp,??
|
"4883EC??" // sub rsp,??
|
||||||
"33DB" // xor ebx,ebx
|
"33DB" // xor ebx,ebx
|
||||||
"391D????????" // cmp dword ptr ds:[???????????],ebx
|
"391D????????" // cmp dword ptr ds:[???????????],ebx
|
||||||
"7508" // jnz $+8
|
"7508" // jnz $+8
|
||||||
"8B05????????"; // mov eax,dword ptr ds:[???????????]
|
"8B05????????"; // mov eax,dword ptr ds:[???????????]
|
||||||
n1 = 10;
|
n1 = 10;
|
||||||
n2 = 18;
|
n2 = 18;
|
||||||
#elif defined(_WIN32)
|
#elif defined(_WIN32)
|
||||||
if (IsWindows8Point1()) {
|
if (IsWindows8Point1()) {
|
||||||
lpszPattern =
|
lpszPattern =
|
||||||
"8BFF" // mov edi,edi
|
"8BFF" // mov edi,edi
|
||||||
"51" // push ecx
|
"51" // push ecx
|
||||||
"833D????????00" // cmp dword ptr ds:[????????],0
|
"833D????????00" // cmp dword ptr ds:[????????],0
|
||||||
"7507" // jnz $+7
|
"7507" // jnz $+7
|
||||||
"A1????????"; // mov eax,dword ptr ds:[????????]
|
"A1????????"; // mov eax,dword ptr ds:[????????]
|
||||||
n1 = 5;
|
n1 = 5;
|
||||||
n2 = 13;
|
n2 = 13;
|
||||||
} else if (IsWindows7()) {
|
} else if (IsWindows7()) {
|
||||||
lpszPattern =
|
lpszPattern =
|
||||||
"833D????????00" // cmp dword ptr ds:[????????],0
|
"833D????????00" // cmp dword ptr ds:[????????],0
|
||||||
"743E" // je $+3E
|
"743E" // je $+3E
|
||||||
"E8????????" // call <wuaueng.IsCPUSupported>
|
"E8????????" // call <wuaueng.IsCPUSupported>
|
||||||
"A3????????"; // mov dword ptr ds:[????????],eax
|
"A3????????"; // mov dword ptr ds:[????????],eax
|
||||||
n1 = 2;
|
n1 = 2;
|
||||||
n2 = 15;
|
n2 = 15;
|
||||||
}
|
}
|
||||||
@@ -114,20 +114,20 @@ BOOL PatchWUModule(HMODULE hModule) {
|
|||||||
MODULEINFO modinfo;
|
MODULEINFO modinfo;
|
||||||
GetModuleInformation(GetCurrentProcess(), hModule, &modinfo, sizeof(MODULEINFO));
|
GetModuleInformation(GetCurrentProcess(), hModule, &modinfo, sizeof(MODULEINFO));
|
||||||
|
|
||||||
SIZE_T offset;
|
SIZE_T rva;
|
||||||
if (!FindPattern(modinfo.lpBaseOfDll, modinfo.SizeOfImage, lpszPattern, 0, &offset)) {
|
if (!FindPattern(modinfo.lpBaseOfDll, modinfo.SizeOfImage, lpszPattern, 0, &rva)) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
SIZE_T rva = (SIZE_T)modinfo.lpBaseOfDll + offset;
|
SIZE_T fpIsDeviceServiceable = (SIZE_T)modinfo.lpBaseOfDll + rva;
|
||||||
_tdbgprintf(_T("IsDeviceServiceable(void) matched at %p"), rva);
|
_tdbgprintf(_T("IsDeviceServiceable(void) matched at %p"), fpIsDeviceServiceable);
|
||||||
|
|
||||||
BOOL *lpbNotRunOnce = (BOOL *)(rva + n1 + sizeof(DWORD) + *(DWORD *)(rva + n1));
|
BOOL *lpbNotRunOnce = (BOOL *)(fpIsDeviceServiceable + n1 + sizeof(DWORD) + *(DWORD *)(fpIsDeviceServiceable + n1));
|
||||||
if (*lpbNotRunOnce) {
|
if (*lpbNotRunOnce) {
|
||||||
*lpbNotRunOnce = FALSE;
|
*lpbNotRunOnce = FALSE;
|
||||||
_tdbgprintf(_T("Patched %p=%d"), lpbNotRunOnce, *lpbNotRunOnce);
|
_tdbgprintf(_T("Patched %p=%d"), lpbNotRunOnce, *lpbNotRunOnce);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL *lpbCachedResult = (BOOL *)(rva + n2 + sizeof(DWORD) + *(DWORD *)(rva + n2));
|
BOOL *lpbCachedResult = (BOOL *)(fpIsDeviceServiceable + n2 + sizeof(DWORD) + *(DWORD *)(fpIsDeviceServiceable + n2));
|
||||||
if (!*lpbCachedResult) {
|
if (!*lpbCachedResult) {
|
||||||
*lpbCachedResult = TRUE;
|
*lpbCachedResult = TRUE;
|
||||||
_tdbgprintf(_T("Patched %p=%d"), lpbCachedResult, *lpbCachedResult);
|
_tdbgprintf(_T("Patched %p=%d"), lpbCachedResult, *lpbCachedResult);
|
||||||
|
Reference in New Issue
Block a user