Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Angry Birds Classic Series: Game Assets (*.LUA, *.JSON, *.ZIP)

Featured Replies

  • Replies 57
  • Views 5
  • Created
  • Last Reply

Top Posters In This Topic

  • Author
  • Localization

LolHacksRule, posted Fri Sep 21, 2018 11:59 pm (38713)


I want to view Angry Birds LUAs but the headers of every one in APK/assets/data have weird headers. I heard they are encrypted/obfuscated/compiled in some way but how to decrypt/deobfuscate/decompile them? Here's a sample: http://www.filedropper.com/gamelogic. It would help me a lot.
  • Author
  • Localization

atom0s, posted Sun Sep 23, 2018 11:31 pm (38763)


Looks encrypted. You'd have to look in the Java code or their Lua lib/dll/so file to find how they are loading the files.
  • Author
  • Localization

LolHacksRule, posted Mon Sep 24, 2018 9:42 pm (38798)


Should I open the .SO with IDA, look it up in .SO via hex viewing or both? I found LUANAME and some large number of different digits for each, like this: "data/scripts/gamelogic.lua F5F3C41A2CABF2362C0039687DCB5F63B8AC68C8" in SO hex, I assume its a decryption key for the file but how to use it? Also, there isn't ANY DLLs in the game... Mostly encrypted LUA files, portions of DATs and encrypted JSONs as well as plain OGGs for audio. Fileswapping the LUAs doesn't work either, maybe this SHA1 checksum thing is the problem...
  • Author
  • Localization

aluigi, posted Tue Sep 25, 2018 6:04 am (38807)


No, that's the sha1 hash of the file.
  • Author
  • Localization

LolHacksRule, posted Tue Sep 25, 2018 8:51 pm (38825)


Oh sorry, I thought it is was a decryption key... IDA it is...
  • Author
  • Localization

LolHacksRule, posted Thu Oct 11, 2018 3:47 pm (39412)


Never mind finding the decryption key, the old one is still used even though I thought Rovio would change it... I decrypted the ZIPs (and got 7z File) file after that but for LUAs, it gives me LZMA files... How to decompress? My extraction tools always fail to extract them... Also this affects all text files in APK/assets/data asides from DATs, like JSONs, giving 7Z's after. (But I think 7.9.7 changed to LZMA)...
  • Author
  • Localization

aluigi, posted Thu Oct 11, 2018 4:17 pm (39416)


What's the old encryption you mention?
  • Author
  • Localization

aluigi, posted Thu Oct 11, 2018 7:28 pm (39427)


ok but the sample lua file is no longer available.
  • Author
  • Localization

aluigi, posted Thu Oct 11, 2018 7:46 pm (39428)


I have found the files. Wait for the script.
  • Author
  • Localization

aluigi, posted Thu Oct 11, 2018 7:58 pm (39429)


Unfortunately you were right since the lzma data can't be decompressed.
I leave the work-in-progress script here that demonstrates how the lzma decompression fails:

*edit* a working script has been released
  • Author
  • Localization

LolHacksRule, posted Thu Oct 11, 2018 9:38 pm (39432)


aluigi wrote:
Unfortunately you were right since the lzma data can't be decompressed.
I leave the work-in-progress script here that demonstrates how the lzma decompression fails:
Code:
putarray 0 -1 "USCaPQpA4TSNVxMI1v9SK9UC0yZuAnb2"
putarray 0 -1 "zePhest5faQuX2S2Apre@4reChAtEvUt"
putarray 0 -1 "RmgdZ0JenLFgWwkYvCL2lSahFbEhFec4"
putarray 0 -1 "An8t3mn8U6spiQ0zHHr3a1loDrRa3mtE"
putarray 0 -1 ""

get SIZE asize
for i = 0
    getarray KEY 0 i
    if KEY == ""
        cleanexit
    endif
    encryption aes-256-cbc KEY "" 0 32
    log MEMORY_FILE 0 16
    get DUMMY byte MEMORY_FILE  # 0x89
    getdstring TEST 8 MEMORY_FILE
    if TEST & "LZMA"
        savepos OFFSET MEMORY_FILE
        log MEMORY_FILE 0 SIZE
        encryption "" ""
        comtype lzma_dynamic
        math SIZE - OFFSET
        get NAME basename
        clog NAME OFFSET SIZE SIZE MEMORY_FILE
        cleanexit
    endif
next i


Thanks, here's a link for all encrypted and the few decrypted to 7z game files as of v7.9.7, excluding unencrypted files on a better sharing service. I tried the same decryption method on saves as well and got different results, not LZMA'ed after but, still unreadable and incompressible, I fixed it by using a different key, no zip/compression after either... plain LUA. http://tiny.cc/AngryBirdsDecTo7zEncV797. LZMA packing is also used in (I think) all classic Angry Birds games...
  • Author
  • Localization

LolHacksRule, posted Sat Oct 13, 2018 2:48 am (39474)


I'm looking into this LZMA encryption encoding in the game executable via IDA and found a portion of mentions for it but I don't know what's useful for me in it to find, like the decryption key... also I'm not so great with using IDA.
  • Author
  • Localization

LolHacksRule, posted Sun Oct 14, 2018 3:40 am (39525)


Never mind about LZMA, it isn't encryption, you just have to remove the first 9 bytes after decryption to get a LZMA'ed 7z (without its proper header with a "]") with the real file...
  • Author
  • Localization

aluigi, posted Sun Oct 14, 2018 8:02 am (39538)


LolHacksRule wrote:
Never mind about LZMA, it isn't encryption, you just have to remove the first 9 bytes after decryption to get a LZMA'ed 7z (without its proper header with a "]") with the real file...

No, that's exactly what my script did (OFFSET was 9) and it didn't work.

*edit* it's a problem in the decryption, going to investigate.
  • Author
  • Localization

LolHacksRule, posted Sun Oct 14, 2018 2:50 pm (39551)


Oh sorry about that, thanks then, you missed three bytes for the LZMA'ed file headers, the script has no effect on the ZIPs.
  • Author
  • Localization

aluigi, posted Sun Oct 14, 2018 3:40 pm (39554)


That's the problem of last-minute modifications made before releasing something :(
Fixed
  • Author
  • Localization

LolHacksRule, posted Sun Oct 14, 2018 3:58 pm (39555)


Thanks for that. It doesn't make folders before extracting things in folders, like level and every LUA is there where the game has level/levelid.
  • Author
  • Localization

aluigi, posted Sun Oct 14, 2018 4:46 pm (39559)


Use the -d or -D option
  • Author
  • Localization

LolHacksRule, posted Sun Oct 14, 2018 5:20 pm (39565)


Ok. asset_groups_decrypt.lua decrypts as LZMA'ed 7z, but cannot be extracted, but if I decrypt with OpenSSL and remove the first 9 unique header bytes it extracts fine... Also after using -d, I'm finding folders called XXX.lua having the lua. -D worked for me when targeting the scripts directory. Also some LUAs are empty...
  • Author
  • Localization

aluigi, posted Sun Oct 14, 2018 7:14 pm (39569)


Can you upload asset_groups.lua and those encrypted lua files that extract as empty?
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.