From there you can retreive the player base address. What you could do in this case is using CE and find the Hp, finding what code accesses this address and hopefully there will be along the lines, the GUI code that intercepts this value. Ī method I like to use (to find the local player, most of the time) is using "code hooking".įor example, if you want to find the address to the local player in AssaultCube (or an other game) you could find the GUI code that draws the player ammo/health on screen, because if your game displays to you that you have 100Hp, well it got to extract the value somewhere. are harder to debug in assembly and could be unpredictable in terms of pointer finding. This is an intuition and not based on facts, but I beleive that games made in virtual machines such as Java, C#, or OS features such as address randomization. You can for example find pointers to the local player, or modify the game code / making your team invincible, infinite ammo and so on. This game is quite enjoyable to practise on because there are no debugging protections nor anti-cheat system. Try Assault cube (or Assault cube reloaded). When it comes to more complex games, try to practise on indie games (singleplayer of course) or open source (because they are accessible). You could also learn about compiler optimizations by comparing the code and the generated assembly. Very instructive for me, definitely a 1. Example : with this approach I once discovered an opcode I didn't know about / cmov (or cmovcc in manuals) while dissassembling a game of mine and therefore I knew exactly how things were laid down in the memory and in the code. Speaking more generally (I deviate from your pointer question), I think that this is a very good approach. But as pointed out already, player objects are usually not allocated on the stack.
0 Comments
Leave a Reply. |