How to decode base64-encoded <data> (CFData/NSData) property in a property list?

Posted by bantic on Stack Overflow See other posts from Stack Overflow or by bantic
Published on 2010-04-28T15:24:13Z Indexed on 2010/04/28 15:33 UTC
Read the original article Hit count: 369

Filed under:
|
|

I am trying to reverse-engineer a preferences file (not for any nefarious purposes, just so that I can script usage of it) that, among other things, has arrays of coordinates stored within it.

This is the salient snippet from the property list:

<dict>
  <key>$class</key>
  <dict>
    <key>CF$UID</key>
    <integer>34</integer>
  </dict>
  <key>coordArray</key>
  <data>
  AAAAAAAAAAAAAAAAAAAAAT70vS8/M7xSPwAAAD8AAAA/AAAA
  </data>
  <key>coordCount</key>
  <integer>1</integer>
</dict>

I assume that data string is an array of coordinates (based on its key name). My question is, how can I figure out what data is stored there? If I simply base64-decode that string, I get gibberish. Is there a way to decode it and cast it into whatever format it came from (NSArray, I think)?

© Stack Overflow or respective owner

Related posts about cocoa

Related posts about serialization