| View previous topic :: View next topic |
| Author |
Message |
VysseEnzo How do I cheat?
Reputation: 0
Joined: 08 May 2015 Posts: 5
|
Posted: Sat Dec 12, 2015 2:50 am Post subject: Pointer Issue |
|
|
I am unsure the exact rules regarding online games and couldn't find anything but I seem to remember that saying the game name is not allowed. So I will not say what I don't have to.
So I am wanting to make a program that reminds me when something is off cooldown that prevents me from losing an item upon death in a certain game. I was able to find the value and pointer of the cooldown on a character. The next obvious test was to see if it would pop up on another character. It did not work on another character. What at this point could I do to make it work for multiple characters? Should I redo my pointer scan and switch between the two characters and see if they have a related pointer? Any advice would be helpful. If it's allowed and someone asks I am willing to give more info including the game name. Thanks .
|
|
| Back to top |
|
 |
grtnd Newbie cheater
Reputation: 0
Joined: 29 Nov 2015 Posts: 14
|
Posted: Sat Dec 12, 2015 4:43 am Post subject: |
|
|
| check what instruction writes to your pointer/value, the probable thing is that the instruction itself writes this value to all characters using different offsets
|
|
| Back to top |
|
 |
VysseEnzo How do I cheat?
Reputation: 0
Joined: 08 May 2015 Posts: 5
|
Posted: Sat Dec 12, 2015 6:11 am Post subject: |
|
|
| grtnd wrote: | | check what instruction writes to your pointer/value, the probable thing is that the instruction itself writes this value to all characters using different offsets |
And what would I do from there? Is there a guide I could follow?
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4715
|
Posted: Sat Dec 12, 2015 9:24 am Post subject: |
|
|
No, you shouldn't mention the game's name.
Doing that with the pointerscanner could help, but it also might not result in any pointers that are consistent between game restarts. If that's the case, then injecting some memory that will copy the address of the current character would probably work, depending on what instructions access the address.
Check what instructions write to the address of your value (not the address of the pointer, but the address pointed at by the pointer). Then, play around in the game a bit, and see what instructions pop up, when they pop up, and how often they pop up. If you can't find any good instructions that write to it, try searching more generally for instructions that access it, following the same steps.
Starting at the most commonly run instructions, click on "show disassembler", right click on that instruction in the disassembler, and select "Find out what addresses this instruction accesses". Test it in game (e.g. switch characters or something), and if it accesses the new character, then you can do an AoB injection on that instruction and do whatever you want with it.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
VysseEnzo How do I cheat?
Reputation: 0
Joined: 08 May 2015 Posts: 5
|
Posted: Sat Dec 12, 2015 9:41 am Post subject: |
|
|
| ParkourPenguin wrote: | No, you shouldn't mention the game's name.
Doing that with the pointerscanner could help, but it also might not result in any pointers that are consistent between game restarts. If that's the case, then injecting some memory that will copy the address of the current character would probably work, depending on what instructions access the address.
Check what instructions write to the address of your value (not the address of the pointer, but the address pointed at by the pointer). Then, play around in the game a bit, and see what instructions pop up, when they pop up, and how often they pop up. If you can't find any good instructions that write to it, try searching more generally for instructions that access it, following the same steps.
Starting at the most commonly run instructions, click on "show disassembler", right click on that instruction in the disassembler, and select "Find out what addresses this instruction accesses". Test it in game (e.g. switch characters or something), and if it accesses the new character, then you can do an AoB injection on that instruction and do whatever you want with it. |
I actually found a great tutorial that went over three methods for finding addresses that change. The first method was pointers which won't work here. The second method was AOB injection which from what I can see there are too many addresses that are accessed so that won't work. The final method that I haven't tested yet is finding it by a signature. This should work but brings up another issue. I need to do this in VB.Net because essentially I want a program that pops up with a notification when this cooldown is almost done. Now I've found a way to scan for a signature of bytes but not one that allows me to have wildcards. I'm out atm so can't do much and may not even need wildcard support and if I do I think I know what I can do but just in case does anyone know of a tutorial that covers this or a snippet? If not I think I can figure it out and thanks for the advice so far.
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4715
|
Posted: Sat Dec 12, 2015 9:55 am Post subject: |
|
|
I don't think you understand what an AoB injection is.
The difference between an AoB injection and a code injection is that a code injection uses a constant address as a location to override code for a jump to your newly allocated memory. An AoB injection scans for that code using a signature, so that it can replace it with a jump to your memory. The signature is a part of the AoB scan.
If you mean to use a signature to find whatever structure that address is a part of, then I really wouldn't rely on that if I were you, since most of the values could change randomly. That would be harder than finding a good pointer to the address.
Regardless, If you're sure that all the instructions that access that address access other addresses, then there isn't much that you can do with those instructions directly. You can try finding what instructions access a pointer to that address (doesn't have to be a static pointer), and do an AoB injection on one of those that'll traverse the pointer path and copy the end address.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
Studio80 Advanced Cheater
Reputation: 2
Joined: 12 Sep 2012 Posts: 83
|
Posted: Sun Dec 13, 2015 5:27 pm Post subject: |
|
|
Just play with the last offset of the pointer. There is a chance you will find other options. This works for many strategy games. Or you can use the offset of the pointer until you reach the adres of the other character. It's going to save you a lot of time!
Just an example of what I mean.
Lets say the value is stored in: 02C45560
And this is the pointer:
| Code: | | Game.exe+04CF078 547 4CF 7C 4 Points to: 02C45560 |
Lets say that the second value is stored in: 02C45000
Just add the pointer to the list and double click on it. When you do an other window will open and you will see the offsets. Every time you change the offset the adres will change. Start with the first one on top until you reach the adres of the second value.
I used this method many times and its going to save you a lot of time and you will know for sure that you're using the correct pointer.
You mentioned that it's an online game. Many online games store their game stats on servers, this might be your case. You're only changing the numbers on your screen which is locally but not on the server. That means that you can't make a trainer for this game unless you could bypass their protection which is hacking in their system LOL
|
|
| Back to top |
|
 |
VysseEnzo How do I cheat?
Reputation: 0
Joined: 08 May 2015 Posts: 5
|
Posted: Sun Dec 13, 2015 6:34 pm Post subject: |
|
|
| Studio80 wrote: | Just play with the last offset of the pointer. There is a chance you will find other options. This works for many strategy games. Or you can use the offset of the pointer until you reach the adres of the other character. It's going to save you a lot of time!
Just an example of what I mean.
Lets say the value is stored in: 02C45560
And this is the pointer:
| Code: | | Game.exe+04CF078 547 4CF 7C 4 Points to: 02C45560 |
Lets say that the second value is stored in: 02C45000
Just add the pointer to the list and double click on it. When you do an other window will open and you will see the offsets. Every time you change the offset the adres will change. Start with the first one on top until you reach the adres of the second value.
I used this method many times and its going to save you a lot of time and you will know for sure that you're using the correct pointer.
You mentioned that it's an online game. Many online games store their game stats on servers, this might be your case. You're only changing the numbers on your screen which is locally but not on the server. That means that you can't make a trainer for this game unless you could bypass their protection which is hacking in their system LOL |
Yeah if you read what I said I just need to read the value not change it. I am just wanting to code something in VB.Net that notifies me when the cooldown is done or almost done so I can resuse this item to make it go back up.
|
|
| Back to top |
|
 |
Studio80 Advanced Cheater
Reputation: 2
Joined: 12 Sep 2012 Posts: 83
|
Posted: Sun Dec 13, 2015 9:30 pm Post subject: |
|
|
Huh, but you said that you already found a pointer. So if it works you could change the offsets and might get the cooldown of the second character.
Else you have to scan for the second one like you did with the first one.
|
|
| Back to top |
|
 |
VysseEnzo How do I cheat?
Reputation: 0
Joined: 08 May 2015 Posts: 5
|
Posted: Sun Dec 13, 2015 11:00 pm Post subject: |
|
|
| Studio80 wrote: | Huh, but you said that you already found a pointer. So if it works you could change the offsets and might get the cooldown of the second character.
Else you have to scan for the second one like you did with the first one. |
Yes but how to automatically find the offset? I need to do this for more than just a few characters.
|
|
| Back to top |
|
 |
|