@@ -10009,10 +10009,10 @@ BOOL Moment2PatchControlCenter(LPMODULEINFO mi)
10009
10009
{
10010
10010
// Step 1:
10011
10011
// Scan within the DLL for `rcMonitor = mi.rcMonitor`.
10012
- // ```0F 10 44 24 ?? F3 0F 7F 44 24 ?? 80 BF // movups - movdqu - cmp```
10012
+ // ```0F 10 44 24 ?? F3 0F 7F 44 24 ?? 80 // movups - movdqu - cmp```
10013
10013
// 22621.1992: 4B35B
10014
10014
// 22621.2283: 65C5C
10015
- PBYTE rcMonitorAssignment = FindPattern (mi -> lpBaseOfDll , mi -> SizeOfImage , "\x0F\x10\x44\x24\x00\xF3\x0F\x7F\x44\x24\x00\x80\xBF " , "xxxx?xxxxx?xx " );
10015
+ PBYTE rcMonitorAssignment = FindPattern (mi -> lpBaseOfDll , mi -> SizeOfImage , "\x0F\x10\x44\x24\x00\xF3\x0F\x7F\x44\x24\x00\x80" , "xxxx?xxxxx?x " );
10016
10016
if (!rcMonitorAssignment ) return FALSE;
10017
10017
printf ("[CC] rcMonitorAssignment = %llX\n" , rcMonitorAssignment - (PBYTE )mi -> lpBaseOfDll );
10018
10018
@@ -10066,11 +10066,23 @@ BOOL Moment2PatchToastCenter(LPMODULEINFO mi)
10066
10066
{
10067
10067
// Step 1:
10068
10068
// Scan within the DLL for `rcMonitor = mi.rcMonitor`.
10069
- // ```0F 10 45 84 ?? 0F 7F 44 24 ?? 48 8B CF // movups - movdqu - mov```
10069
+ //
10070
+ // Pattern 1:
10071
+ // Will have a match if CToastCenterExperienceManager::ShouldShowWithinWorkArea() is present.
10072
+ // ```0F 10 45 ?? ?? 0F 7F 44 24 ?? 48 8B CF // movups - movdqu - mov```
10070
10073
// 22621.1992: 40CE8
10071
10074
// 22621.2283: 501DB
10072
- PBYTE rcMonitorAssignment = FindPattern (mi -> lpBaseOfDll , mi -> SizeOfImage , "\x0F\x10\x45\x84\x00\x0F\x7F\x44\x24\x00\x48\x8B\xCF" , "xxxx?xxxx?xxx" );
10073
- if (!rcMonitorAssignment ) return FALSE;
10075
+ //
10076
+ // Pattern 2:
10077
+ // Will have a match if CToastCenterExperienceManager::ShouldShowWithinWorkArea() is inlined.
10078
+ // ```0F 10 45 ?? ?? 0F 7F 44 24 ?? 44 // movups - movdqu - cmp```
10079
+ // 25951.1000: 36B2C4
10080
+ PBYTE rcMonitorAssignment = FindPattern (mi -> lpBaseOfDll , mi -> SizeOfImage , "\x0F\x10\x45\x00\x00\x0F\x7F\x44\x24\x00\x48\x8B\xCF" , "xxx??xxxx?xxx" );
10081
+ if (!rcMonitorAssignment )
10082
+ {
10083
+ rcMonitorAssignment = FindPattern (mi -> lpBaseOfDll , mi -> SizeOfImage , "\x0F\x10\x45\x00\x00\x0F\x7F\x44\x24\x00\x44" , "xxx??xxxx?x" );
10084
+ if (!rcMonitorAssignment ) return FALSE;
10085
+ }
10074
10086
printf ("[TC] rcMonitorAssignment = %llX\n" , rcMonitorAssignment - (PBYTE )mi -> lpBaseOfDll );
10075
10087
10076
10088
// Step 2:
@@ -10266,12 +10278,11 @@ void WINAPI HardwareConfirmatorShellcode(PBYTE pCoroInstance)
10266
10278
hr = pTheFunc (pEdgeUiManager , & rc );
10267
10279
}
10268
10280
10269
- typedef struct { float x , y , width , height ; } Windows_Foundation_Rect ;
10270
- Windows_Foundation_Rect * out = pCoroInstance + g_Moment2PatchOffsets .coroInstance_rcOut ;
10271
- out -> x = (float )rc .left ;
10272
- out -> y = (float )rc .top ;
10273
- out -> width = (float )(rc .right - rc .left );
10274
- out -> height = (float )(rc .bottom - rc .top );
10281
+ __x_ABI_CWindows_CFoundation_CRect * out = pCoroInstance + g_Moment2PatchOffsets .coroInstance_rcOut ;
10282
+ out -> X = (float )rc .left ;
10283
+ out -> Y = (float )rc .top ;
10284
+ out -> Width = (float )(rc .right - rc .left );
10285
+ out -> Height = (float )(rc .bottom - rc .top );
10275
10286
10276
10287
pEdgeUiManager -> lpVtbl -> Release (pEdgeUiManager );
10277
10288
}
@@ -11057,13 +11068,13 @@ DWORD Inject(BOOL bIsExplorer)
11057
11068
{
11058
11069
// Find a pointer to ITrayUIHost needed to have a working Windows 10 taskbar context menu on Windows 11 taskbar
11059
11070
// Ref: CTray::Init()
11060
- // 4C 8D 05 ? ? ? ? 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 8B 8D
11071
+ // 4C 8D 05 ? ? ? ? 48 8D 0D ? ? ? ? E8 ? ? ? ? 48 8B
11061
11072
// ^^^^^^^
11062
11073
PBYTE match = FindPattern (
11063
11074
hExplorer ,
11064
11075
miExplorer .SizeOfImage ,
11065
- "\x4C\x8D\x05\x00\x00\x00\x00\x48\x8D\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x48\x8B\x8D " ,
11066
- "xxx????xxx????x????xxx "
11076
+ "\x4C\x8D\x05\x00\x00\x00\x00\x48\x8D\x0D\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x48\x8B" ,
11077
+ "xxx????xxx????x????xx "
11067
11078
);
11068
11079
if (match )
11069
11080
{
0 commit comments