Skip to content
/ KNFE Public

General purpose file extractor focused on archive & encoding formats

License

Notifications You must be signed in to change notification settings

resistiv/KNFE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KNFE (K.N.'s File Extractor)

KNFE (pronounced "knife") is a C#-based GUI & CLI program for extracting and decoding various file formats.

The current focus for KNFE falls upon the following types of file formats:

  • File formats without modern implementations
  • Undocumented video game file formats
  • Generally old & obscure file formats

Usage

KNFE.CLI -i <infile> -f <formatcode> [-o <outdir>] [-v]

Or, double-click KNFE.UI.exe to use the GUI version.

Supported Formats

File Format / Encoding File Name(s) Format Code
BinHex 4.0 *.hqx binhex4
Fallout 1 DAT *.dat fallout
Reel Fishing PAK *.pak, *.mb, *.bp,*.sp, *.t0p, *.t1p, *.u0p, *.fsp, *.tap, *.aqp, *.tpk reelfishing
Uuencode *.uu, *.uue uuencode
Vib-Ribbon PAK *.pak vibribbon

Background

This project started as a passion project several years back while I was thumbing through the UTZOO Wiseman Usenet Archive and discovering lots of file & encoding formats I was unfamiliar with. For a while, I had already been working to reverse engineer various video game file formats, and so I took interest in creating modern implementations of the utilities that decoded these obscure Usenet files.

An earlier version of KNFE exists, but it was poorly structured and not designed for expandability. Thus, this completely re-written and re-factored project was born.

Roadmap

  • Recreate KNFE's core functions as a library (KNFE.Core.dll)
  • Basic UI frontend
  • Basic CLI
  • Create KNFE.Test for testing output, efficiency, etc.
  • Add detailed breakdowns of formats with sources, link in Supported Formats table
  • Implement icons for UI tree
  • File format identification based on file data (eventually remove FSF, etc.)
  • Expand EncodingStreams and derived classes to derive from Streams (replicate GZipStream behaviour)
  • Unify EncodingStreams for related encodings (LZSS variants, preset class)

License

This project is licensed under the GNU GPLv3.