Modifying game files through APK - Android Q&A, Help & Troubleshooting

Recently I began playing a game called Gigabit Offroad on my old Pixel XL, and i eventually got bored of the endless grinding the game required. To combat this, I navigated to the games data directory and changed a few simple values in the “com.gigabitgames.offroad” xml file. I was able to give myself virtually unlimited balance etc, however the power and grip capabilities of all cars are severely limited by the max upgrade value. I’m not a programmer, so i’m not very familiar with how such games function. I discovered that there was a “powertrain” category for each car in the xml, and when the cars were fully upgraded in game the string would read the same for each car, despite their differing performance. Changing these values resulted in crashes, so I can’t manipulate them for better stats. One of these lines looks like this:
Code:
name=“YotaCurrentPowertrainOption”>akJlx+NHZwzEMKo8ZZoyiw==</string>
I assume the incoherent characters in the string refer to a configuration file for each level of upgrade somewhere, which i believe would be a percentage of increase compared to the stock performance of each car, considering they all have the same characters. This leads me to believe that there is a configuration file for each car somewhere, but despite scouring the apk and the obb i could find no trace of anything. I would greatly appreciate it if someone who is familiar with Android and/or Unity programming could point me in the right direction. I understand that this is not a direct referral to a different string, as it is just characters and not a directory. As you can probably tell, i’m not very coherent in this field and I’ve pretty much stumbled my way into getting this far. I would greatly appreciate any help.
Thanks in advance,
Wilson

Related

Help locating game score data

What I am looking for is where the high score data is located on my TP. The games I am talking about is Beweled and Astraware casino. I am learning how to back up a lot of data using Sashimi. But my problem is finding what information to back up when it comes to the games.
With Sashimi it is a breeze to reload everything I like the way I like it after flashing. The only thing I have had an issue with is the high scores on the games. I am not familiar with registry entries, I don't have a clue. Although I did a compare before and after (using windiff) of my registry with the only change I did was play bejeweled for the after. There are changes to the hex data (don't know wth to call it) in the registry. Any thoughts on whether this info is how it knows the scores data?
I really have no clue what I am talking about but with a little guidance I am sure I can figure this out. Another thought was to try to uninstall the program and copy my old information to the registry after installing the program again. I just don't want to jack things up and am a bit fearful of messing with the registry.
Can anyone of you give me some insight?
Thanks in advance.
I am currently running NRGZ latest max rom

[Q] Interfacing with a java application

I'm developing a touch screen based system for controlling electronic music. As part of the development, we'll be building our own touch screen, but that's not going to be ready for some time. In the mean time, I need to start writing the software (which will be done in java), and I'm going to need a touch screen to use for testing.
So, I am NOT trying to write an application for the Galaxy Tab. I am writing a application that runs on the my desktop, and I'd like it to be able to get touch information from the Galaxy, in any way practical. I've looked into using an iPad for this, but it looks to be too much of a pain to be worth it. All I need is a way of my java application receiving the list of co-ordinates of touches from the tab, in real time. I don't need any higher level gesture interpretation (as I'll have to do that on my end for the final system anyway), just all the touch co-ordinates. Does anyone have a suggestion on the best way to go about this? Is there something in existence already to accomplish this easily, or is there any kind of java library I can use to make calls to a connected tab from my application? I've been googling around, but haven't found any particularly useful information on the subject, as the tab is chiefly meant to be a stand-alone item, not a pc peripheral. Any tips on where I might start looking would be a huge help. Thanks!
-cullam
cullambl said:
I'm developing a touch screen based system for controlling electronic music. As part of the development, we'll be building our own touch screen, but that's not going to be ready for some time. In the mean time, I need to start writing the software (which will be done in java), and I'm going to need a touch screen to use for testing.
So, I am NOT trying to write an application for the Galaxy Tab. I am writing a application that runs on the my desktop, and I'd like it to be able to get touch information from the Galaxy, in any way practical. I've looked into using an iPad for this, but it looks to be too much of a pain to be worth it. All I need is a way of my java application receiving the list of co-ordinates of touches from the tab, in real time. I don't need any higher level gesture interpretation (as I'll have to do that on my end for the final system anyway), just all the touch co-ordinates. Does anyone have a suggestion on the best way to go about this? Is there something in existence already to accomplish this easily, or is there any kind of java library I can use to make calls to a connected tab from my application? I've been googling around, but haven't found any particularly useful information on the subject, as the tab is chiefly meant to be a stand-alone item, not a pc peripheral. Any tips on where I might start looking would be a huge help. Thanks!
-cullam
Click to expand...
Click to collapse
Ok, well I'm going to try and be brief and not turn this into an Android programming essay so here goes.
You have a couple of different routes you can take.
1. If you use eclipse for development and you hook up your tablet, you can watch the log and see that it prints useful information constantly, basically debug output that tells you whats going on in the background. If you just want to look at it, you can probably see it there.
2. This would be my choice, but I'm a programmer so I love a new adventure. I would recommend you just write a quick app for your tablet that pumps out the location of a touch whenever you touch the screen. If you are familiar with sockets and such, you can just write a simple server Java app that collects packets of data from your tablet, and just have the tablet send out a multicast packet containing the coordinates you touch every time you touch the screen.
There are probably some other ways, but if you are already going to be doing the bulk of the project in Java, you aren't looking at a difficult learning curve to write a basic little android app.
Thanks! I'll definitely try the eclipse trick. And yeah, writing an app on the tab is probably going to be necessary, but MUCH easier than having to learn a new language, and get an official license to do one on the iPad. The thing I'm really unsure about is the available communication methods for getting data back and forth between them. I was hoping there might be some sort of java api to get calls going through the usb connection. So I'll guess I'll see what the Eclipse hook up shows me.
cullambl said:
Thanks! I'll definitely try the eclipse trick. And yeah, writing an app on the tab is probably going to be necessary, but MUCH easier than having to learn a new language, and get an official license to do one on the iPad. The thing I'm really unsure about is the available communication methods for getting data back and forth between them. I was hoping there might be some sort of java api to get calls going through the usb connection. So I'll guess I'll see what the Eclipse hook up shows me.
Click to expand...
Click to collapse
apple stuff is crap anyways, leave them to their pretentious commercials and closed minded development.
as far as the android sdk, I think it will take you a lot less time to just use network communications. google socket client/server java tutorials and you should be set to go in about 2 hours. I have implemented it, its all straight forward, and imho probably an easier app to write that something that pumps out of the usb port
Awesome, thanks

Extracting Android geolocation cache from NAND memory dump / vizualization

Hello all,
I am a newbie to Android just like I am a newbie to that forum. I'd just like to share something I did recently, it might be interesting to some of you.
To start with, I am not at all a mobile guy. My hobbies are related to big and noisy machines, password security and GPU cracking.
I have an old HTC Wildfire though and I recently had to analyze an Android application (LastPass) so that I can perform offline GPU password recovery against its local database. Which in turn made my life more interesting
Until that point I never bothered to play with my phone as I only used it for calls, messaging and occasional browsing. My job is related to embedded development (mostly infotainment systems) so that at least I have some knowledge about that stuff...not exactly Android though, more like linux-based systems.
So while playing with LastPass, I quickly get accustomed to adb then it turned out LastPass stores its database on /data/data which apparently I had no access too. Reading some stuff about rooting my phone lead me to the impression it is going to be a problematic thing to do (disabling S-ON, updating bootloader, flashing other images and I have no experience with this). Well, I quickly found out there is a local exploit for Android <2.3 which had a funny starcraft name, so I tried it. To my surprise it worked and I was able to acquire the needed data.
Then after some time I decided to look at that /data filesystem again and I was surprised to find out quite a lot of stuff (contacts, messages, browsing history, all in sqlite3 databases). But I was really like struck when I discovered cache.wifi and cache.cell. I couldn't believe my eyes, then I googled it and it turned out this is all old news. But basically it's quite nice way to know where the phone owner was located some time ago. Then of course, Android limits that to last 200 wifi access points and last 50 GSM BTS'es.
Then suddenly I remembered the fact that this data is kept on NAND memory with a filesystem (yaffs2) that does software wear-leveling. Which means, we are likely to have several versions of the logical block split over several physical blocks.
So out of curiousity, I quickly coded some quick'n'dirty scripts to nanddump the device, then some ugly C code to carve the dump, looking for geocache data. Using the data recovered that way, we create a simple HTML file with some javascript to display all the GPS poistions over google maps. The end result was fun, I was able to remember where I was say one year ago (and my memory is bad).
The PoC code is attached. It's rather ugly and coarse, but it works (for me ). It runs on linux only (sorry). Feel free to experiment with it.
Regards,
Milen

Finding packets and IP from decompiled APK?

So I'm working on a project on making an online android game work on PC from packet sending / receiving. Limited graphics.
Basically all packets are sent in a very unencrypted way, using very easy text and integers.
Easily picked up from packet sniffing, IP, Data etc. However, return results seems to be encrypted according to some packetscanning application for android. Unsure as packetscanning for android seems a bit meh. As I cannot get the game to launch thru bluestacks as hardware is listed as "Unsupported", I cannot find out for sure. Else I could have gotten more data and from that and could just have made the entire game based on the scanned sent/recieved packets coming from bluestacks. However the game also sends login info with each packet similar to
SendPacket(RetrieveResources,xxx,yyy,date,time,username,authid)
Username and authid is based of android hardware ID, which could easily be recoded into the java application.
But then I cannot find how it bases the authid and username of hardare id. Or how the application tells the server to create a new user.
Now, Myself I am an Java developer, however as I've never worked on Android applications previously this stuff is zzzz compared to real Java. I've managed to get about 99% source code from decompiling, deobfuscating and extracting the .dex file inside the application.
However, here's where things just go into full wtf-mode. I've extracted over 200 .class files into their correct folders and such, however, as confusing as this is. I simply cannot find how the game functions, or where it stores the IP and such, is it stored in an offsite .xml file? Storage file? Database? Resource file? Browsing through unlimited lines of scrap code, that seems irrelevant to the game, Facebook connections, Amazon, Google play purchase, Crittercism, GooglePlay classes etc. But noone of them actually seem to hold any useful data and alot of stuff actually just seems to be "Drag and Drop this into your application then call functions from it" like, "Authenticate to Facebook". I've managed to find alot of things loading .obb files, that doesnt seem to exist at all, tho the game pretty much goes "!blabla.obb" "CreateObb();" The game does not exist on facebook at all, just uses it to recieve ProfilID as an Login ID.
The game also uses UnityPlayer which seems to be the "Launch" class, which I've browsed thru but found nothing relevant. I found alot of .classes that seems similar to each other aswell containing the same stuff. I've also found alot of stuff that actually seems to be packet sends and connections, however, there is nothing that points that it is towards the game, but rather connections for i.e google play services.
Biggest .class>.java file is about ~40kb. Which for mee seems small, as projects I usually work with is well about 10mb inside the main.class then calls for unnecessary stuff from side classes.
Anyone mind pointing out on how android applications handles connections?
Is the files really no bigger than 40kb and just scrambled into tons of subclasses?
Feels like I'm missing obvious stuff that should be right there declared as a variable, but I can't find it.

Tip for Code Editor on Android

I search a good Code Editor for Android. Since there are many Texteditors available, i didn't want to try out all of them, to find the right one. So maybe someone here can please suggest a good editor for me? In the first line, the Editor should be load fast, also with huge Textfiles with 500Kb or more. The App should also find the correct encoding for the File automatically, since i would like to use it with Windows and Unix/Linux Files. Brace Matching is needed, Syntax Highlighting for files like PHP, HTML, CSS, Apache Config and so on are welcome, but not a real must have. Also, if there would be code folding support, this would be a great thing. Its not important, if it is a paid or free app. I would purchase the app, if it is good enough. I have tried QuickEdit, which seems to be really fast, but i doesn't have brace matching. DroidEdit seems to have all features, but it was very slow on a Galaxy S7, compared to QuickEdit. With Quoda i miss Syntax Highlightning but the App crashes with large files. TurboEdit doas not load my Files either, i don't know why. So the closest things are Quoda and QuickEdit.
Maybe someone here have other suggestions? Maybe with additional feature where i could use this App also as fast Viewer for large Logfile?
May be this one be comfort for you
I use Dcoder, Mobile Compiler IDE - play.google.com/store/apps/details?id=com.paprbit.dcoder&hl=ru (sorry, I can't post outside links)
It's fast and supports many languages. But i didn't test it with a big files.
It's free, but have ads, that don't work without internet connection. =)
what is a code editor?

Categories

Resources