ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4717
|
Posted: Sun Dec 27, 2015 9:33 pm Post subject: |
|
|
If you're talking about this table, then the main problem you're having is that that script doesn't use pointers at all. It just replaces some instructions with NOPs (0x90) for most scripts, and it uses code injection for the "stall opps" script.
Here's a basic explanation of everything:
In reality, everything (health, ammo, etc) is just a bunch of numbers. It modifies these numbers using instructions from an assembly language (x86). To humans, instructions are shortened words and letters that represent actions (for example, mov eax,ebx takes the value in ebx and copies it into eax). To a computer, however, instructions are all just a bunch of bytes (for example, the byte representation of mov eax,ebx is 8B C3).
We can change what an application does by changing these instructions. In the aforementioned script, most of those scripts just replace instruction(s) with NOPs. NOP is an instruction that stands for No OPeration (byte representation is 90). So, if you take an instruction's bytes and replace all of them with 90, then you effectively remove that instruction. For example, if you replace the instruction that writes to your ammo with NOPs, you now have infinite ammo. If you look at the scripts, it should be pretty self-explanatory how to do this. Finding the instructions is the hard part.
Code injection is a bit more complicated than replacing an instruction with NOPs. In code injection, you basically replace some instruction(s) in the application with bytes that will make the program jump to code that you've written in memory you've allocated, then it jumps back to where it jumped from to continue running normally. CE does a lot of the work for you. Here's a tutorial on code injection:
http://forum.cheatengine.org/viewtopic.php?t=570083
If you want some practice with this, do the CE tutorial (located under the help menu in CE). It'll show you how to find values (you know this already), how to find instructions that access those values, and how to do a code injection on those values. If the tutorial doesn't spell out what you need to do well enough, try looking at this topic. There are also tons of YouTube videos covering the CE tutorial if you like watching videos more than reading text.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|