Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


God mode when one hit kills you
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Wronschien
How do I cheat?
Reputation: 0

Joined: 30 Nov 2015
Posts: 8

PostPosted: Wed Dec 23, 2015 9:31 am    Post subject: God mode when one hit kills you Reply with quote

Hello, I'm trying to get a god mode in a game where one hit kills you.
All the tutorials I could find only talk about detecting a health-meter value, which this game doesn't have. I'm new to CE and can't think of a way.

Are there any methods to search for that ?
Back to top
View user's profile Send private message
abystus
Expert Cheater
Reputation: 1

Joined: 09 Dec 2010
Posts: 140

PostPosted: Wed Dec 23, 2015 9:35 am    Post subject: Reply with quote

Start by finding the "living" flag which is usually a 0 or 1 depending on the game (ex: 1 while living, 0 when dead). Once you find this, you need to disable the routine that sets it to the death value when you die. To do this, find out what writes to that address, then die (something should write when you die). Once you have the routine in question (listed in the window from the previous step), you should be able to modify the code in such a way that the death value is never set (several ways to do this). Alternatively, you could find what reads that address, then modify the code in such a way that the game always reads you as being the "living" value regardless of the current value at that address.
_________________
Hitler are you bored? Watch some of my hacks here. Want 2 gb of online storage space for free? Get Dropbox for computer, phone, etc...


Last edited by abystus on Wed Dec 23, 2015 9:42 am; edited 3 times in total
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4714

PostPosted: Wed Dec 23, 2015 9:36 am    Post subject: Reply with quote

Unknown initial value, then changed / unchanged scans while you're alive and just after you die may result in something.
_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Wed Dec 23, 2015 12:39 pm    Post subject: Reply with quote

Ultimap.
Back to top
View user's profile Send private message
Wronschien
How do I cheat?
Reputation: 0

Joined: 30 Nov 2015
Posts: 8

PostPosted: Wed Dec 23, 2015 2:43 pm    Post subject: Reply with quote

ultimap ?

Anyway, I've found 4 values that switch between 0 and 1 when dying or respawning. I'm messing around the codes that write or access them, maybe I'll be able to do it but assembly really is not friendly to me !
Back to top
View user's profile Send private message
abystus
Expert Cheater
Reputation: 1

Joined: 09 Dec 2010
Posts: 140

PostPosted: Wed Dec 23, 2015 2:56 pm    Post subject: Reply with quote

Wronschien wrote:
Anyway, I've found 4 values that switch between 0 and 1 when dying or respawning. I'm messing around the codes that write or access them, maybe I'll be able to do it but assembly really is not friendly to me !


What is the name of the game? Also, if you lock the values (of those 4 addresses) to the value of "living" are you still able to die?

_________________
Hitler are you bored? Watch some of my hacks here. Want 2 gb of online storage space for free? Get Dropbox for computer, phone, etc...
Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4714

PostPosted: Wed Dec 23, 2015 3:03 pm    Post subject: Reply with quote

Ultimap: http://www.youtube.com/watch?v=T5sXoEEPFBQ

Also, don't freeze the values to test it, as CE might not write to the value fast enough in order to prevent you from dying. Replace the instruction that writes the dead value to the address with NOPs. It's usually safe to do that so long as the instruction in question doesn't modify the stack or the fpu stack.

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
Wronschien
How do I cheat?
Reputation: 0

Joined: 30 Nov 2015
Posts: 8

PostPosted: Wed Dec 23, 2015 3:05 pm    Post subject: Reply with quote

The game is Defy Gravity, I'd like to do that also for Ethan Meteor Hunter though.

I've tried to lock the values but didn't work, they're probably secondary values that are affected with death. That's why I'd like to better understand assembly code to find what the "master trigger" is.

edit : nopping didn't work either


Last edited by Wronschien on Wed Dec 23, 2015 3:09 pm; edited 1 time in total
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Wed Dec 23, 2015 3:07 pm    Post subject: Reply with quote

Wronschien wrote:
ultimap ?
-CE feature that was designed for things like this.
Back to top
View user's profile Send private message
abystus
Expert Cheater
Reputation: 1

Joined: 09 Dec 2010
Posts: 140

PostPosted: Wed Dec 23, 2015 3:11 pm    Post subject: Reply with quote

Wronschien wrote:
The game is Defy Gravity, I'd like to do that also for Ethan Meteor Hunter though.

I've tried to lock the values but didn't work, they're probably secondary values that are affected with death. That's why I'd like to better understand assembly code to find what the "master trigger" is.


I agree with ParkourPenguin in that Cheat Engine may not be writing the value quick enough to prevent the death routine from firing normally. Find the line writing the value to said address when you die, right-click and choose to "Replace with code that does nothing". Do this for each address and see if that resolves the issue. The other option is Ultimap, though setting up/using this can be a big PITA for certain games/computers.

