Posted: Wed Mar 14, 2012 4:27 pm Post subject: First crack made with Cheat Engine. Thanks ;)
Hello,
I starting thinking about fixing the problem of loosing health in Warlords Battlecry 3 ( quite dangerous ), and yeah ... why not ... some resources for free.
Cheat engine is a very good tool to deal with these things for sure. Well, thanks for all
With Hex Workshop I dealt with making the things stored on the file.
And ollydebug to dissasemble some parts.
Well it worked quite well.
I learnt many things. A bit of the structure of an EXE, that it normally loads at 400000H, that when on file I have to substract 400000H to the pointers (It can change). I didn't know that.
I didn't know how to search for pointers, and that we have pointers to pointers, and at last, not very far away we have the static addresses.
I didn't know you could put a breakpoint to know who writes or reads in a position in the memory.
I didn't know how to add code greater to the code to substitute. I still don't know if I did right. I made a call for unused space at the end of the file.
My worst mistake known for me is to confuse the address of the pointer leaving the offset and hanging the game and thinking that it was that the assembler code was wrong. The most challenging thing is to take the function that takes the health that is in an method shared with other objects and find the specific object of the the character and refill health. I could have done a comparison of the object being treated and disable the decrease of the health, but as always tried to find the shortest path and avoid other possible missing actions, and refilling the health of the hero despite the object being treated.
When dealing with adding health to the main character, I didn't know if to put push/pop register before and after changing the value. It was used AX, but since it wasn't used later AX, it wasn't needed. I looked too if any of the status register was used, for any comparison that could be found.
I still don't know how to put a breakpoint without hanging the program. I can't go to cheatengine because the screen gets freezed (I use Windows XP).
It is so easy with Cheat Engine to make this things on the fly ... but if you want to store the change permanently, it is much harder. But normally on the memory it is enough in many cases.
For me the most demading thing is to have faith that with reasoning wondering questions about the code and a bit of patience it can be done.
I still don't understand the code. I can't read the purpose of the code. I can't see de C structures in the assembly code, but it is a matter of effort and time.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum