So, this game's images have a .png extension but I'm not sure if they have been protected or if they are packed in some form.
Spine files (skel, atlas) and plist are not protected, so maybe images aren't either, either way it's beyond my skillset.
Can someone look into the .png files and see if they are packed in some way or protected?
https://www.mediafire.com/file/n1p0i8stc...0.rar/file
Here's an entire archive, I think it corresponds to a single character.
I'd think the forum site that bihaiorg had just posted could lead us to the answer!
You'll just need the game's APK and a hex editor, and then you'll have to follow the instructions in the site to get the sprites. The site's text is in Chinese though, but just translate the site to English and you'll be fine to go.
Nice you like this. And I am working on decompiling the .bobj anim file format. It seem to be converted from fla to cocos-2d. Hope to have luck...
@bihaiorg, I need help on how to extract and convert all of this game's sprites, as i'm not good at hex editing stuff.
By the way, any luck yet on decompiling the .bobj anim file format yet?
Been so long, didn't see this.
I still have the files from when I originally asked this (1.0.20), there are unencypted spine files there (.skel and .atlas) these can be viewed with
http://en.esotericsoftware.com/spine-skeleton-viewer or reimported into the software, but the images are missing obviously.
I checked the latest version I could find (1.7.0) and there are still unencrypted spine files there, if I manage to decode the images then it will be easy to just load the animations on spine.
I have no idea what to do with the info on the chinese website, it looks like they managed to fix the image files but I have no clue how to use that info to actually make something.
Here are some more files if anyone wants to give it a go.
https://www.mediafire.com/file/ou28xw82q...0.zip/file
From looking around it looks like bihaiorg has the image decryption figured out, can't browse that forum without a qq account to check if he ever posted an exe or an useable script.
Here's (I think) his github.
https://github.com/ipengci
Didn't post any tools there either.
Rufaswan managed to crack the code and decrypt the image headers. Now I have to match the images with their corresponding .skel and .json spine files.
@AkashiYasuto:
You could write the dev an email and ask nicely for the tool, as stated on his github page:
ipengci (github) Wrote:Repacking
Repacking is not yet implemented, maybe never.
Note:
This is in progressing, sorry for the delay! Please send e-mail to [email protected] to get the tools by now.
Source:
https://github.com/ipengci/StreetFighterDuel_Tools
Actually @bihaiorg already posted the solution, the code from 52pojie.cn looks very complex, but it can be simplified to
Code:
if ( v10 == *(_QWORD *)"VEGATOPJOY000000VEGATOPJOY000000N7cocos2d5ImageE" )
{
v33 = v10;
v34 = v9;
v35 = v11;
v3 -= 16;
v12 = v4[23];
v4 += 16;
*v4 ^= 0x51u;
v4[1] = v4[1] ^ 0x49;
v4[2] = v4[2] ^ 0x51;
v4[3] = v4[3] ^ 0x49;
v4[4] = v4[4] ^ 0x41;
v4[5] = v4[5] ^ 0x4E;
v4[6] = v4[6] ^ 0x52;
v4[7] = v12 ^ 0x41;
v4[8] = v4[8] ^ 0x4E;
v4[9] = v4[9] ^ 0x58;
v4[10] = v4[10] ^ 0x49;
v4[11] = v4[11] ^ 0x41;
v4[12] = v4[12] ^ 0x4F;
v4[13] = v4[13] ^ 0x42;
v4[14] = v4[14] ^ 0x45;
v4[15] ^= 0x49u;
}
What the code basically means - check the first 16 bytes for "VEGATOPJOY000000", then XOR the next 16 bytes with "51 49 51 49 41 4e 52 41 4e 58 49 41 4f 42 45 49". That is the ASTC image header. The rest are ASTC image data, and they are unencrypted..
Re-save the ASTC image part as *.ASTC file, and you can use this tool to convert them
https://github.com/ARM-software/astc-encoder/releases
Run in command line like this
Code:
astcenc-sse2.exe -dl IN.ASTC OUT.PNG
The tool can also encode the edited PNG back. Just XOR the ASTC header, and then prepend "VEGATOPJOY000000" back to the file. It's very easy.
Thanks for @bihaiorg for figured the whole thing out and sharing the code!
- Rufas
(12-10-2022, 09:42 PM)rufaswan Wrote: [ -> ]Actually @bihaiorg already posted the solution, the code from 52pojie.cn looks very complex, but it can be simplified to
Code:
if ( v10 == *(_QWORD *)"VEGATOPJOY000000VEGATOPJOY000000N7cocos2d5ImageE" )
{
v33 = v10;
v34 = v9;
v35 = v11;
v3 -= 16;
v12 = v4[23];
v4 += 16;
*v4 ^= 0x51u;
v4[1] = v4[1] ^ 0x49;
v4[2] = v4[2] ^ 0x51;
v4[3] = v4[3] ^ 0x49;
v4[4] = v4[4] ^ 0x41;
v4[5] = v4[5] ^ 0x4E;
v4[6] = v4[6] ^ 0x52;
v4[7] = v12 ^ 0x41;
v4[8] = v4[8] ^ 0x4E;
v4[9] = v4[9] ^ 0x58;
v4[10] = v4[10] ^ 0x49;
v4[11] = v4[11] ^ 0x41;
v4[12] = v4[12] ^ 0x4F;
v4[13] = v4[13] ^ 0x42;
v4[14] = v4[14] ^ 0x45;
v4[15] ^= 0x49u;
}
What the code basically means - check the first 16 bytes for "VEGATOPJOY000000", then XOR the next 16 bytes with "51 49 51 49 41 4e 52 41 4e 58 49 41 4f 42 45 49". That is the ASTC image header. The rest are ASTC image data, and they are unencrypted..
Re-save the ASTC image part as *.ASTC file, and you can use this tool to convert them
https://github.com/ARM-software/astc-encoder/releases
Run in command line like this
Code:
astcenc-sse2.exe -dl IN.ASTC OUT.PNG
The tool can also encode the edited PNG back. Just XOR the ASTC header, and then prepend "VEGATOPJOY000000" back to the file. It's very easy.
Thanks for @bihaiorg for figured the whole thing out and sharing the code!
- Rufas
"Re-save the ASTC image part as *.ASTC file"
Pardon me, how exactly do I accomplish this? Is there an option for this in the hex editor?
(12-20-2022, 08:52 PM)Hollow Wrote: [ -> ]"Re-save the ASTC image part as *.ASTC file"
Pardon me, how exactly do I accomplish this? Is there an option for this in the hex editor?
If you are using a hex editor and doing it manually,
1. use the DELETE key to remove "VEGATOPJOY000000" (the first 16 bytes of the file).
2. Now, the first 16 bytes of the file is the ASTC image header, you'll need to XOR with the key above.
3. Re-save the file by File -> Save as and change the file extension from .png to .astc.
To encode back, reverse the 3 steps above.
- Rufas
(12-24-2022, 08:21 PM)rufaswan Wrote: [ -> ] (12-20-2022, 08:52 PM)Hollow Wrote: [ -> ]"Re-save the ASTC image part as *.ASTC file"
Pardon me, how exactly do I accomplish this? Is there an option for this in the hex editor?
If you are using a hex editor and doing it manually,
1. use the DELETE key to remove "VEGATOPJOY000000" (the first 16 bytes of the file).
2. Now, the first 16 bytes of the file is the ASTC image header, you'll need to XOR with the key above.
3. Re-save the file by File -> Save as and change the file extension from .png to .astc.
To encode back, reverse the 3 steps above.
- Rufas
Ok thanks. What program or hex editor are you using to accomplish this? I'm using Hex Editor Neo and there are no options that I'm aware of that allow me to save the file extension as .astc.
(12-24-2022, 08:21 PM)rufaswan Wrote: [ -> ] (12-20-2022, 08:52 PM)Hollow Wrote: [ -> ]"Re-save the ASTC image part as *.ASTC file"
Pardon me, how exactly do I accomplish this? Is there an option for this in the hex editor?
If you are using a hex editor and doing it manually,
1. use the DELETE key to remove "VEGATOPJOY000000" (the first 16 bytes of the file).
2. Now, the first 16 bytes of the file is the ASTC image header, you'll need to XOR with the key above.
3. Re-save the file by File -> Save as and change the file extension from .png to .astc.
To encode back, reverse the 3 steps above.
- Rufas
Hello? Are you there? Could you direct me to or recommend a hex editor that allows me to both XOR and re-save the file as an .astc file? I can't go any further at the moment.