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.

[Unity]Soul Hackers 2 text bundle encryption

Featured Replies

  • Author
  • Localization

LinkOFF, posted Sun Sep 04, 2022 9:00 am (73321)


Hello. I'm trying to extract english locale from Soul Hackers 2 but most of message files are encrypted. I tried to pick up xor key but it's not help or i doing it wrong (i think it must be a UnityFS magic in header). Game compiled by il2cpp.
Examples of files - https://drive.google.com/file/d/1p47-bO ... sp=sharing

I found hashes inside En file. They are the same as hash in .manifest files.
Also i decompile metadata and found a few methods. I not sure but it looks like asset loading method with decryption by psw and salt (AtLib.dll). Is this AES?
Code:
// RVA: 0x9B9EE0 Offset: 0x9B94E0 VA: 0x1809B9EE0
   public static AtMessageResource Load(string package, string password, byte[] salt, UnityAction action) { }
  • Author
  • Localization

Franco, posted Sun Sep 04, 2022 6:42 pm (73327)


Not in Resources.assets?
  • Author
  • Localization

spiritovod, posted Mon Sep 05, 2022 4:32 pm (73346)


@LinkOFF: From the first glance it looks like common method for many unity games, when aes key and iv (if any) are derived from password and salt via PasswordDeriveBytes or Rfc2898DeriveBytes and then data is decrypted. Password for external bundles is probably "lAZr7V4e", while salt is "_bKo" - but apparently salt is derived too via appending it to file name (so for common it would be "common_bKo").
Though not sure if there are no additional modifications inside decrypt function - last time I was digging into such stuff in a unity game, I just gave up and grabbed key with iv at runtime in debugger, but that game was less protected.

You can take a look at some references in those topics:
viewtopic.php?f=13&t=13947
viewtopic.php?t=14660
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.