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.

Air Bandits (game.res)

Featured Replies

  • Author
  • Localization

MotherFucker, posted Sun Feb 08, 2015 4:44 am (3102)


This relatively unknown game (link) has great music and backgrounds but uses a weird archive format, so I could use some help 8-)
game.res.7z - 7.98 MB
  • Author
  • Localization

MotherFucker, posted Fri Feb 13, 2015 6:16 pm (3163)


I'm absolutely lost with this one :(

Image
  • Author
  • Localization

MotherFucker, posted Mon Feb 16, 2015 5:27 am (3202)


Image
  • Author
  • Localization

aluigi, posted Tue Feb 17, 2015 1:40 am (3221)


The game uses a compression algorithm which is not implemented in quickbms and I don't know what it is, it looks like a variant of LZW.

The following script extracts the files but only the non-compressed files are readable while the others are stored in an "unknown_compression" folder:

Code:
comtype uncompress  # wrong!
goto -0x10
idstring "sRBV"
get OFFSET long
get DUMMY long
get DUMMY long
goto OFFSET
idstring "ix50"
get SIZE long
get FILES long

# compression not supported yet ("bogus", seems lzw)
set MEMORY_FILE compressed "eNqll2lclOUaxq ZYRZQWQRFQ0MIO4iCIIugKWAuYCYuaAYovDMMMM4wg /MgKRouaaSooW554Km5opLevS4pMc1F8rKcq3sZ2Vuaalx1PO898wLIzJfnA/Xp/n/rvd67ud 7ueZeMTFRKm12siEcI2W04THcLG54erI Mjw NiEmMg8LioyJiouS1ukM5tytdFZBm2x1hAVkctZesqA0KZAu4HARe Vtz8dEJQqB/CCjjqjLs8LKGEWs0IAdf/VOpccuwgZL/kBb3nYMoasLf/IRUeWMSYQKGUWb74CVEuOTXbJMVrIuDEEuNvEljHcW5rkoiPLuCwSOMos9nUCjsyMP uSY4yQURvHHO113FfSyc9FR5axUzKQoAAqwoBRQYFNX8wxxqEftf0AeNoyrh q7umiI8uoHQakNAE2lQHNS552csmxC 11DjDCvtfLy926u jIMsoNQJg7UKsGmuWc7O2SI/VjZyuwt5ktY8S9xedddGQZb0wCHrGMURwwUO2xwSVH6sdr5cAke8aA8Lu/ueZIs2cRIFcAbp2BxNydb7yYY6xDP qXAxvsGUf24M666Mgy m8C3vcBLh4D4tqO2 2SI/XjJ/uBcHs/qocmXnfRkWX88gTwqQewXQ/Mixz6wCVH6kfzN4CbPWPJDs8eLjqyjCVXgbnuQHQ2cLLy4S2XHKkfVb8DZvt8PDzJ/6aLjizjuPtAuhKY0xXoaFox4MUc4xz68Uwt0Mxex8A184e76MgyXlRI8L4SWBsFrGufY3XJkfox11OCPfY3xfinb/7joiPLGBggwSPmmLMYUBQ3/8ElR rHVqES/Gg/1xULeu1x0ZFlfBQrwRXmaNgF9A6c5trOUD ef12CbPteT2j3N iI8vYNU2Cz5njyhlAjcp9v ioBGcwRBQZ87d18caUVW6kqYfHlCcevZoCupHVnEafz5usxlyBe7mmM2qM7qQbn2G2yHk5cFERo4vyu37rh9373Ug1JzqFNgZ2EcA7la1RtVtO vLwP2WNgdEC FFaIJKzZKRpbj5TGgNjBPCbz4IxJ0VGCjzwZFtjYKwA5t5vj/uP3UglOcenNgbGCeCIP8Nw5LIbqb9 9GMRbMJAg8FkMkYUFkWrnyrx7ccgDVDN7916WkSqAPmIULbaypstAhr/sQo3QkEqroreKvqpGGrMF4hXDqhwIQCk4HOB60TCHWoDx0yKzDoAmMD0LlOpeXecgMgdkBKu FaGBIMNQKsdwMhZZ/aKiKcNYYQ2StjV24kJeLpLQho9izvl8DWT0WoWviZ8yWT/2sv9B/xFVg4I80o8KkHOQGBGCwkOBBQEiYgH1FaLxVakJxdU MsHpATfHYscKkmMWejWT1pI0VsCxHkA645/uZ2MHCEh888tpbh1BNh5HOhzpM3dJDukZFCpANx62A0DrjUjpX d9t kukVp2OLNEYWm6G6XUtBiqdKmjP5ZgyraplIaQixaXoh876YKJx BNOi3dSlvTIkgyAMatp8mXvhWzSUppjcHwpkmDNtSJYbxtjPZBaZiLZEj7kixXAXomOQVex IpI9IGk18IUdn8uFDKRJkQAhT/IPzLUW0BXJ1nMGUn/3s0Ux7ZxDME0EqWVcdJq63KXL50uw8Ha8VVrPvujsKvUH68GAUnuyxptqqojVqC0uFfYz6nxQb2wDVnQHZmvBk8bu sE WKId76XIrGWoUwLs9gYrR 8bQZGkUZhu7OVCGWilw0wuYvzfM3RlMt8n6YBnW22/l2OkBgc5h5pwezmA35hwEPJ7oF kMpjvgSZQMYe6UmU3EJA/nMHMO7S7DbhmgbwlMGnmirTOYJvePPWW4Yp/cP/UNCXcOM cD/WXYyZxjWwBza4cYnMGxgnPxQBkSlbbMS4Pu nSbF EEZs47hsnQ1g1o3xooPPlI7wyOE5y/eluGJh4251c/b/W2c5g5X9LI0I45J7UC3v4 dfBzcBeH3nicL0O4yua81dc7gS3QCcycw4pkuC4HDnUABhzakOYMpt7wKZZhmX0HX8tKed0pTF03UYYcObA2GOidmXnYGUy94TVVhk32zOqtt1Kdw8z5Px/IkCwHpgYCvfSDljuDY6jr5rEdtGdOr22ndw4z5x5LZNgnB069CmxbKP2dYNsx5XkTzaWOD91x0h2ktN0dqytSO6SChrt2bJHBZNaZjDTcv3g0COtDQXr8y2svZdOQa8iZdTcBFNsn/KI7Nb4CR OmnsvW6ISpSJP8b4kHQmaDxD3cIhXHja8DbuD4fJo6L1V4wFAhIxXN/eRE/SzO0xlt084QPBjdAjxIS 8FBXxzKjnVEbGMtdSukGE1gCtMh6tzhs4I7EUJVaDpxtagkQBW xoOZa1yT6q7OfK53HythW6ONT0yUdxWQnp5QdhPyXWDMp/NQF6nIapNZhbmLlSQvId3PEUUWYmvHAYtX8mOsBEILQSmuPNDBEjuAHURoOE brgzE/CdAYw5XXmtIRQtQH2XuGHhbOBAOVA96sixhlCMAF0Jk2Ple4A/W9/KpUEpDaFYAXpvgxy1k4GQScDqrgP7NoTiBGh8pAJLS4A/rcCc0F89RcjLDtW9Ms5LqJok9btVC0XQG/lWo7nAZMkWnyzT2nniXB5IgVdXRNaXtYDjczUmXitcuRvvqzG4k5wUenDZQbEbVSjQGoqEaE/aFWD2b1LSX8pb 0QfJQp09KppvVaBLDlgUAA M8dHipFUAhAlENaNCvgHANUdge0 R 6IhDsMXIntVJQfUyDaF/i2OfD1At0uIUc9Qvu2/4ICVeznfkxtO0776lkX2jXNLQWO gPpTLVVN5c 60J7FqZQ4rwn8CFTgrzE61mEdkzaQolalmUR0/dv7uwuIn6ggdDgni/30MNvFkhyX8UCsT4eNppeUI9DlVSe71muex1a7K8vUaHWaBUIXWclTkuBJ 5A1byMui5RwsgVCzXs2kWJEgULpWIFmudfXb/6Io630JtwhBQw23sjP26uhwNi4IxawWVTvBKxwUBuDjDtUy4kx760JjaEp7Q/ZyiRyJJ MBEY9Xe/StGnKUF57PUsWAXzSlQmA9OnAit7POjYq 5rPJfL0ePq821KrJICFUzbq5PyOOFrZMROtUlToKXXd8Z0TyQeAMl4/cGeXnUF5E0aPWOYU8ZOJXZ4ABOZAvuP7F7/MdbzJmpDr4NK9HkFmMdSX4jPXC8iTQTEkm lKbmwnxdeugHS7QlbqsVvecJcyNYlHDP6Xvo1JZRewL89gfO yyc4fK/QpNfSrKnUw8tLQhooXe3zw9XoVDgiZt1Jhw35dcyhvg4uFi1nEM7f5ioD1i6Uk7r6Ze4SSgRCLAW8qURYWOY9lqUpML81sOxicn xip4MsRaqzVmx4XQ 3urJ48M2IJn/MDZ/2qEvWTlwdAJ z DRYTJIOyY31T 0c94ix3GsWgLpe5kHrwEp5fbkdLFaXnWkxrbRU5PNkPIghaVsGiKCvnWgjs/TaQ10YKZvM0MzA6Qz2vRxjcHUjRT2NQvih4J0bNi65PoNE Eiuh6CKywYXAnS9jPXg0XOR TUwv8iQs3traiyghQ6/UyNiDavQ60Gg/1u8l9sxYCWII3OaD/kOdZ A9Pw2WrF0eEgpX4866DI olsnoErLOTUBlpYmKoYvbJAanq49RKRbl1Hm3iLLk n4Sw6 18sQ24xxhSB1DX9i4znamHftkvnijFVD5J1X/rxhrUQ32IMVSeVQMWDtLLMMOIyez8 j1LbjK4uwS9zQNrbfcbJq4Q6tE2hyWqmpaX1GovuGSBF8PvNvRsWzaQerdXYCjxzyVio24A0 4/L/s xRTp2LE1jBfaPXWMxcCJI6fO39BFZ3wYsraxbfCn pQHphOa7KGcw3Rvc4lKMmQFSm4S5b4mwZx38Dpl FfIOpGUgndw8yqMPcQ41sHBGPTmeW/EO/jcZpB y z2PKnLt/0DPdt HGLKQLJUfnBMJL3qSJ6ji9ht1Ti0ygNJWao4/bwlr9Xa3kru45E2C6RL90vvNUJaNXqB1H80HrwBpJZ j4JEsnkdaTUa2SVGbYUyvG4GaU3gdmOfhm1VbDYL/6rNGk07SxnOSkAKPH1plIiqIGQUzO5Yy7D5oopUft3/idij/wcbjY/w"