_________________
Hitler are you bored? Watch some of my hacks here. Want 2 gb of online storage space for free? Get Dropbox for computer, phone, etc...
Back to top
View user's profile Send private message
Wronschien
How do I cheat?
Reputation: 0

Joined: 30 Nov 2015
Posts: 8

PostPosted: Wed Dec 23, 2015 6:37 pm    Post subject: Reply with quote

Well no luck, nopping all these didn't change a thing, I managed to run ultimap but this seems too advanced for my basic knowledge.

I guess I won't do it then, pity but no matter, thank you all !
Back to top
View user's profile Send private message
++METHOS
I post too much
Reputation: 92

Joined: 29 Oct 2010
Posts: 4197

PostPosted: Wed Dec 23, 2015 9:31 pm    Post subject: Reply with quote

If you can find the call that gets executed during the death sequence, a simple jump or nop will probably solve your problem.

Don't give up on ultimap if you are able to run it; it's not that difficult to figure out, comparatively speaking.
Back to top
View user's profile Send private message
Wronschien
How do I cheat?
Reputation: 0

Joined: 30 Nov 2015
Posts: 8

PostPosted: Thu Dec 24, 2015 2:41 am    Post subject: Reply with quote

Actually one of the problems with this game is that the function calls don't seem attached to the main exe (I think the game is via XNA btw), so I can't filter this way and don't know which other routine is the right one.



Edit :

Ah I went forward eventually, I found a call that can be nopped and then no hit taken so god mode indeed (at least from one hazard, I would have to test from other ones). But the problem is that the instruction is dynamically allocated and the address it points to also changes dynamically.


I've tried to set up an aobscan as was hinted to me in a previous topic, the call takes up 6 bytes (so 6 nops) but I can only know the first 2 to disable the cheat (I took the structure from Rydian's tutorial) :

Code:
[ENABLE]
aobscan(nodamage,8B 43 10 8B 48 10 8B 15 ?? ?? ?? ?? 39 09 FF 15 ?? ?? ?? ??)
label(_nodamage)
registersymbol(_nodamage)

nodamage+10:
_nodamage:
db 90 90 90 90 90 90

[DISABLE]
_nodamage:
  db FF 15 <- what to put there ?

unregistersymbol(_nodamage)

Also the game crashes as soon as I enable this script, I thought that would only crash when I disabled it, allowing me to check that it works anyway, just like a manual nopping of the call does.


Here is a screenshot of the memory viewer where the instruction in question is the highlighted one :



1.png
 Description:
 Filesize:  69.1 KB
 Viewed:  21220 Time(s)

1.png


Back to top
View user's profile Send private message
ParkourPenguin
I post too much
Reputation: 152

Joined: 06 Jul 2014
Posts: 4714

PostPosted: Thu Dec 24, 2015 10:03 am    Post subject: Reply with quote

First of all, make sure that AoB signature is unique (set writable&executable checkboxes to grey and scan for it).

Secondly, your offset on where you're starting to NOP things is wrong. The first byte (8B 43 10 ...) is nodamage+0. The 15th byte (the call; ... FF 15 ?? ??...) is nodamage+E, not nodamage+10.

As for disabling the script, the only easy solution I can think of is to use Lua to back up the bytes. Here's a full Lua version of that script:
Code:
{$lua}
[ENABLE]
local res = AOBScan("8B 43 10 8B 48 10 8B 15 ?? ?? ?? ?? 39 09 FF 15")
if res == nil or res.Count ~= 1 then
  showMessage("Invalid AoB signature.")
  return
end
nodamageCheat = {}
nodamageCheat.addy = getAddress(res[0])+14
nodamageCheat.backup = readBytes(nodamageCheat.addy, 6, true)
writeBytes(nodamageCheat.addy, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90)

res.destroy()
[DISABLE]
if nodamageCheat ~= nil then
  writeBytes(nodamageCheat.addy, nodamageCheat.backup)
  nodamageCheat = nil
end

_________________
I don't know where I'm going, but I'll figure it out when I get there.
Back to top
View user's profile Send private message
mgr.inz.Player
I post too much
Reputation: 222

Joined: 07 Nov 2008
Posts: 4438
Location: W kraju nad Wisla. UTC+01:00

PostPosted: Thu Dec 24, 2015 10:30 am    Post subject: This post has 1 review(s) Reply with quote

@ParkourPenguin, There is readmem feature:

Code:
[ENABLE]
aobscan(nodamage,8B 43 10 8B 48 10 8B 15 ?? ?? ?? ?? 39 09 FF 15 ?? ?? ?? ??)
label(_nodamage)
registersymbol(_nodamage)

alloc(backup,256)
registersymbol(backup)
backup:
readmem(nodamage+e,6)

nodamage+e:
_nodamage:
db 90 90 90 90 90 90



[DISABLE]
_nodamage:
readmem(backup,6)

unregistersymbol(_nodamage)
unregistersymbol(backup)

_________________
Back to top
View user's profile Send private message MSN Messenger
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine All times are GMT - 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
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


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites