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. 25
      ExplorerPatcher/dllmain.c

25
ExplorerPatcher/dllmain.c

@ -8801,7 +8801,7 @@ static void PatchAddressBarSizing(const MODULEINFO* mi) @@ -8801,7 +8801,7 @@ static void PatchAddressBarSizing(const MODULEINFO* mi)
VirtualProtect(match, 9, dwOldProtect, &dwOldProtect);
}
// CAddressBand::_AddressBandWndProc()
// CAddressBand::_AddressBandWndProc() <- CAddressBand::_GetAdjustedClientRect()
// 83 45 ?? ?? 83 6D ?? ?? 0F
// xx To 03 xx To 01
match = FindPattern(
@ -8810,7 +8810,9 @@ static void PatchAddressBarSizing(const MODULEINFO* mi) @@ -8810,7 +8810,9 @@ static void PatchAddressBarSizing(const MODULEINFO* mi)
"\x83\x45\x00\x00\x83\x6D\x00\x00\x0F",
"xx??xx??x"
);
if (match && VirtualProtect(match, 9, PAGE_EXECUTE_READWRITE, &dwOldProtect))
if (match)
{
if (VirtualProtect(match, 9, PAGE_EXECUTE_READWRITE, &dwOldProtect))
{
match[3] = 3;
match[7] = 1;
@ -8818,6 +8820,25 @@ static void PatchAddressBarSizing(const MODULEINFO* mi) @@ -8818,6 +8820,25 @@ static void PatchAddressBarSizing(const MODULEINFO* mi)
}
}
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
{
// Contaminated with some remnants of the ReportUsage of "SearchSuggestions" feature
// CAddressBand::_PositionChildWindows()

Loading…
Cancel
Save