View previous topic :: View next topic |
Author |
Message |
larcerkev Newbie cheater
Reputation: 0
Joined: 17 Aug 2012 Posts: 17
|
Posted: Sat Mar 09, 2013 9:44 pm Post subject: Extracting data from Java based game? |
|
|
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 |
|
 |
larcerkev Newbie cheater
Reputation: 0
Joined: 17 Aug 2012 Posts: 17
|
Posted: Tue Mar 12, 2013 1:28 pm Post subject: |
|
|
I guess no responses... Oh well, I'll keep at what I'm doing then. |
|
Back to top |
|
 |
SteveAndrew Master Cheater
Reputation: 30
Joined: 02 Sep 2012 Posts: 323
|
Posted: Tue Mar 12, 2013 1:47 pm Post subject: |
|
|
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
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! 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 |
|
 |
larcerkev Newbie cheater
Reputation: 0
Joined: 17 Aug 2012 Posts: 17
|
Posted: Tue Mar 12, 2013 6:49 pm Post subject: |
|
|
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 |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Wed Mar 13, 2013 12:29 am Post subject: |
|
|
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 |
|
 |
larcerkev Newbie cheater
Reputation: 0
Joined: 17 Aug 2012 Posts: 17
|
Posted: Wed Mar 13, 2013 9:39 am Post subject: |
|
|
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 |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Wed Mar 13, 2013 10:02 am Post subject: |
|
|
Well in that area I don't know how to Decrypt the Character Codes. |
|
Back to top |
|
 |
larcerkev Newbie cheater
Reputation: 0
Joined: 17 Aug 2012 Posts: 17
|
Posted: Thu Mar 14, 2013 11:58 pm Post subject: |
|
|
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 |
|
 |
foxfire9 Advanced Cheater
Reputation: 0
Joined: 23 Mar 2012 Posts: 57
|
Posted: Sat Mar 16, 2013 9:33 pm Post subject: |
|
|
Making a Bot takes time. Just relax and try making it. |
|
Back to top |
|
 |
|