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 


Extracting data from Java based game?

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General Gamehacking
View previous topic :: View next topic  
Author Message
larcerkev
Newbie cheater
Reputation: 0

Joined: 17 Aug 2012
Posts: 17

PostPosted: Sat Mar 09, 2013 9:44 pm    Post subject: Extracting data from Java based game? Reply with quote

So I recently found a game that's programmed in Java that I want to attempt to make a bot for, but I'd like to extract some data from the memory, the only issue is that due to it being Java the memory is read/write and often moves locations. I was wondering, has anyone ever attempted to extract data from a Java game? What might be a good approach to even starting?

Edit: As a little progress, I have found a somewhat consistent (25% of the time) method where I can extract where my player data is stored by hooking a function that modifies my data. But I am searching for more consistency so I can hopefully do many more things with the memory.
Back to top
View user's profile Send private message
larcerkev
Newbie cheater
Reputation: 0

Joined: 17 Aug 2012
Posts: 17

PostPosted: Tue Mar 12, 2013 1:28 pm    Post subject: Reply with quote

I guess no responses... Oh well, I'll keep at what I'm doing then.
Back to top
View user's profile Send private message
SteveAndrew
Master Cheater
Reputation: 30

Joined: 02 Sep 2012
Posts: 323

PostPosted: Tue Mar 12, 2013 1:47 pm    Post subject: Reply with quote

Well if you think about it, the game itself always knows where that data is. So there is always some way it's keeping track of it... The trick is figuring out how it's keeping track of it, and using that same method to get a hold of that data... Since you can find your player data (or whatever data your after) that's already half the battle Wink

You say it often moves? You mean like the address changes where it's stored like for example when the next level loads or something like that?

Because Java doesn't deal directly with memory management, and uses garbage collection and things like that, and it's all running in a virtualized environment I see how that can make it tricky... I've heard that there aren't any pointers in java? Is that true?

So if so how is it that your even able to 25% of the time get the right data you need? Is it like a static address that sometimes (about 1/4 of the time) actually does contain your data?

I have an idea, since Java is a VM kinda like Flash (and I've hacked some flash games before) you can do a find what accesses, and there should be a shared instruction where many values pass through... If you can figure out how to differentiate between your data and other data, you can hook that shared instruction and read your data from it! Since you aren't having to write to it, there isn't a chance of crashing really, so you can play around with different filters trying to get the right data from it! Smile I think it would work! Even though it's a virtual machine it's code still has to be converted into machine code after all at some point!

What game is the if you don't mind saying? Or PM me if you don't want to disclose it publicly... I haven't ever hacked a java game before so I think I would try it, and try to help you out with this...

_________________
Back to top
View user's profile Send private message
larcerkev
Newbie cheater
Reputation: 0

Joined: 17 Aug 2012
Posts: 17

PostPosted: Tue Mar 12, 2013 6:49 pm    Post subject: Reply with quote

I currently have to find a function that accesses my play data, and I write a code cave in the first free section of Executable memory that I can find in the game. The problem is that usually that function that I make a code cave for isn't always the same array of bytes so it makes it hard to scan for through a program and sometimes it is writing to the other players data structures when they're running around on the map. It really doesn't make too much sense how after 10-15 minutes of play time the function changes and only writes to my data.

Edit: I can't PM, :L any chance you might be able to PM me a skype or something?
Back to top
View user's profile Send private message
foxfire9
Advanced Cheater
Reputation: 0

Joined: 23 Mar 2012
Posts: 57

PostPosted: Wed Mar 13, 2013 12:29 am    Post subject: Reply with quote

It's practically inside your computer, you can't play a game if the data has no mirror image to reflect the game you're playing; don't dump any files that relates to that Game it might be useful, just collect for now.

In the game Runescape it's very hard for me at first to track the Source Files.

+After 10-15mins they monitor your data from your computer to compare their data to their server.

For me you have 2 (Two) options here, one is to get the Source Files and the second is bit hard but needs a dexterity and timing scanning Code Caves. The 3rd option is to ask someone privately that has some understanding about that Game.
Back to top
View user's profile Send private message
larcerkev
Newbie cheater
Reputation: 0

Joined: 17 Aug 2012
Posts: 17

PostPosted: Wed Mar 13, 2013 9:39 am    Post subject: Reply with quote

foxfire9 wrote:
It's practically inside your computer, you can't play a game if the data has no mirror image to reflect the game you're playing; don't dump any files that relates to that Game it might be useful, just collect for now.

In the game Runescape it's very hard for me at first to track the Source Files.

+After 10-15mins they monitor your data from your computer to compare their data to their server.

For me you have 2 (Two) options here, one is to get the Source Files and the second is bit hard but needs a dexterity and timing scanning Code Caves. The 3rd option is to ask someone privately that has some understanding about that Game.


Getting the source files is easy since it's made in Java, viewing the ByteCodes is easy, but I can't say I've even looked at those. They also had the class names and everything jumbled up such that they don't make much sense, and a couple of the folders/files have a name longer that 256 chars so I run into issues extracting them from self extracting archive.
Back to top
View user's profile Send private message
foxfire9
Advanced Cheater
Reputation: 0

Joined: 23 Mar 2012
Posts: 57

PostPosted: Wed Mar 13, 2013 10:02 am    Post subject: Reply with quote

Well in that area I don't know how to Decrypt the Character Codes.
Back to top
View user's profile Send private message
larcerkev
Newbie cheater
Reputation: 0

Joined: 17 Aug 2012
Posts: 17

PostPosted: Thu Mar 14, 2013 11:58 pm    Post subject: Reply with quote

Well I'll just throw the name of the game out there, it's PokeMMO. I've found that I need to hook 4 functions to create a functional bot. The only problem is that due to the JVM nature, the array's of bytes for those functions seem to always differ.

@SteveAndrew: I still can't PM users back. :L
Back to top
View user's profile Send private message
foxfire9
Advanced Cheater
Reputation: 0

Joined: 23 Mar 2012
Posts: 57

PostPosted: Sat Mar 16, 2013 9:33 pm    Post subject: Reply with quote

Making a Bot takes time. Just relax and try making it.
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