-
Notifications
You must be signed in to change notification settings - Fork 1
dfe
The dfe file found in the root game directory is used by SecuROM, the copy protection the game uses. It is purportedly an encrypted archive of game data that is only accessible upon successfully authenticating ownership of the game.
The game itself does not appear to open the dfe file. SecuLauncher.exe has a string %s\data_dfe_%08x%08x%08x%08x which matches the Tron: Evolution Mod Documentation on SecuROM's dfe files but no files of this form are ever created. The game will launch and run fine without these files or dfe.
SecuLauncher.exe contains signatures for zinflate_lengthStarts, zinflate_distanceStarts, and TEA encryption/decryption, which matches the claims of Hanzhiyun's (汉之云的) "CD-free", a victory for pirates?. It has the same decryption algorithm as on the TEA Wikipedia page, including the same constants. The string "inflate 1.2.2 Copyright 1995-2004 Mark Adler" is also in the binary.
See also: SecuROM
A pure Python re-implementation of the dfe decryption code found in FUEL's SecuLauncher.exe is available as dfe_decrypt.py. It may work with other games, but I would expect that the derive_dfe_record function and various seed constants change per game/SecuROM version. I used this script to extract FUEL's dfe contents. The contents are 6 TSC files. Some contain references to WALL-E, and some are alternate versions of TSC files found elsewhere in FUEL's game files.
Notably, there is no extra layer of encryption on the data_dfe_* files decrypted from dfe in FUEL. The Tron: Evolution Mod's SecuROM page's Data File Encryption (DFE) section claims that these data_dfe_* files are encrypted. I suspect that either the Tron game has added its own layer of encryption or this is a SecuROM version difference.
Writing the script itself took some doing, thanks to SecuROM virtualizing and obfuscating key pieces of functionality. I have a ton of notes on this, but it's really noisy right now and probably not worth cleaning up to publish anywhere since a lot has already been written about SecuROM by smarter people than I. If you really have a burning need for more SecuROM knowledge, I could be convinced to make a securom-research repository.
Xuan-Yuan Sword: The Cloud of Han
Xuanyuan Sword: Han Zhiyun
The encrypted data of SecuRom is stored in dfe. It is first compressed using zlib, then encrypted using TEA (Tencent QQ (腾讯QQ) uses this algorithm to encrypt local message files), and finally a simple algorithm XOR is used. The dfe in Hanzhiyun contains 194 pieces of data, which totals 16979441 bytes after decompression.
Check what SecuROM does with these files. They could just be useless garbage as they also seem to appear in different games with the exact same size.
The dfe or dfa file are used to decrypt game data.
Error initializing DFE
Data Files
SecuROMTM (version 7 or higher) also offers a security feature for data files. DFE (Data File Encryption) gives you the
opportunity to wrap several data files into one DFE container. These files then can only be accessed if the encrypted
executable file has been launched successfully.
For FMTK Users and Mod Developers
For FMTK Developers
Asobo BigFile Format Specification
Asobo Classes
Animation_Z
Binary_Z
Bitmap_Z
Camera_Z
CollisionVol_Z
Fonts_Z
GameObj_Z
GenWorld_Z
GwRoad_Z
Keyframer*_Z
Light_Z
LightData_Z
Lod_Z
LodData_Z
Material_Z
MaterialAnim_Z
MaterialObj_Z
Mesh_Z
MeshData_Z
Node_Z
Omni_Z
Particles_Z
ParticlesData_Z
RotShape_Z
RotShapeData_Z
Rtc_Z
Skel_Z
Skin_Z
Sound_Z
Spline_Z
SplineGraph_Z
Surface_Z
SurfaceDatas_Z
UserDefine_Z
Warp_Z
World_Z
WorldRef_Z
Asobo File Format Idioms
Asobo CRC32
Asobo LZ Compression
Asobo Arithmetic Coding Compression
Asobo Save Game File Format Specification
Asobo Audio Formats
TotemTech/ToonTech/Zouna/ACE/BSSTech/Opal Timeline
Zouna Modding Resources
Miscellaneous