Skip to content

Releases: martinlindhe/feng

0.0.2

05 Jun 07:47
Compare
Choose a tag to compare

Changelog

  • 507e30a - allow top-level 'offset restore' - allow empty if-blocks
  • f6e132a Merge branch 'rework-nodes'
  • 46b5fd6 add 'import' directive to read data from external file, which is required in some file formats
  • 32f92fa add 'parse: continue' directive and remove fatih/color
  • 31bd95a add FILE_NAME constant and no_ext() function to return filename without extension (needed for multi-file formats)
  • 594cb18 add basename() function
  • 9587164 add basic templates for archives/{lzma,zstd}, systems/macos/lzfse
  • 6593c60 add bik template
  • 6af770c add built-in function sevenbitstring()
  • 2729ad9 add compression:pkware + more templates
  • 594662f add f32 datatype, fix unmapped bytes count
  • 7691a5a add more systems/nitendo-wii templates
  • 90d67dd add more templates
  • 4835882 add more templates
  • 5dc5fb0 add more templates
  • 025b5fc add more templates
  • 0300fee add more templates
  • d2720ca add more templates
  • 4f291a9 add more templates
  • f9d5d56 add more templates
  • 9ad6a40 add more templates
  • e08e97c add more templates
  • 4e00772 add note
  • 71d36d2 add skeleton
  • 6cac285 add some Wwise templates
  • 1530da0 add some files
  • 0c9b59b add some more templates
  • 21665b1 add some more templates
  • 6c21140 add some more templates
  • 2a3834e add some more templates
  • 6f16e4e add some more templates
  • 4d9cfc6 add some more templates
  • 0fb59e2 add some more templates
  • 1a02089 add some more templates
  • 1617dc8 add some more templates + speed up text output
  • 8f438e9 add some templates
  • e8ea5f2 add some templates
  • 7826f5c add some templates
  • 302b762 add some templates
  • fa1a942 add some templates
  • aa5f84c add some templates
  • b70eef1 add some templates
  • ed7408c add some templates
  • e0b0ba4 add some templates
  • 00dd11a add some templates
  • 6169d0c add some templates
  • 48d17aa add some templates
  • 29cb87e add some templates
  • 62b1ef2 add some templates
  • 3b04f16 add some templates
  • aadb67c add some templates
  • 6846fc5 add some templates
  • 2f70b30 add some templates & rearrange some
  • 6027cf7 add support for LZO1X compression, compressed:lzo1x
  • 68f82ef add template systems/windows/vssver
  • 21c96a2 add varint variant (vs64), and some more templates
  • b41ffb3 added some templates
  • 442fb21 added some templates
  • 1c79681 archives/arj: decode unix timestamps
  • 6420fb7 bump dependencies
  • cf9c29d ci: update release workflow
  • 25b2143 cleanup: drop field.Value and use int64 for size & offsets
  • 28e1b01 cmd/feng: add --decimal flag to show offsets in decimal rather than default hex
  • e66da24 cmd/feng: add --extract flag to allow extraction without specifying --out-dir. the basename of input file will be used
  • d8f6a0d cmd/feng: add --offset to change start offset
  • db398d1 cmd/feng: add --template arg to force parse input file with specific template
  • 138a8c6 cmd/feng: add --time flag to measure template processing & parse time
  • 8801c7f cmd/feng: also extract data from child nodes
  • ea903e3 cmd/feng: fix --offset
  • f48f1bd cmd/feng: improve --extract output text
  • 966e519 cmd/feng: read user templates from ~/.config/feng
  • c0ba194 cmd/feng: speed up --brief, and add some more templates
  • 4095d38 cmd/renamer: remove app (out of scope for project)
  • 5179827 comments
  • 5ad4343 compression/lzf: rework to use io.Reader and generate a bytes.Buffer
  • c6f909e count bytes read
  • 0632962 diagnostics: warn on unpopped offsets
  • 1099386 do some fewer copies
  • ae588de dont evaluate plain filenames in 'filename' directive
  • 2683b52 eval: refactor and reuse data, large performance gain on larger files
  • 72bd3f8 expand custom structs as child nodes. add --tree argument to cmd/feng
  • a03ed92 extend magic matching to match on a combination of magic bytes and file extension + update windows ico and pcx template to use it
  • 8ef9b4b fix TestEvaluateStructsAndLayout() test
  • b9a7858 fix TestFieldPresent
  • 556cd0e fix presentation of i8,i16,i32,u64,i64 values
  • fcb5d70 fix presentation of signed values
  • 65b7b66 fix some tests
  • 628c1b0 fix some tests
  • 38a657c gamecube: improve some formats
  • 6f5f70e games/data_design_interactive/wadh: add format
  • 9afec4d images/bpg: use vu32
  • 57f926e implement 'filename' directive, use it when extracting files
  • c5c3910 improve TEMPLATE.md
  • b0d19d1 improve some templates
  • bea5163 improve some templates
  • 0d49062 improve systems/windows/xnb template
  • d66ebde improve template
  • 0737e90 improvements with nested custom structs
  • e125f50 internals: rework utf16[2] to mean 2 byte length, rather than 2 characters
  • 6305e68 internals: switch to afero and port tests to use it
  • 8ee312c magic: inherit top level extensions for magic matches
  • f45afc0 make 'offset' a reserved struct name
  • ee0a257 mapper: fix setting of raw text labels
  • 88616f4 mapper: refactor eval functions
  • 592e79c mapper: rename var
  • 97d384e minor fixes
  • 2aeecf8 minor fixes
  • 163570d minor fixes
  • 09e1d18 minor tweaks
  • 349ab0f minor tweaks + another template
  • 3aaba9b minor updates
  • 6c76b4e no_magic: improve auto matching using filenames list of regexp patterns
  • 705ddad present u64 array + improve yaml template error
  • bc299dc pretty print file size
  • 7364048 rearrange some templates
  • ce5692e refactor
  • b3d3942 refactor
  • 87d884a refactor
  • 2e1e2a6 refactor
  • b9df65f refactor
  • 51e154b refactor and speed-up
  • 5bbbd6e refactor and update dependencies
  • ecba58e refactor args
  • 87b513e refactor data extraction and add template for game ObsCure
  • 0a77946 refactor of compression handling
  • e7f274a refactor to improve evaluation speed
  • 2ec1e4f remove 'self.offset' syntax. OFFSET gives current offset value
  • bef2e8c show ascii in no match header dump
  • 88eb4a0 show hex dump of first 0x40 bytes if unmatched file
  • 374a682 simplify
  • 55a24a2 simplify
  • 747cd07 smoketest: add missing file
  • 653fd40 speed up evaluation with fl.evaluateExpressionWithExistingVariables()
  • f6bd6f9 speed up reading
  • efb1b27 sync changes
  • f577abb sync notes
  • bccb36a systems/android: improve dex endian swapping
  • e10271d systems/gamecube: add hvqm4 template
  • 8e72150 template matcher: auto-match no_magic templates in case of a matching extension
  • 25db765 template: add 'sjis' format for shift-jis encoded text
  • 022c087 template: add data type dostimedate
  • c5176ba template: add ext(filename.ext) function
  • e89b43a template: add list_val() function to read a field value from another struct
  • 62afc30 template: add lzf decompression
  • 47a7c12 template: add rgba32 color type
  • 3eee45e template: add support for 'encryption' directive and encrypted:u8 type
  • 287d4e6 template: add zlib_loose compression to allow strict errors
  • 0ae4f19 template: implement xor_key directive
  • 15bca1c template: let peek_ functions to accept ints
  • 0ca58fd templates/games/mmfw: ImageBuilder game asset format
  • 79db08b templates/meta/riff: RIFX (big endian) support
  • 46c20b4 templates: add bitset() function and asciinl data type
  • 42cb7b5 templates: add cleanstring() function and fix a presentation bug
  • 97c14ae templates: add data type u24
  • 4e0f73a templates: add extractor template for godot .pck files
  • 82b23d3 templates: add lzma2 compression
  • d6c0b6c templates: add some new ones
  • 324b14c templates: add support for compressed:gzip stream
  • c115d9b templates: add utf8z data type
  • e6d0085 templates: allow magic offset block to specify endian
  • 9fb7c45 templates: allow patttern matching on arbitrary length ascii
  • 5ea19f3 templates: improve systems/xbox360/live.yml
  • a36db6d templates: minor cleanup
  • 42a2cad templates: recognize GDSC (godot compiled script file)
  • bc52656 templates: recognize WAVEBK11 from Spider-Man 2
  • 9c4c1af templates: remove outdated TODOs and some cleanup
  • 94735eb update README
  • b23e4a9 update README
  • 08b657d update README
  • 15d5422 update dependencies
  • a89e87b update dependencies
  • f6bb74b update dependencies
  • 8c4e06e update some templates
  • a01b7d9 ux: error on invalid layout lines in template
  • def0924 various improvements
  • 67a731c wii stuff

