I took a look at the code changes of the new version and it appears to be more of a rewrite then I expected
3.13.2
Code: Select all
stellaris.exe+0xED236 lea rcx, Str1 ; "7be441c795af00194487e9945042d465"
stellaris.exe+0xED23D call strcmp
stellaris.exe+0xED242 mov edi, eax
stellaris.exe+0xED244 test eax, eax
stellaris.exe+0xED246 setz bl
stellaris.exe+0xED249 call sub_254130
stellaris.exe+0xED24E movzx edx, bl
stellaris.exe+0xED251 mov rcx, rax
stellaris.exe+0xED254 call sub_254DA0 ; modded achievements (game integrity checker)
stellaris.exe+0xED259 mov rbx, cs:qword_2B3DE08
stellaris.exe+0xED260 test rbx, rbx
stellaris.exe+0xED263 jz short loc_ED29B
stellaris.exe+0xED265 lea rcx, [rbx+270h]
stellaris.exe+0xED26C mov byte ptr [rbx+298h], 1
stellaris.exe+0xED273 lea r8, aChecksumstatus ; "ChecksumStatus"
stellaris.exe+0xED27A mov edx, [rcx+14h]
stellaris.exe+0xED27D test edi, edi
stellaris.exe+0xED27F lea r9, aModified ; "Modified"
stellaris.exe+0xED286 jnz short loc_ED28F
stellaris.exe+0xED288 lea r9, aOriginal ; "Original"
3.14.1
Code: Select all
stellaris.exe+0xF2E67 lea rcx, Str1 ; "2d05364e1410e5d8404a92ea0eeda394"
stellaris.exe+0xF2E6E call strcmp
stellaris.exe+0xF2E73 mov edi, eax
stellaris.exe+0xF2E75 test eax, eax
stellaris.exe+0xF2E77 setz r14b
stellaris.exe+0xF2E7B call sub_260510
stellaris.exe+0xF2E80 mov r15, rax
stellaris.exe+0xF2E83 mov rcx, cs:qword_2C15BB0
stellaris.exe+0xF2E8A mov rdx, [rcx+3A8h]
stellaris.exe+0xF2E91 mov rbx, [rdx+38h]
stellaris.exe+0xF2E95 test rbx, rbx
stellaris.exe+0xF2E98 jz short loc_F2EAC
stellaris.exe+0xF2E9A mov rdx, [rbx]
stellaris.exe+0xF2E9D mov rcx, rbx
stellaris.exe+0xF2EA0 call qword ptr [rdx+18h]
stellaris.exe+0xF2EA3 mov rdx, [rbx]
stellaris.exe+0xF2EA6 mov rcx, rbx
stellaris.exe+0xF2EA9 call qword ptr [rdx+30h]
stellaris.exe+0xF2EAC mov [r15+7Ah], r14b
stellaris.exe+0xF2EB0 mov rbx, cs:qword_2C167F8
stellaris.exe+0xF2EB7 test rbx, rbx
stellaris.exe+0xF2EBA jz short loc_F2EF2
stellaris.exe+0xF2EBC lea rcx, [rbx+270h]
stellaris.exe+0xF2EC3 mov byte ptr [rbx+298h], 1
stellaris.exe+0xF2ECA lea r8, aChecksumstatus ; "ChecksumStatus"
stellaris.exe+0xF2ED1 mov edx, [rcx+14h]
stellaris.exe+0xF2ED4 test edi, edi
stellaris.exe+0xF2ED6 lea r9, aModified ; "Modified"
stellaris.exe+0xF2EDD jnz short loc_F2EE6
stellaris.exe+0xF2EDF lea r9, aOriginal ; "Original"
Where previously we did a small detour inside that function (sub_254DA0)
In the latest update it is now gone.
If it had been as simple as offsets or a signature I would've attempted to fix it, but this will require a bit more thought for me.