Mysteries: Difference between revisions

Stopa (talk | contribs)
Kynex7510 (talk | contribs)
sed
 
Line 52: Line 52:
'''Theory:''' NtrBoot another time  
'''Theory:''' NtrBoot another time  
=== Why are there 4 stubbed syscalls named SendSyncRequest1-4? ===
=== Why are there 4 stubbed syscalls named SendSyncRequest1-4? ===
=== Is there a deterministic formula for calculating the Movable.sed KeyY high u64? ===
=== Is there a deterministic formula for calculating the Movable.sed KeyY high u64? ===
'''Background:''' We know now that the high 4 bytes of KeyY can be reliably estimated to be 1/5th of the LocalFriendCodeSeed (low 8 bytes of KeyY), which is close enough to brute force. However, the actual value is usually about 0-4000 units off the actual high u32 of the KeyY (called msed3 in the seedminer implementation). Could there possibly be a deterministic formula given this 1/5 ratio is so close to the correct value? It's difficult to imagine this is just a coincidence.
'''Background:''' We know now that the high 4 bytes of KeyY can be reliably estimated to be 1/5th of the LocalFriendCodeSeed (low 8 bytes of KeyY), which is close enough to brute force. However, the actual value is usually about 0-4000 units off the actual high u32 of the KeyY (called msed3 in the seedminer implementation). Could there possibly be a deterministic formula given this 1/5 ratio is so close to the correct value? It's difficult to imagine this is just a coincidence.
'''Answer:''' No. Both LFCS and the second half of key Y are monotonically increasing:
* The former increases by a random value between [1, 4], thus the average increase is 2.5.
* The latter increases by a random value between [1, 2^32], thus the average increase is 2^31.
After X increases, the LFCS assumes a value of roughly X * 2.5, the second half of key Y assumes a value roughly of X * 2^31, which means msed3 becomes roughly (X >> 1) -> X / 2. Thus the correlation: LFCS/msed3 = (X * 2.5) / (X / 2) -> (X * 2.5) * (2 / X) = 2.5 * 2 = 5.