Thursday at 06:51 PM2 days Localization The archive file typhoon.dat doesn't have filenames, only hashes. I need a way to restore filenames from typhoon.dathttps://drive.google.com/file/d/1s_HQdYdzAv95lTRYj6ZlMTNlq-cR12v-/view?usp=sharing Edited Thursday at 07:01 PM2 days by mrmaller1905
Friday at 05:58 AM2 days Localization I think I have recovered about 77% of the filenames. I got these after placing a bunch of hooks on functions from the internal filesystem and functions that handle the resources from the XFS archive and its streaming interface.The following python code was used to perform the hashing:def hash_path(path: str) -> int: data = path.encode("latin-1") if len(data) < 2: return 0 suffix_sum = 0 suffixes = [0] * len(data) for index in range(len(data) - 1, -1, -1): value = data[index] if value >= 0x80: value -= 0x100 # signed byte suffix_sum = ( suffix_sum + (value + index) * (value + 0x13) ) & 0xFFFFFFFF suffixes[index] = suffix_sum result = 0 for index in range(len(data) - 1): value = data[index] if value >= 0x80: value -= 0x100 result = ( result + suffixes[index] * (value + 7) * (value + index) ) & 0xFFFFFFFF return result % 0xEE6B2800This is a great start but, we're still missing the original paths of roughly around 3.1k assets. typhoon_hashes.7z
Friday at 08:07 AM2 days Localization I created my own DLL which uses MS Detours to hook the necessary functions inside of the game executable. The data the hooked functions parse I log to disk and then I ran them through the python script.
Friday at 09:18 AM2 days Supporter Btw, format was already covered on the wikihttps://rewiki.miraheze.org/wiki/Rage_Software_XFS
Create an account or sign in to comment