 |
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Xero44 How do I cheat?
Reputation: 0
Joined: 14 Mar 2020 Posts: 2
|
Posted: Sat Mar 14, 2020 7:30 pm Post subject: Two questions from a beginner. |
|
|
I've been hacking a game for the past week now. I have found a lot of the addresses I needed to modify to get the effects that I wanted Via cheat engine. I know it is through memory manipulation, but my first question is:
Can you use these memory addresses to find the actual address in the .exe for hex editing? I am looking to make a permanent patch for a game I play, addressing some balance issues, and I have found quite a bit, but when it comes to the stats of the weapons I can't seem to find them, So I looked to cheat engine to find out the value. I.E. one weapon does 7 damage to health. I could modify it via cheat engine, but that would not be actually patching it. Is there a way to find the static addresses that assign these stats to the memory?
My second question is more of a shot in the dark, that I honestly don't think is possible, but I'll ask the experts.
If you have a game that has 6 characters, would it be possible to inject a 7th selectable character via script or some other hack? Seems like a stretch to me, but it would be interesting to learn, although if it manages to work, I imagine it would be quite complex.
|
|
Back to top |
|
 |
DanyDollaro Master Cheater
Reputation: 3
Joined: 01 Aug 2019 Posts: 334
|
Posted: Sat Mar 14, 2020 8:31 pm Post subject: |
|
|
1) If you want the effects of your scripts to be permanent you have to patch the exe code and save it, normally I have never done it with Cheat Engine (I think there is no possibility) but I do it with a debugger called Xdbg (There are many debuggers that implement this option).
2) Of course you can find the damage of a weapon, but you must have basic reverse engineering skills, I will show you the steps:
Considering a player with 100 life points and a weapon that does 5 damage, you must find the player's life and from there you can get the code that decreases life, reading the code you will find a part in which the damage of the weapon is subtracted from the life of the player, so something like:
where it could be assumed that:
eax = Player_Life
ecx = Weapon_Damage
from there you will have to understand how the damage of the weapon is loaded on the register ecx probably with an instruction like:
where "address" is a pointer to weapon damage, so you have found weapon damage.
There would also be a second method, that is, from the ammunition of the weapon you disassemble the structure hoping to find the damage of the weapon but I have never had luck with the second method (with the first yes).
3) You have not described the condition well but if you are referring to a multiplayer game with 6 players teams and you would like to add a seventh player it is an almost impossible action.
|
|
Back to top |
|
 |
Xero44 How do I cheat?
Reputation: 0
Joined: 14 Mar 2020 Posts: 2
|
Posted: Sat Mar 14, 2020 8:58 pm Post subject: |
|
|
Thank you very much for your reply. To better describe what I mean by the second one is,
In a singleplayer mode when you go to select a character you only have 6 characters to choose from. Could you add a 7th choice, new character to play as, by injecting that new character in via a script of some sort.
I know you can do similar things with LUA when it comes to different aspects of the games.
|
|
Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4702
|
Posted: Sat Mar 14, 2020 10:36 pm Post subject: |
|
|
1: That heavily depends on what language the game was coded in. If it's something statically compiled (e.g. C/C++), it should be easy by looking at the code accessing the value. That code should be part of an exe loaded into memory that is similar to the exe stored on disk. Patching the exe on disk shouldn't be too far different from changing it in memory- e.g. it won't use the same offset.
If it's written in some language using JIT compilation or interpretation, you'd need to find where the original bytecode is stored and change that. The way that requires the least knowledge or experience would be to use a decompiler, if you can find one for that particular language. You'd still need to extract the bytecode in a form readable by the decompiler.
2: Technically yes, that's possible, but it might not be practical, especially for a beginner. That would require reverse engineering that's most often best done by other tools (e.g. IDA) even in the simplest of scenarios.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
Back to top |
|
 |
|
|
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
|
|