0.0.1

21 Jul 19:43
Compare
Choose a tag to compare

Changelog

  • 3e81893 README: add link to Discord
  • 082a118 TEMPLATE.md: expand 'Endianness' section
  • ead6f54 WIP - if statement rewrite
  • ef58606 WIP - smoketests
  • aa46d40 add % mapping in coverage
  • 047141c add 'SQLite format 3' skeleton
  • b9cff03 add 'until' directive to grab all data until pattern matches
  • b47024d add LICENSE
  • 6aa9e7c add Sony Playstation SFO format
  • 39da158 add TODO
  • 72952ce add XPR0 format (xbox) and draft for .res files from MX Unleashed (xbox)
  • b95933f add XSB (xbox sound bank?) format skeleton (magic 'SDBK')
  • 93d1869 add Xbox XBE format
  • 60839ce add ascii and asciiz data types
  • 12c0c87 add asf (windows media) format skeleton
  • 38fa7d3 add compression:deflate format
  • f238f35 add data type time_t_32 (unix timestamp)
  • aa638a4 add data type utf16z, zero (00 00)-terminated utf16 string
  • 36771d2 add directive 'parse: end' to manually stop format parser (used by archives/rar)
  • 74025ae add filetime data type
  • c6c47a1 add font/ttf format skeleton
  • d83ef37 add format skeletons for XBOX XSB and XWB formats
  • f3899ce add gameboy advance header format
  • 6ef8001 add gameboy header format
  • f98b233 add java .class format skeleton
  • 6836bcd add lz4 archive format + UnityFS asset bundle format
  • 2069e3b add more gamecube formats
  • 037d136 add new format systems/ps3/ps3_npd
  • b1f0594 add new formats archives/ar, systems/os2/ftcomp, windows/compress-kwaj
  • c3947c9 add new formats archives/{iso,teledisk,vdi,winimg}, images/bpg, network/torrent
  • 1ce2fc8 add new formats documents/chm, fonts/{dfont,pfb,ttc,type1,x11snf}
  • 97466d1 add new formats systems/flash/swf, systems/python/pyc
  • 923e6df add nintendo 64 header format
  • 4a047f8 add nintendo ds header format
  • 4478fc9 add offset directive and field.index special iteration index for complex parsing
  • b62c85b add offset() and len() functions
  • 1271551 add references to some synalysis grammars
  • 6f17c50 add references to some winhex templates
  • 7d2b84e add skeleton templates for systems/flash/flv, media/{mkv,mp3}, systems/machos/macho-o
  • 9752452 add smoketests for more formats
  • ba84b69 add support for archives/{iso,mozlz4}, add datatype compressed:lz4
  • 7722dc9 add types dostime (16 bit) and dosdate (16 bit)
  • 11ee56f add utf16le data type
  • 34283ad add windows/regf template
  • c4ef1bb adjust presentation
  • 2ebbbfb allow constants in if-expressions
  • 766aca8 allow ranged units in if-expression
  • df33ba9 android: add dex and 'android resource' format templates
  • 2ed3bdd archive/7zip: improve format by using vu64
  • 04de994 archive/tar: improve format
  • 897a1ed archive/xz: improve format and add vu64 data type (variable encoded u64)
  • b09ce38 archive: add arj format skeleton
  • 19f03bc archives/ar: finish format + rearrange some templates
  • cf04f74 archives/lha: improve template
  • 15f89bc archives/rar: improve format
  • 259e2ec archives/zip: enable deflate extraction + rearrange some templates
  • cccc376 archives: add bzip2 skeleton
  • a8f63c9 archives: improve arj format
  • 1ae128a bit match: fix a typo
  • e381aed bump dependencies
  • ebc3684 ci: add .goreleaser.yml
  • 802f5ff ci: fix TestCompareWithReferenceParse and reduce debug output
  • ea94316 cmd/feng: add --brief for a 1-line description of matching template, disable unimplemented --verbose flag
  • 0fc0373 cmd/feng: add --cpu-profile and --mem-profile argument for debugging
  • 3371032 cmd/feng: add --extract-dir to force stream extraction (currently only comp:zlib
  • 6f417f3 cmd/feng: auto match input file vs all templates
  • 2fb2ba7 cmd/feng: default to hide raw values, show them with --raw
  • 332c5a2 cmd/feng: improve bit and eq matched fields in prensentation
  • 2e9a288 cmd/feng: limit amount of hex data displayed
  • 8619ce4 cmd/feng: propagate template error better
  • e9c42a5 cmd/feng: report amount of unampped trailing bytes, if any
  • a619202 cmd/feng: simple data lister
  • 02f011f cmd/feng: switch from kingpin to kong
  • 82877a4 cmd/renamer: add --verbose flag
  • 37c1d35 cmd/renamer: new cli to mass rename files to the correct extension
  • 81d80b2 cmd/smoketester: print out the slowest mapped files at end of run
  • 920b4b6 cmd\feng: present data type and decode simple formats
  • 7e5a12d convert templates for layout format
  • b4dfff5 databases/sqlite: improve format
  • 4d6c940 decorate structs with label value
  • 333d77f documents/ole_compound: rename & improve format
  • bfb5b34 documents/pdf: slightly improve
  • 0deb883 documents: add pdf format skeleton
  • 26bab0a documents: new format skeletons for doc, hlp, rtf, wri and archives/ar
  • 70cbca6 embed.FS templates
  • f6160cc enable smoketest running with github actions, fixes #1
  • 1f266d7 expand FILE_SIZE to size in bytes
  • 2df5b67 expand self.offset
  • 9ae13cb expand template structs as data types, improve images/gif
  • fd334bd expand variables in ranges
  • f359a75 fix some tests
  • 3ce5f5e fix: map string representation of complex types in eval.go
  • 2b2d6e9 fonts/otf: finish format + add alignment(val,align) helper
  • beecf56 fonts/ttc: improve format greatly templates: evaluate vectors and make usable by expressions, such as offset: V1Header.Offsets[self.index] (fonts/ttc) present: show vector values
  • cb757cf fonts/woff2: improve format
  • 77f5879 fonts/woff: greatly improve template
  • 15069cf fonts: add skeletons for eot,otf,woff,woff2
  • 6c70080 fonts: improve eot format
  • 748c17d fonts: improve otf format
  • 75c45d6 fonts: improve ttf format
  • 786631f gamecube/wii: add basic detection of .nkit.iso images
  • 4c05d83 image/bmp: improve template
  • cf65974 image/bmp: parse test16.bmp
  • c4347d5 image/gif: add smoketest
  • 4b960c9 image/gif: minor improvements
  • 59a169d image/ico: add smoketest
  • 2dc9c4b image/jpeg: add smoketest + fix DHT size calculation
  • 240e3f2 image/pcx: add smoketest
  • 40c1d2f image: add smoketests for remaining supported formats
  • 5d2cb19 images/pcx: disable magic because too many false positives
  • adddd10 implement 'if Field in (1,2,3) and 'if Field notin (1,2,3) statements
  • c491d2f implement MatchedPattern
  • 517b698 implement access to field.offset and field.len properties from template
  • 22fa79d implement data types i8,i16,i32,i64
  • 82b90b2 implement file magic matching for templates
  • 5ff2811 implement sized structs
  • 1bc599e implement start:length absolute address syntax
  • a1ae9da implement string concatenation and use it for label directive expansion, eg: label: self.Key + " = " + self.Value
  • af9a9d8 implement struct slices
  • bc77b70 improve archives/{arj,lz4}
  • 18ca813 improve image/jpeg template
  • 3d7ab50 improve images/bmp template
  • ff0ea78 improve images/tiff
  • 8fcb9a1 improve logging and update notes
  • 6672675 improve parsing for PS4/PS5 CNT files
  • b357ba0 improve presentation of sized fields
  • 3d1837a improve regf template
  • bf1cfd0 improve regf template
  • 2caf74b improve systems/unix/elf and systems/ps4/ps4_self
  • 8ad9936 improve templates/systems/ps3/ps3_pkg
  • 1cc5bfe initial commit
  • b6bdbfe mapper: accept eof errors as valid parse for otherwise valid mapping
  • 56ce99f mapper: add 'data: unseen' directive to mark data for 'SAMPLE PLEASE' prompt + update TODO
  • 439a33f mapper: propagate eof
  • 71f3478 mapper: store file size
  • be520c6 mark up some more templates with 'data: unseen' to prompt for SAMPLES
  • a643e21 minor tweaks
  • d560e2c misc improvements
  • ce116b5 only evaluate datafield ranges once + misc fixes
  • 350157f presentation: present 'eq' field matched values in field data type
  • 1097913 progress git,ico templates
  • 5ecea4f progress png template
  • ab418d2 rar: disable unfinished parsing
  • 285f8b4 rar: improve template
  • 78a128c rar: remove unneeded parse directive and update docs
  • 1e0d40e rearrange test files
  • 5d54243 refactor
  • b972dda refactor
  • 4463806 refactor GetValue
  • 616947d regenerate smoketests with more width + add comp:zlib data type
  • a0e7a86 remove unused u8[12:34] absolute offset format, is better achieved with offset directive
  • 4ae28ae rename archives/7z to archives/7zip
  • 8b37aaa restored smoketests for working formats
  • dcf3be2 rework eval
  • ff0d4fa rework eval more
  • c47295a simplify a test
  • 0d2e964 smoketest: add another sample
  • 1c8f46a smoketest: add image/dds
  • 7a6f6ef smoketest: enable working tests
  • f0a72f6 smoketest: generate reference presentations
  • afcf0b4 sync last changes
  • 5ccd2d3 systems/lua: small improvements
  • dcb29df systems/macos: add pef executable template
  • e5fe46c systems/nintendo-wii-u: add some basic formats
  • f380513 systems/unix: add ELF file format skeleton
  • f9c89b8 systems/xbox/xbe: improve format
  • 6f1d581 systems/xbox: minor improvements
  • b9fc80d systems: add luac 5.2 bytecode format
  • 4ea80a1 template jpeg: SOF0
  • 5d852f2 template: add peek_i16() and peek_i32() functions, improve windows/exe-mz
  • 7dbef50 template: add vu32 - variable-length encoded u32, as used by fonts/woff2
  • e923219 template: allow top-level definition of endian
  • 7ca8e33 templates: minor improvements
  • 4edadd3 tiff: remove link
  • f78238f update README
  • 5eb9758 update dependencies
  • 98ea594 update dependencies
  • 9aac648 update dependencies
  • 60485b6 utf16 string cleanup
  • cb90b2b utf16String: strip trailing NULL bytes
  • 76cd730 windows/exe-mz: detect MZ-LX header
  • 3beabdd windows/exe-mz: detect MZ-PE header
  • ff565b7 windows/exe-mz: improve MZ-NE format
  • 45ee8fa windows/exe-mz: improve format with LE and NE headers + show bitfield pattern index and size in presentation
  • 1f84dbe windows/exe-mz: improved MS-DOS exe format
  • bd71c9b zip: greatly improve parser