Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Чем распаковать странный файл? (http://forum.oszone.net/showthread.php?t=213191)

СУБД 13-08-2011 17:46 1731140

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

SendMessage 14-08-2011 04:40 1731386

Это и есть файл с ресурсами - там 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 1731532

SendMessage, ты гений!
Но как/чем ты смог разобрать? Если не секрет и мне в науку.

SendMessage 14-08-2011 15:49 1731592

Обычным скриптом. Конечно, после того, как проанализировал его. :)
читать дальше »
Скрипт не универсальный, именно под парсинг этого файла.
Код:

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



Время: 20:53.

Время: 20:53.
© OSzone.net 2001-