Browse Source

File Explorer: Updated shrink address bar patterns to account for non-inlined CAddressBand::_GetAdjustedClientRect() in recent GE builds (#4552)

pull/4568/merge
Amrsatrio 3 months ago
parent
commit
6d946bd4de
  1. 31
      ExplorerPatcher/dllmain.c

31
ExplorerPatcher/dllmain.c

@ -8801,7 +8801,7 @@ static void PatchAddressBarSizing(const MODULEINFO* mi)
VirtualProtect(match, 9, dwOldProtect, &dwOldProtect); VirtualProtect(match, 9, dwOldProtect, &dwOldProtect);
} }
// CAddressBand::_AddressBandWndProc() // CAddressBand::_AddressBandWndProc() <- CAddressBand::_GetAdjustedClientRect()
// 83 45 ?? ?? 83 6D ?? ?? 0F // 83 45 ?? ?? 83 6D ?? ?? 0F
// xx To 03 xx To 01 // xx To 03 xx To 01
match = FindPattern( match = FindPattern(
@ -8810,11 +8810,32 @@ static void PatchAddressBarSizing(const MODULEINFO* mi)
"\x83\x45\x00\x00\x83\x6D\x00\x00\x0F", "\x83\x45\x00\x00\x83\x6D\x00\x00\x0F",
"xx??xx??x" "xx??xx??x"
); );
if (match && VirtualProtect(match, 9, PAGE_EXECUTE_READWRITE, &dwOldProtect)) if (match)
{ {
match[3] = 3; if (VirtualProtect(match, 9, PAGE_EXECUTE_READWRITE, &dwOldProtect))
match[7] = 1; {
VirtualProtect(match, 9, dwOldProtect, &dwOldProtect); match[3] = 3;
match[7] = 1;
VirtualProtect(match, 9, dwOldProtect, &dwOldProtect);
}
}
else
{
// CAddressBand::_GetAdjustedClientRect()
// 0F 1F 44 00 00 83 43 04 ?? 83 43 0C ??
// xx To 03 xx To FF (-1)
match = FindPattern(
mi->lpBaseOfDll,
mi->SizeOfImage,
"\x0F\x1F\x44\x00\x00\x83\x43\x04\x00\x83\x43\x0C",
"xxxxxxxx?xxx"
);
if (match && VirtualProtect(match + 5, 8, PAGE_EXECUTE_READWRITE, &dwOldProtect))
{
match[8] = 3;
match[12] = (BYTE)-1;
VirtualProtect(match + 5, 8, dwOldProtect, &dwOldProtect);
}
} }
} }
else else

Loading…
Cancel
Save