Talan emlekeztek a CoV cimu ujsagra (aztan PC Ultra volt egy evig). Mar a PCU idokben jelentek meg CD-k, CDU neven. Par szamon az osszes addigi CoV/PCU es egyeb Com-Ware termek szovege rajta volt. Most megtalaltam a wincsimen. dosbox alatt siman megy, mountolni kell a konyvtarat kulon meghajtokent es el is indithato. Maga az archivum egy 40M file. Nezegetni lehet, de az egeszet szeretnem dumpolni, viszont lovesem sincs, mivel alljak neki. Valahogy nem hiszem, hogy a Doom WAD felepitest hasznaltak, bar lehet. file parancs sem ismeri fel, milyen formatum lehet.
A konvytarlista:
-rw-r--r-- 1 celtic celtic 307978 2002 márc 31 adv.scx
-rw-r--r-- 1 celtic celtic 56 szept 25 21.35 cdu.bat
-rw-r--r-- 1 celtic celtic 117224 2002 márc 31 cdultra.art
-rw-r--r-- 1 celtic celtic 773 2002 márc 31 cdultra.com
-rw-r--r-- 1 celtic celtic 967 2002 nov 29 cdultra.pif
-rw-r--r-- 1 celtic celtic 37411065 1998 febr 13 cdultra.wad
-rw-r--r-- 1 celtic celtic 17742 2002 márc 31 cdu.vxd
-rw-r--r-- 1 celtic celtic 21777 2002 márc 31 cplay.vxd
-rw-r--r-- 1 celtic celtic 34177 1994 febr 2 mouse.com
-rw-r--r-- 1 celtic celtic 841 1994 febr 2 mouse.ini
-rw-r--r-- 1 celtic celtic 34429 1994 febr 2 mouse.sys
-rw-r--r-- 1 celtic celtic 41315 2002 márc 31 unzip.vxd
A vxd fileok MS-DOS exe-k, a cdu.bat subst-vel mountolja (de a dosbox mount parancsa is jo) es elinditja a cdultra.com filet, ami utana (gondolom), inditja a vxd-ket, amik kibontjak a wad filet. De hogyan? Van ra otlet?
Itt az egesz cucc, tar.gz-ben.
- 2211 megtekintés
Hozzászólások
Valami wad szerkesztovel nem nezted meg? miert ne lehetne a doom wad formatuma? Lattam mar mashol is.
- A hozzászóláshoz be kell jelentkezni
file parancs felismeri. Az elso negy byte amugyis "IWAD" a wad file eseten.
- A hozzászóláshoz be kell jelentkezni
Van PWAD is egyébként, majd ránézek ha lesz időm.
- A hozzászóláshoz be kell jelentkezni
Koszi. Az az erzesem egyebkent, hogy valami sajat rutin lehet. Mint a diskmagoknal. Igazabol az lenne a jo, ha az egeszet dumpolni tudnam txt-be.
- A hozzászóláshoz be kell jelentkezni
Hallod, a .wad fájl felépítése tök egyszerű.
A fájl végén vannak a fájl-rekordok.
Ott vannak a fájlnevek, nyílván a fájlnevek után a kezdőpozíció, méret, stb.
A fájl utolsó négy bájtja szerintem egy longint, ami egy pointer a fájl-táblázat kezdetére a .wad-ban.
Ha tudsz programozni, szvsz fél-egy óra alatt ki lehet találni próbálgatással a fájl-rekordok felépítését.
Aztán az más kérdés, hogy a .wad-ban levő fájlok tömörítve vannak-e, esetleg titkosítva, vagy mi van velük, mert nyers .txt tartalmat nem láttam a .wad-ban.
(Mivel ott az unzip.vxd, arra tippelek, hogy a .wad-ból ki kell szedni az egyes fájlokat, és unzippelni - de lehet, hog ez nem így van.)
A cdplay.vxd meg egyebek biztos, hogy tömörítve vannak valamilyen exepackerrel egyébként, de nem UPX-szel, az is biztos.
Most így hirtelen nem emlékszem, hgoy akkoriban miylen exepackerek voltak divatban, majd még nézegetem a csomagot.
Na előszedtem doxboxba a jó kis régi dos navigatort meg borland c-t, hátha. :)
- A hozzászóláshoz be kell jelentkezni
A fileneveket en is lattam a vegen, de ennyi, amire jutottam. Programozni nem tudok, sot, kimondottam mumusom a kerdes. (most van egy java targyam, elore rettegek, meg egy szoftver-szigorlat, aminek harmadszor futok neki....)
Exepacker: file parancs szeriunt:
unzip.vxd: MS-DOS executable, MZ for MS-DOS, WWPACK compressed
De ismeretlen ez a wwpack. De nagyon halas lennek, ha rajonnel :) Nem tudom, mi modon fejezem ki halamat, de megtalaljuk a modjat, azt hiszem.
- A hozzászóláshoz be kell jelentkezni
Ez az unzip.vxd valami unzip klón 1996-ból, nevezd át .exe-re és "megnevezi" magát :). Elvileg ezzel kellene kicsomagolni a wad-ból a fileokat, de még nem sikerült, mert hiányolja az End-Of-Central-Directory-Signature-t, szóval tudja, hogy zip, csak azt nem, hogy mikből áll. Még szórakozok vele (de csak picit)
De van egy fapados workaround a txt-t kinyerésére :D. Szóval elindítod a cuccot, megjelenítesz egy cikket, majd egy másik ablakban belekukkantasz a könyvtárába és ott $tmpfile.$$$ néven ott a pure txt cucc. Ezt lemásolod, nyitod a másik cikket stb... (windows alatt az alt+tab-os váltásra igencsak sokat kell várni, szóval no panic :) Linux alatt is meglesem majd.)
Ja, nem pkunlite, nem UPN (Unpack), nem wpexpand :), hirtelen ezeket a exe kicsomagolókat találtam, de nem váltak be.
- A hozzászóláshoz be kell jelentkezni
Igen, hat en is addig jutottam a post megirasa elott, hoyg atneveztem exe-re es megprobaltam megnyitni vele a wad filet (vagy ezt nem irtam fent). Es en is a hibauzenetig jutottam el.
Ugyanilyen fapados, ha megnyitom a cikket es ranyomok a Lemez ikomnra, lementi.
Igazabol abban remenykedtem, hatha feltunk az az user, aki annak idejen ezt irta. Sztem a Scanner diskmag keszitoi kozul lehetett valaki.
- A hozzászóláshoz be kell jelentkezni
+1
KAMI | 神
--
Támogatás | OxygenOffice | Fordításaim és SeaMonkey
- A hozzászóláshoz be kell jelentkezni
Ez mire? :) A postra?
- A hozzászóláshoz be kell jelentkezni
Nos, senkinek sincs otlete? :)
- A hozzászóláshoz be kell jelentkezni
A cdultra.wad állomány nem a doom-nál megszokott IWAD vagy PWAD, hanem egy független találmánynak tűnik. A szerkezetét "visszafejtettem", az alábbi:
- Az utolsó két byte egy little endian short, amely azt mondja meg, hány bejegyzés található az indexben.
- Az index a file végén található, az utolsó két byte-ot közvetlenül megelőzően.
- Az index egy bejegyzése négy mezőből áll:
- filenév hossza 1 byte-on
- filenév (12 karakterre paddelve NUL-lal, de nem NUL-terminált)
- adattartalom kezdő-offszet-je (4 byte-os little endian unsigned)
- adattartalom hossza (ugyanúgy)
- Amennyiben az offszet és a hossz 0xFFFFFFFF, úgy a filenév egy relatív könyvtárnevet tartalmaz.
- A relatív könyvtárnév lehet ".." is. Az indexbeli bejegyzések sorrendje számít, a könyvtárfa mélységi bejárását adja meg -- ezért lehetnek a könyvtárnevek relatívak.
A fentieknek megfelelően az alábbi "program" (tág értelemben használva a szót) kibontja a cdultra.wad-ot. Futtatandó a cdultra.wad mellett állva, a könyvtárfa a "wad-extract" alkönyvtár alá kerül.
Az igazi cumi azonban csak itt következik, ugyanis az egyes file-ok valamivel tömörítve vagy kódolva vannak, amiről gőzöm sincs. Ehhez valószínűleg vissza kellene fejteni (de legalábbis "diszasszemblálni") a DOS-os diskmag programot.
Nahát akkor itt a "forrás".
/* ABSOLUTELY NO ERROR CHECKING, NO PORTABILITY, NO DATA VALIDATION */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
struct idx
{
char name[13];
unsigned pos, size;
};
int
main(void)
{
FILE *f;
short unsigned num_entries;
unsigned i;
struct idx *toc;
f = fopen("cdultra.wad", "r");
fseek(f, -2, SEEK_END);
fread(&num_entries, 2, 1, f);
toc = malloc(num_entries * sizeof *toc);
fseek(f, - (2 + num_entries * (1 + 12 + 4 + 4)), SEEK_END);
for (i = 0; i < num_entries; ++i) {
char unsigned fnamelen;
fread(&fnamelen, 1, 1, f);
fread(toc[i].name, 1, 12, f);
toc[i].name[fnamelen] = '\0';
fread(&toc[i].pos, 4, 1, f);
fread(&toc[i].size, 4, 1, f);
};
mkdir("wad-extract", 0700);
chdir("wad-extract");
for (i = 0; i < num_entries; ++i) {
if (toc[i].pos == 0xFFFFFFFFu) {
if (0 == strcmp(toc[i].name, "..")) {
fprintf(stderr, "%4u: leveling up\n", i);
chdir("..");
}
else {
fprintf(stderr, "%4u: making and entering directory \"%s\"\n", i,
toc[i].name);
mkdir(toc[i].name, 0700);
chdir(toc[i].name);
}
}
else {
char unsigned *data;
FILE *dataf;
fprintf(stderr, "%4u: extracting \"%s\" (%u)\n", i, toc[i].name,
toc[i].size);
data = malloc(toc[i].size);
fseek(f, toc[i].pos, SEEK_SET);
fread(data, 1, toc[i].size, f);
dataf = fopen(toc[i].name, "w");
fwrite(data, 1, toc[i].size, dataf);
fclose(dataf);
free(data);
}
}
return 0;
}
- A hozzászóláshoz be kell jelentkezni
Koszi szepen. Tenyleg szepen kibontotta. Most torom a fejem, mivel lehetne felismerni a kibontott formatumot. De attol felek, csak az marad, hoyg vissza kellene fejteni a proggit, ahhoz meg en nagyon kisfiu vagyok :(
- A hozzászóláshoz be kell jelentkezni
Csak annyi, hoyg vegre megtalaltam a Scannereket (meg par masik diskmagot), igy a jovonek ideirom:
ftp://ftp.scene.org/pub/mags/scanner.hu/
Ertelemszeruen a szulokonyvtarban egyeb magokat is lehet bongeszni/leotlteni...
- A hozzászóláshoz be kell jelentkezni