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 


A Mix Between Introduction, Greetings and Perplexion!

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
omegacenti
How do I cheat?
Reputation: 0

Joined: 15 Dec 2016
Posts: 2

PostPosted: Thu Dec 15, 2016 3:56 pm    Post subject: A Mix Between Introduction, Greetings and Perplexion! Reply with quote

This was originally formatted as a private message, but the forum software told me I can not PM users yet, which I acknowledge is for spam purposes. If anything reads a little funny it is probably because I missed something in my proofreads!
Apparently URL's are out of the question too I will leave the thread number in place of the URL's then! (I will edit them back to URL's once I am cleared for it)


Before I get into the nitty gritty, I just wanted to say after having tried my hand at building a cheat table that sticks I am amazed at Pangolin's cheat table for risk of rain! I spent about 8 hours yesterday trying to understand exactly how to get the appropriate information out of Risk of Rain so that variables would persist after level change / restarting the application!

I found the first thread for risk of rain didn't contain very much information or the information was severely outdated 569424

I did glean from the previous thread that when I did try for myself to get a working table up and running I would apparently (according to the thread comments) run into some peculiar happenings with pointers and a bit of code that
appears to be used by every single variable of note!

This is what I got when trying to locate the variable time (which apparently is a double)
Code:

00509F01 - DD 00  - fld qword ptr [eax]
00509F03 - DD 1F  - fstp qword ptr [edi] <<
00509F05 - 5F - pop edi
00509F06 - 5E - pop esi

replacing that string with 90/NOP is a very bad thing. It crashes the game as soon as you unpause it.

An interesting set of events however is if you restore the code before you unpause it, the game runs fine as if nothing ever happened. However, replacing the value of time at the address found works flawlessly right up until you die/change level/restart the application (which Chapter 6 Part 2 of CheatEngineTutorial explained happens often)

So! I started trying to dig around for the addresses that accessed/wrote to that variable, tried more information > easy pointer copy and then searching for 4 bytes in hex for the easy pointer bytes. Nothing shows up. At this point I was thoroughly confused but determined! Roughly 6 hours later, red-eyed and essentially brain-dead, I managed to get to sleep and work on trying to find out where I was going wrong.

The code that deals with manipulating a lot of variables is a strange one to me being straight out of the tutorial. I felt pretty good after I tackled the strawman that was the tutorial, only to realize just how formidable
actual games were going to be! Lesson learned in that regard! Here's the "manipulate ALL the things" code (I think).

Apparently I can't even find it anymore
It was something alond the lines of

Code:
mov [edi],ebx


It almost feels like this game randomly switches out what type of functions it even uses to process variables!

However, I tried another google query and finally came upon a post where Pangolin left us an amazing cheat table! 5699082#5699082

A gigantic 1.7MB! (As an occasional lurker this was a very big table to what I had seen usually) So I opened it up in notepad++ to see if I could divine the way Pangolin came about finding the time variable and make it actually stick!

I tried everything I garnished from the cheatengine tutorialx64 but it appeared that risk of rain was impervious to it Confused

This led to a very long google query chain trying to find out what the heck is actually going on with something that looks like a label but has an operator applied to it

Code:

aobscan(time, 6D 52 52 41 00 00 00 00 00 00 00 00 00 00 00 00)
label(_time)
registersymbol(_time)

time-7d0:
_time:


I saw Pangolin had an aobscan with format (time, bytes), and I tried searching google for aobscan syntax, but I came up short. I am going to try searching through the autoassembler tutorial subforum a few times more.

Code:

time-7d0:
_time:


I think _time: is a symbol right?
but... what the heck is "time-7d0":
I think 7d0 is 2000
so time-7d0 might be something that aobscan finds with interacting with the word time and then whatever that result is, subtract like 2000 from the address? maybe time-7d0 is some kind of pointer offset or something?

How did Pangolin come up with the math required to get "3.2109375 = 59 sec" ?

What is the purpose of the giant structures listed at the end of the cheat table?

I am a bit of an older gamer and I really enjoy learning! Well, I finally stopped lurking and passively using others' cheat tables on occasion and signed up to cheatengine forums.
The forums tutorials have been somewhat helpful, but the tutorials aren't in any particular order and sometimes instructions in the tutorials assume previous knowledge. If I could find like a book or even a mentor I would be ecstatic! Very Happy I would like to think I am in this for the longhaul as I would like to be able to contribute to the community with both first-order stuff like tables and what not, but further on down the line I also would love to be able to pass off this information in a clear and concise manner.

Again, just wanted to say as a gamer who finally tried to put together a table I am beginning to appreciate just how much work was put into that table Pangolin created!

Just a little side note, I put quite a bit of effort into searching,studying,googling, and proofreading for this post. I notice people on cheatengine forums are pretty respectful and what not, but I am still anxious about things from other forums, such as RTFM, lmgtfy etc. I hope people here enjoy learning and teaching as much as I do. Ask me anything about Kerbal Space Program and you will find out!
Back to top
View user's profile Send private message
Kavvman
Master Cheater
Reputation: 2

Joined: 17 Apr 2004
Posts: 316

PostPosted: Thu Dec 15, 2016 6:13 pm    Post subject: Reply with quote

You are right, time-7d0: means after aobscan finds these bytes at an address ( aobscan(time, 6D 52 52 41 00 00 00 00 00 00 00 00 00 00 00 00) ) and assigns the address to time, 7d0 is subtracted from time and then that address accessed.

7d0 is hex for 2000. So for example, aobscan finds the time at 92ace, time-7d0 would mean we're accessing the address at 92ace-7d0 which is 922FE. The author did this to have a stable aob i would assume (scan 7d0 bytes ahead instead of at -7d0), can't really tell unless i study the game.

The structures you speak of are for data dissect window. Open Memory viewer then ctrl+D. That is how the author was able to differentiate and separate his cheats from the rest of game's data.

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

Joined: 15 Dec 2016
Posts: 2

PostPosted: Sun Dec 18, 2016 2:18 pm    Post subject: Reply with quote

I appreciate the response Vizzion Smile Sorry about the appreciation being so late. Wish I could actually pick Pangolin's brain though.

I did look at the data dissect structure while trying to create a table but it was really just a shot in the dark for me with no experience. I am still trying to find book suggestions. Tried the IRC but it was dead quite in there for 12 hours.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking All times are GMT - 6 Hours
Page 1 of 1

 
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