h4rdx8 Posted August 20 Posted August 20 I'm trying to figure out how this old 32-bit iOS interactive novel game (Cause of Death) loads its episode files (.exp format), especially the dialogue strings. Currently I'm able to extract the pictures out of the file (using scalpel and https://www.toolsley.com/inspect.html), but I had no luck doing strings analysis to get any actual text. I loaded the main game binary in IDA, and found out that the game loads the exp file by reading the CSPUD header (12 bytes) and builds a resource table. Each entry maps a resource ID to a file offset. When the game needs a specific resource (like image 0xA9), it looks up the offset, reads the data, checks if it's LZMA compressed (13-byte header), and decompresses if needed. Attached below are some of the episode files, I checked some using a hex editor and seems to use a similar magic header as LZMA in various locations of the file (5D 00 10 00 00). Would really appreciate guidance on this! episodes.zip
Moderators Solution ikskoks Posted August 20 Moderators Solution Posted August 20 Hi. I've created a script which allows to extract and import data from/to those archives https://github.com/bartlomiejduda/Tools/blob/master/NEW Tools/Cause of Death/Cause_of_Death_EXP_script.bms In case you'll have some issues with using the script, please follow this tutorial https://ikskoks.pl/tutorial-what-is-quickbms-how-to-export-and-import-with-quickbms/ Also if you're interested in technical details, please read this wiki article https://rewiki.miraheze.org/wiki/Cause_of_Death_EXP
h4rdx8 Posted August 21 Author Posted August 21 18 hours ago, ikskoks said: Hi. I've created a script which allows to extract and import data from/to those archives https://github.com/bartlomiejduda/Tools/blob/master/NEW Tools/Cause of Death/Cause_of_Death_EXP_script.bms In case you'll have some issues with using the script, please follow this tutorial https://ikskoks.pl/tutorial-what-is-quickbms-how-to-export-and-import-with-quickbms/ Also if you're interested in technical details, please read this wiki article https://rewiki.miraheze.org/wiki/Cause_of_Death_EXP thank you so much! i've tested the script on another similar game Surviving High School (they both use .exp episode files) and can confirm it works there too 1
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now