|
bfcodec 0.0.6
Tools and a C/C++ library to manipulate BFCodec-encrypted content
|
Tools and a C/C++ library to manipulate BFCodec-encrypted content.
jbt encrypts a directory of game data then zips it up. The extension depends on the target game. You must use the correct key to encrypt the data.
Like unzip, unjbt extracts the zip file then decrypts each game file. Conversions will happen if tools are in PATH:
| Input Format | Output Format | Tool Used |
|---|---|---|
| Binary Property List (plist) | XML Property List | libplist (if found at configure time), CoreFoundation (macOS) |
| CgBI PNG | PNG | pngcrush, pngdefry |
pngdefry can be downloaded from its official site (archived). pngcrush is only available on macOS if you have Xcode installed.
If the directory passed to -d/--extract-to does not exist it will be created.
bfc encrypts a single file in place, overwriting it with the encrypted data. The same key and IV must be supplied to decrypt it again with unbfc.
Pass -o/--output to write to a different path instead of overwriting the input. With --backup, an existing destination is first copied to <dest>.bak.
Pass --uuid instead of -K to derive the key from a device UUID. The key is the MD5 of the UUID's canonical uppercase form, so dashes and letter case are optional.
unbfc reverses bfc. It decrypts a file in place, overwriting it with the decrypted data. The key and IV must match those used to encrypt the file.
Pass -o/--output to write to a different path instead of overwriting the input. With --backup, an existing destination is first copied to <dest>.bak.
Some iOS games key files to a per-device UUID (for example mulist and prodlist). Pass that UUID with --uuid; the key is the MD5 of its canonical uppercase form, so dashes and letter case are optional:
Link with -lbfcodec.
Link with -lbfcodec.
Requirements:
Basic commands to build after cloning:
jbt and unjbt will be in the tools directory.