Hi!
I'm starting to learn again about in-memory cheats and I've managed to find by myself the walk function.
[Only registered and activated users can see links. Click Here To Register...]
I managed to find a working pattern:
8b43??3b43??0f95??8843??84c074??6a??33c9
I've put a breakpoint to the line where you can see (BP) to obtain the ebx value that contains the pointer to the player object and by searching its value I found a single address that points to the player object pointer.
[Only registered and activated users can see links. Click Here To Register...]
I've added it to the table of values and set it as a pointer and found the address of 00548FB0 which I guess should be the pointer to the PlayerObject?
I've found by dissecting the structure in Cheat Engine that there's an actual string called PlayerObjManager in memory, so you're telling me that they actually put the string of their classes also in the released binary? Is it a normal thing?
Also, do you have any idea on how I could easily find an instruction that uses the PlayerObjManager pointer so I can easily retrieve it and use the walk function?
I really don't know much about PlayerObjManager, I've trying to explore the memory around it but nothing changes when my HP/MP decrease or increase, neither if my position or gold amount change.
I'm using this code to call the walk function, but the game crashes instantly:
I'm starting to learn again about in-memory cheats and I've managed to find by myself the walk function.
[Only registered and activated users can see links. Click Here To Register...]
I managed to find a working pattern:
8b43??3b43??0f95??8843??84c074??6a??33c9
Code:
8b43?? mov eax, [ebx+04] (currentX)
3b43?? cmp eax, [ebx+08] (destinationX)
0f95?? setne al
8843?? mov [ebx+1c], al
84c0 test al, al
74?? je NostaleClientX.exe 123
6a?? push 01
33c9 xor ecx,ecx
mov edx, [ebx+08] (basically (y << 16 | x))
(BP) mov eax, ebx (ebx is the pointer to the player object (?))
call NostaleClientX.exe+14F940
[Only registered and activated users can see links. Click Here To Register...]
I've added it to the table of values and set it as a pointer and found the address of 00548FB0 which I guess should be the pointer to the PlayerObject?
I've found by dissecting the structure in Cheat Engine that there's an actual string called PlayerObjManager in memory, so you're telling me that they actually put the string of their classes also in the released binary? Is it a normal thing?
Also, do you have any idea on how I could easily find an instruction that uses the PlayerObjManager pointer so I can easily retrieve it and use the walk function?
I really don't know much about PlayerObjManager, I've trying to explore the memory around it but nothing changes when my HP/MP decrease or increase, neither if my position or gold amount change.
I'm using this code to call the walk function, but the game crashes instantly:
Code:
_asm {
push 1
xor ecx, ecx
mov edx, position
mov eax, addressOfPlayerObjManager
call walkFunctionAddress
};