Users browsing this thread: 4 Guest(s)
Newbie wants to know how to rip sprites from Android game
#2
howdy! hope you dont mind the late response. im gonna try and break down the process the best i can--some finer details will change from game to game but hopefully itll get you started in the right direction. apologies in advance for the length of this post

programs:
- a hexidecimal editor (i personally like xvi32, http://www.chmaas.handshake.de/delphi/fr.../xvi32.htm)
- assetstudio (this is what youll use to get the assets into a format usable for you, it'll export things in png, wav, mp4, obj, whatever your heart desires) (https://github.com/Perfare/AssetStudio)

you may use:
- assetripper (specifically for unity games, its able to recognize prefabs and stuff that assetstudio isnt) (https://github.com/ds5678/AssetRipper)
- uabea (lets you extract files from things like data.unity3d files that assetstudio wont recognize. id go here first if assetstudio doesnt load smthn) (https://github.com/nesrak1/UABEA)


you seem to have the files on your computer already, so ill skip over that. first thing is to check for a cache folder, and if its encrypted.
an encrypted cache looks like this:
[Image: unknown.png]
the files, when viewed in a hex editor, will look something like this:
[Image: unknown.png]
and an unencrypted one:
[Image: unknown.png]
and the hex!
[Image: unknown.png]
the unityfs at the top is extremely important. your files are always going to be in a generic format--bin, dat, etc., but they do contain data for a specific filetype, and the header/footer will let you know! basically, if you get a file, pop it into a hex editor and check the top + bottom of the file for the file format. unityfs files are just a type of unity file, and can be opened w/ assetstudio as-is. you shouldnt need to do this for every file in a folder unless a specific file is giving you trouble. if one of them is a unityfs, then all of them are gonna be unityfs.

if your files are encrypted, then you can 1. decrypt them, or 2. look somewhere else for the files. i often find that games that dont just have a cache w/ the assets available have them somewhere else.

edit: im going to try my best to elaborate more on decryption, but i should note that this is... not easy. files are obfuscated for a reason, and if they were easily reversed then there would have been no point to encrypt them in the first place.
in order to decrypt a file, you need to know 1. what method it was encrypted in and 2. the encryption key. if you did some rummaging, im sure you could find other programs, but the program i am familiar with that has cipher features is kuriimu2. it can encrypt + decrypt files--its designed for modding games. figuring out the method can be difficult, looking around in the apk file for encryption details may help. search weird folder names and references to things you find--some companies use third parties to encrypt their files and that can provide more information on the method.

other places that files are stored! 1. obb files. this is another generic file format, that the play store uses to allow games to download extra information that they cant/dont want to store in the .apk. usually assets and such! these are a bit tricker to decipher the filetype, and they could be... practically anything. most commonly they are a .zip or similar--just convert the file to that type. you dont need to do anything fancy, just be sure that your file explorer allows you to edit file extension types and change the .obb to .zip/.rar/etc..
heres the header of an obb file that was a .zip:
[Image: unknown.png]
and the footer:
[Image: unknown.png]
doesnt give a ton of help, aside from letting us know that it contains other folders and files. if you get an obb file open, youre looking for some kind of resource file or folder. in unity, this file tends to be a
data.unity3d file, stored in bin > data. in this same layout, resource files are stored in android. just check for encryption and stuff!

small tangent, assetstudio cannot open data.unity3d files--go through uabea and extract the files you wanna rummage around in. whatever uabea extracts, assetstudio should be able to view!

2. resource folder within the apk
admittedly im a lot less familiar with this, but depending on the game the assets may be straight up stored in the apk. just rummage around for them like you would the others.

in summary, your workflow should be smthn like
look for cache > look for obb > look for other asset folders > upload to pc > inspect for filetype + encryption > open in uabea (if needed) > open in assetstudio/assetripper > extract wanted assets

hope this helps!! im more than happy to answer any further questions or help w/ any bumps in the road!
... and, for yourself, the sincere regards of your devoted,
Arsène Lupin
(they/them)
Reply
Thanked by: Red Lightfoot


Messages In This Thread
RE: Newbie wants to know how to rip sprites from Android game - by monlupin - 10-18-2021, 06:38 PM

Forum Jump: