PDA

Показать полную графическую версию : [решено] Чем распаковать странный файл?


СУБД
13-08-2011, 17:46
Всем привет. Есть файлик, в котором по всей логике должны быть ресурсы игры на андроид. Изначально файл был с расширением .wav, который при ближайшем рассмотрении, оказался .png.
На этом я заглох. Есть основания считать, что к этому .png подклеен zip. Как/чем отделить эти зёрна от плевел?
Сюда залить не дало, файл тут - http://rghost.ru/17837131

SendMessage
14-08-2011, 04:40
Это и есть файл с ресурсами - там 368 файлов PNG, 6 файлов OGG и один текстовый такого типа:
{"levels":[
{"touchmax":1,"items":[0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},
{"touchmax":1,"items":[0,0,0,0,0,0,0,0,0,0,0,4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},
{"touchmax":1,"items":[4,0,4,0,4,0,0,0,0,0,4,0,4,0,4,0,0,0,0,0,0,0,0,0,0,4,0,4,0,4]},
{"touchmax":1,"items":[0,0,0,0,0,3,3,3,3,3,3,4,4,4,3,3,4,4,4,3,3,3,3,3,3,0,0,0,0,0]},
{"touchmax":1,"items":[0,4,0,0,4,0,0,0,0,0,0,3,0,0,4,0,3,0,0,4,0,0,0,0,0,0,4,0,0,4]},
{"touchmax":1,"items":[0,0,0,0,0,0,0,0,0,0,4,3,4,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},
{"touchmax":2,"items":[0,0,0,0,0,0,4,0,4,0,4,3,4,3,4,0,3,0,3,0,0,4,0,4,0,0,0,0,0,0]},
{"touchmax":3,"items":[4,3,3,3,4,3,1,2,1,3,3,3,3,3,3,3,3,3,3,3,4,3,3,3,4,4,3,4,3,4]},
...
{"touchmax":5,"items":[3,2,0,2,4,0,4,0,4,3,0,0,4,3,0,2,1,1,0,4,4,1,3,4,2,1,3,3,1,4]},
{"touchmax":4,"items":[4,2,2,3,2,1,1,4,2,1,4,0,1,4,0,0,0,3,0,0,3,3,3,3,2,2,3,4,1,2]},
{"touchmax":5,"items":[0,3,1,3,0,2,4,3,3,4,0,2,1,3,4,3,4,3,4,1,2,2,2,4,0,1,1,1,4,3]},
{"touchmax":3,"items":[1,2,1,3,3,2,0,4,1,1,2,4,4,3,0,0,3,4,2,0,0,1,0,4,3,4,2,2,2,0]},
{"touchmax":6,"items":[1,4,3,3,4,3,3,0,0,3,4,3,4,1,2,1,3,1,1,1,0,4,0,4,3,1,4,1,2,2]},
{"touchmax":3,"items":[3,3,4,4,2,4,3,0,4,3,4,0,4,4,0,3,0,0,2,3,2,3,1,0,3,2,2,0,1,2]}
]}
***
Распотрошенный файл - http://rghost.ru/17890991

СУБД
14-08-2011, 14:16
SendMessage, ты гений!
Но как/чем ты смог разобрать? Если не секрет и мне в науку.

SendMessage
14-08-2011, 15:49
Обычным скриптом. Конечно, после того, как проанализировал его. :)
Скрипт не универсальный, именно под парсинг этого файла.
Option Explicit

Dim PNGhead
Dim OGGhead
Dim PNGend
Dim SourceFile
Dim SaveDir
Dim objFSO
Dim OpenFile
Dim arrUB
Dim arrData
Dim arrData2
Dim i

PNGhead = Chr(137) & "PNG" & vbCrLf & Chr(26) & Chr(10)
OGGhead = "OggS" & Chr(0) & Chr(2)
PNGend = "END®B`‚"

SourceFile = "z:\1.WAV"
SaveDir = "z:\extWAV"

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set OpenFile = objFSO.OpenTextFile(SourceFile, 1)
arrData = Split(OpenFile.Read(objFSO.GetFile(SourceFile).Size), _
PNGhead, -1, 0)
OpenFile.Close

arrUB = UBound(arrData)

If Not objFSO.FolderExists(SaveDir) Then objFSO.CreateFolder SaveDir

For i = 1 To arrUB
If i < arrUB Then
SaveOutFile objFSO.BuildPath(SaveDir, CStr(i) & ".png"), _
PNGhead & arrData(i)
Else
arrData2 = Split(arrData(i), PNGend, 2, 0)
SaveOutFile objFSO.BuildPath(SaveDir, CStr(i) & ".png"), _
PNGhead & arrData2(0) & PNGend
End If
Next

arrData = Split(arrData2(1), OGGhead, -1, 0)

SaveOutFile objFSO.BuildPath(SaveDir, "1.ini"), arrData(0)

For i = 1 To UBound(arrData)
SaveOutFile objFSO.BuildPath(SaveDir, CStr(i) & ".ogg"), _
OGGhead & arrData(i)
Next

WScript.Echo "Работа завершена"

WScript.Quit

Sub SaveOutFile(FileName, WriteData)
Set OpenFile = objFSO.OpenTextFile(FileName, 2, True)
OpenFile.Write WriteData
OpenFile.Close
End Sub




© OSzone.net 2001-2012