for i = 0 < FILES
    get NAMESZ short MEMORY_FILE
    getdstring NAME NAMESZ MEMORY_FILE
    get OFFSET long MEMORY_FILE
    get ZSIZE long MEMORY_FILE
    get SIZE long MEMORY_FILE
    get DUMMY long MEMORY_FILE
    get DUMMY long MEMORY_FILE
    get FLAGS long MEMORY_FILE
    if FLAGS == 0
        log NAME OFFSET SIZE
    else

        #math OFFSET = 4   # "ResJ"
        #math ZSIZE -= 4
        #clog NAME OFFSET ZSIZE SIZE

        string NAME p= "unknown_compression/%s" NAME
        log NAME OFFSET ZSIZE
    endif
next i
  • Author
  • Localization

aluigi, posted Tue Feb 17, 2015 11:27 am (3232)


Unfortunately doesn't help much.
The source code contains only references to zlib, so I tried to use zipcrypto with the password "bogus" using both with and without "1" as ivec (used internally in quickbms) but no results.
Additionally there are no references to "ResJ" or 'R','e','s','J' in the code.
  • Author
  • Localization

MotherFucker, posted Sat May 02, 2015 2:59 am (4969)


Holy shit, that was a tough nut to crack! Glad I'm finally done with this thing 8-)
:arrow: game.res contents!

P.S. Actual mod dates were manually restored from the archive, but that's a different thread ;)
  • Author
  • Localization

aluigi, posted Sat May 02, 2015 5:53 pm (4987)


Did you found the compression algorithm?
  • Author
  • Localization

MotherFucker, posted Sun May 03, 2015 3:03 pm (5014)


aluigi wrote:
Did you found the compression algorithm?

Nah, just injected code to dump the files.
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.