Прошел игруху, понравилась музыка, посмотрел на архив - понял что формат ерундовый - написал прогу - извлек музыку, вобщем кому интересно привожу тут код проги.
При желании ее можно переделать под другие архивы, формат других файлов не смотрел, так что там могут попасться запакованные...
Clive Barker's Jericho
Автор
Bourn
, Mar 20 2008 21:18
Сообщений в теме: 3
#1
Отправлено 20 March 2008 - 21:18
Код |
#include <windows.h> #include <stdio.h> const char Name[]="J:\\Games\\Clive Barker's Jericho\\Music.packed"; const char Save[]="H:\\ogg\\"; //dir 'Music' must be created!!! for example: H:\ogg\music\ int main() { char Sign[8]={0}; long Count=0,StrBufCount=0,Size=0,Offs=0,LastPos=0; char *FName=NULL,FFName[4096]={0}; void *Buff=NULL; FILE *file; file=fopen(Name,"rb"); fread(Sign,8,1,file); fread(&Count,sizeof(Count),1,file); for(long i=0;i<Count;i++) { fread(&StrBufCount,sizeof(StrBufCount),1,file); FName=new char[StrBufCount+1]; FName[StrBufCount]=0; fread(FName,StrBufCount,1,file); fread(&Size,sizeof(Size),1,file); Buff=new char[Size]; fread(&Offs,sizeof(Offs),1,file); LastPos=ftell(file); fseek(file,Offs,SEEK_SET); fread(Buff,Size,1,file); fseek(file,LastPos,SEEK_SET); strcpy(FFName,Save);strcat(FFName,FName); FILE *tmp=fopen(FFName,"wb"); fwrite(Buff,Size,1,tmp); fclose(tmp); delete[] FName,Buff; printf("Created file: %s;\tSize: %d\n",FFName,Size); } fclose(file); printf("Operation complete!\n"); return 0; } |
P.S. код без проверок, кому надо - могут добавить
#2
Отправлено 30 March 2008 - 21:16
Bourn молодец, тоесть как я понял большинство форматов можно таким макаром извлекать, просто поменять в исходнике расширение?
#3
Отправлено 05 April 2008 - 07:42
я бы не сказал большинство, но однотипных - да, т.е. смысл в том, что в другом почти аналогичном, но немного отличающемся формате это может не прокатить. К примеру если будет изменен тип структуры для распаковки то программа работать уже не будет и ее надо будет модифицировать.
#4
Отправлено 27 May 2008 - 01:14
Clive Barker's Jericho распаковывает музыку с игры программа Game Extractor.
Правда музыка в формате ogg.
Правда музыка в формате ogg.