PFS archive file format (file system?) is used in images of routers like: Benq ESG 103 NDC NWH8018 and probably many others, grep -a PFS your_firmware. Contents of those files are just HTML pages and images, they also contain .EXE files, sized 0 bytes. Format: ======= All numbers are little endian, unless noted otherwise. Header: ------- 8? byte signature: "PFS/0.9\0" 6 bytes of binary zeroes 16-bit: number of entries File entry (times number of entries): ----------- 32 or 40 (or some other size?) byte file path and name 32-bit of something weird (non-zero, maybe just ^ terminator?) 32-bit offset of a file from files section 32-bit size of a file Files: ------ Just plain file data, as specified in previous section. Decoder: ======== I wrote this little app (pfs.c), to extract files from PFS image. It should compile and work on any Unix. ./pfs < file.pfs should extract some files, and print some useless^H^H^H^Hful info. Daniel Urban wrote a Java version, see PFS.java . Comments/problems/whatever to: Domen Puncer Domen