Decodificar un bloque arbitrario de NSData?

Si tengo un bloque arbitrario de NSData como un valor hexadecimal, ¿hay alguna forma de determinar qué podría haber sido el object antes de archivarlo o serializarlo? No me importan algunos methods de conjetura y verificación, pero necesito algunos indicadores en la dirección correcta.

Tengo un object NSData con algo de hex. ¿Qué methods de NSData debería ver? ¿Hay otras classs para probar también?

No quiero asustar a las personas para que no contesten, pero tengo un file de datos del juego que probablemente fue codificado usando una class de Cocoa Touch. Los datos, cuando se ven en un editor hexadecimal, muestran galimatías y un nombre de usuario, lo que me lleva a sospechar que se trata de un tipo de object archivado o codificado. He copydo el hexágono del editor hexadecimal en un proyecto de muestra que estoy usando para intentar desarchivar los datos.

No creo que esto esté relacionado con el formatting 3d, la extensión del file es arbitraria.

Aquí están los datos. Espero que no se pierda en la traducción:

'µköXN[ÎÀü÷h/F9ó9Vìñ°ceE¸z¶=Hmoshbermú«ó¼Ppù#ÝVÔ=4â®L,K;Êç;ASÀ&Ë÷ëÓ%È;Úf¬G}tmQ;µéüø_87´y©ã©!߶óQòAçÛl©âSG4S½3ýJת9äô¡wxiD²M¼ÏB]39øþ:óñ7ª¾÷躣È3Ï¢ÍEFÍ¢ª»r]BmÁ'Ò+åygÞÅQ?luó>÷ú¼è6¸|}[¼[¶Ñ¦g!\OÎÒJSE..pSß&_ÈEäø)6òëó¨¼2¶ð°æà`ï7Ë=Ã¥:cƧ=L4qG-"µ(ÐÝïß ÓãXkÀ4fzæ·p\ññT<tu¥Æ©;Ìn4£³Ï¢ÌFåG´ 

Y el hex correspondiente:

 27 B5 6B F6 01 00 00 00 58 4E 5B CE C0 FC F7 68 2F 46 86 87 83 39 F3 39 9E 56 EC F1 B0 63 9E 65 45 B8 7A B6 3D 07 99 48 6D 6F 73 68 62 65 72 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 90 86 FA 03 0E AB F3 BC 0B 50 70 F9 23 DD 87 56 03 D4 3D 34 90 E2 AE 4C 2C 94 9E 8E 15 4B 0C 83 8C 3B 03 CA E7 3B 1B 41 53 C0 26 04 CB F7 EB D3 25 C8 3B DA 66 8A AC 47 7D 8A 7F 74 6D 51 3B B5 19 E9 FC F8 5F 38 37 B4 11 0C 79 A9 12 E3 A9 21 DF B6 F3 51 F2 41 E7 DB 85 02 9F 6C A9 E2 53 47 1F 34 86 53 BD 33 FD 4A D7 AA 39 C3 A4 F4 A1 77 78 69 44 B2 4D BC CF 42 5D 33 39 F8 FE 97 3A 81 F3 F1 10 37 AA BE 86 91 F7 1F E8 83 BA A3 C8 33 CF 1D A2 CD 45 7F 46 1F CD A2 AA BB 1A 72 5D 42 02 6D C1 0F 27 D2 2B E5 0B 79 67 DE C5 1A 51 3F 14 6C 75 F3 3E F7 FA BC E8 36 8E B8 7C 02 1C 7D 01 00 92 8C 19 5B BC 5B B6 D1 A6 67 7F 21 5C 84 13 4F CE 0C D2 4A 53 19 82 45 1B 2E 2E 96 70 53 DF 26 5F C8 1C 45 8F E4 F8 29 36 F2 EB 9D 95 F3 A8 BC 32 B6 F0 B0 E6 91 98 1A E0 99 60 EF 37 CB 3D C3 A5 3A 63 0C C6 A7 3D 4C 34 71 47 2D 22 B5 28 D0 DD EF DF 09 D3 E3 58 6B C0 17 34 66 7A E6 B7 70 5C F1 F1 54 3C 74 94 75 A5 C6 15 A9 9E 14 3B CC 15 10 83 6E 34 A3 B3 CF 0F A2 9C CC 8E 46 8C E5 00 00 47 B4 17 05 00 00 00 00 

Si alguien quiere ayudar a resolver esto, sería muy apreciado.

Si tengo un bloque arbitrario de NSData como valor hexadecimal, ¿hay alguna forma de determinar qué podría haber sido el object antes de archivarlo o serializarlo?

Realmente no. Eso es tan "trivial" como leer correctamente files arbitrarios sin el uso de una UTI, extensión, tipo MIME. Por supuesto, su progtwig también necesitaría admitir la lectura de todos esos files / formattings.

No me importan algunos methods de conjetura y verificación, pero necesito algunos indicadores en la dirección correcta.

Necesita networkingucir su problema / inputs, si no desea una tarea imposible.

Tengo un object NSData con algo de hex. ¿Qué methods de NSData debería ver?

Es solo un blob de datos de bytes de length . Podría representar cualquier cosa, si no sabes de dónde vino.

¿Hay otras classs para probar también?

Quizás empiece por save todos sus datos a través de NSCoder u otro serializador / archivador que ofrezca cierta introspección y soporte para que ingrese su propia información (que sería comparable a un tipo UTI o MIME).

Editar:

No quiero asustar a las personas para que no respondan, pero tengo un file de datos del juego que probablemente se codificó con una class de Cocoa Touch. Los datos, cuando se ven en un editor hexadecimal, muestran galimatías y un nombre de usuario, lo que me lleva a sospechar que se trata de un tipo de object archivado o codificado. He copydo el hexágono del editor hexadecimal en un proyecto de muestra que estoy usando para intentar desarchivar los datos.

Al utilizar estas API, los datos pueden representarse de varias maneras. Probablemente estés enfrentando algo dentro del dominio de 1) un formatting de file propietario a través de 2) un file con keys.

Esto último es más fácil para las representaciones de datos no triviales. Debería definir cualquier class objc que no tenga disponible cuando no se haya archivado. En ese caso, algunas representaciones de muestra ofrecerían un esquema aproximado de las estructuras de datos que necesitará (en implementaciones convencionales). También podría ser un file similar a un dictionary NS si el desarchivador es capaz de abrirlo. Este es un problema que es más fácil que con otros lenguajes, ya que el file a menudo recae en keys y valores asignados a los miembros en Cocoa.

Edit2:

El file proviene del directory Draw Something. Se llama gamedata.i3d

(encogimiento de hombros)

Prueba a usar NSKeyedUnarchiver para leerlo. No es raro usar solo los contenedores estándar de Foundation como NSArray, NSDictionary y NSString para almacenar datos, por lo que puede tener suerte. Obviamente, esto no funcionará si se tratara de classs personalizadas, pero valdría la pena 15 minutos de su time para probarlo.