Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Encrypted iTunes Library File Format
<?xml version="1.0" encoding="UTF-8"?>
<ufwb version="1.9">
<grammar name="Encrypted iTunes Library" start="id:4" author="Mr. eXoDia" email="mr.exodia.tpodt@gmail.com" fileextension="itl" uti="com.apple.itunes.db">
<description>Grammar for encrypted iTunes Library files.</description>
<structure name="Defaults" id="5" encoding="ISO_8859-1:1987" endian="little" signed="no"/>
<structure name="iTunes Library" id="4" extends="id:5">
<structref name="hdfm" id="8" structure="id:7"/>
<binary name="encryptedData" id="9" length="remaining">
<description>This chunk of data is encrypted using AES/ECB/NoPadding with the key &quot;BHUILuilfghuila3&quot;. After decryption, you have to inflate the data using ZLIB.
To create a valid &quot;Decrypted iTunes Library&quot;, paste the &quot;hdfm&quot; header and the decrypted/inflated data in a new file. </description>
</binary>
</structure>
<structure name="hdfm" id="7" length="this.headerLength" repeatmin="0" repeatmax="-1" extends="id:5" endian="big">
<string name="signature" mustmatch="yes" id="11" type="fixed-length" length="4">
<fixedvalues>
<fixedvalue name="hdfm" value="hdfm"/>
</fixedvalues>
</string>
<number name="headerLength" id="12" type="integer" length="4" display="hex"/>
<number name="fileLength" id="13" type="integer" length="4" display="hex"/>
<binary name="unknown1" id="14" length="4"/>
<number name="versionLength" id="15" type="integer" length="1"/>
<string name="version" id="16" type="fixed-length" length="31"/>
<binary name="unknown2" id="17" length="44"/>
<number name="maxCryptSize" id="18" type="integer" length="4" display="hex"/>
</structure>
</grammar>
</ufwb>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment