The anti-CE thread function is here:
Code: Select all
MK11.exe+18D6A20 - E9 5B334311 - jmp MK11.exe+12D09D80
..
MK11.exe+12D09D80 - 48 8D 64 24 F8 - lea rsp,[rsp-08]
MK11.exe+12D09D85 - 48 89 3C 24 - mov [rsp],rdi
MK11.exe+12D09D89 - F9 - stc
MK11.exe+12D09D8A - 48 83 D4 CF - adc rsp,-31 { 207 }
MK11.exe+12D09D8E - 48 83 C4 F8 - add rsp,-08 { 248 }
MK11.exe+12D09D92 - 48 89 2C 24 - mov [rsp],rbp
MK11.exe+12D09D96 - 48 87 6C 24 28 - xchg [rsp+28],rbp
MK11.exe+12D09D9B - 48 C7 C5 FEFFFFFF - mov rbp,FFFFFFFE { -2 }
MK11.exe+12D09DA2 - 48 87 6C 24 28 - xchg [rsp+28],rbp
MK11.exe+12D09DA7 - 5D - pop rbp
MK11.exe+12D09DA8 - 41 51 - push r9
MK11.exe+12D09DAA - 4C 8D 4C 24 48 - lea r9,[rsp+48]
MK11.exe+12D09DAF - 49 81 C1 6F3045CD - add r9,CD45306F { -851103633 }
MK11.exe+12D09DB6 - 49 89 99 91CFBA32 - mov [r9+32BACF91],rbx
..
MK11.exe+12D0A05B - 48 8D 15 0E3AC5EE - lea rdx,[MK11.exe+195DA70] { (1438944072) } // antiCE_callback_1
MK11.exe+12D0A062 - F7 D1 - not ecx
MK11.exe+12D0A064 - 48 8D 64 24 08 - lea rsp,[rsp+08]
MK11.exe+12D0A069 - FF 15 59EBC905 - call qword ptr [MK11.exe+189A8BC8] { ->USER32.EnumChildWindows }
The thread is created here:
Code: Select all
MK11.exe+12E60FDA - 48 8D 64 24 08 - lea rsp,[rsp+08]
MK11.exe+12E60FDF - 48 8D 4C 24 20 - lea rcx,[rsp+20]
MK11.exe+12E60FE4 - 83 F2 FF - xor edx,-01 { 255 }
MK11.exe+12E60FE7 - 48 8D 89 EDE38652 - lea rcx,[rcx+5286E3ED]
MK11.exe+12E60FEE - C7 81 131C79AD 00000000 - mov [rcx-5286E3ED],00000000
MK11.exe+12E60FF8 - 29 C9 - sub ecx,ecx
MK11.exe+12E60FFA - FF 15 5875B405 - call qword ptr [MK11.exe+189A8558] { ->KERNEL32.CreateThread }
^ Code above is obfuscated. If you follow the logic:
lea rcx,[rsp+20]
// this loads the effective address of [rsp+20] into rcx
lea rcx,[rcx+5286E3ED]
// this puts rcx+5286E3ED into rcx
mov [rcx-5286E3ED],00000000
// and this mov basically says "mov [rcx],0" because there's a - that does the exact opposite of the + above
So change C7 81 13 1C 79 AD [00 00 00 00] to C7 81 13 1C 79 AD [04 00 00 00].
However, you may want to change it manually via hardware breakpoints, as they've enabled integrity checks over the VM code in Denuvo. Another setting in the actual protection software
Will be back with the rest.
P.S.: To all idiots bitching that by me posting this analysis I give Nether ideas on how to up their game, that's the whole fucking point. I give a rat's ass on your trainer business! You know who you are.