Swiss File Knife
a command line
free external tools,
- download the free Swiss File Knife Base from Sourceforge. - open the Windows CMD command line, Mac OS X Terminal or Linux shell. - OS X : type mv sfk-mac-i686.exe sfk and chmod +x sfk then ./sfk - Linux: type mv sfk-linux.exe sfk and chmod +x sfk then ./sfk OS X and Linux syntax may differ, check the help within the tool.
sfk partcopy infile offset length outfile [offset2] [-yes] sfk partcopy infile -allfrom startoffset outfile ... sfk partcopy infile -fromto startoffset endoffset outfile ... reads a block of bytes from infile at specified offset, writing them into another file. if offset2 is specified, outfile is not created, but the bytes are used to overwrite other bytes within the output file. by default, the command simulates, checking file lengths but not copying any data. add -yes to really copy contents. negative offsets can be used, to specify positions relative to the file end instead of file start. if output offset2 + length is larger than output file size, the output file is extended. use -noext to avoid this. length syntax: 100000 , 100k = 100000 bytes 2000000k , 2000m , 2g = 2 giga-bytes options -quiet do not print number of copied bytes. -verbose tell how offsets and lengths are calculated. type directly after "partcopy" for all infos. -fromto use this if you don't want to specify offset and length for the input, but a start and end offset (with length being end minus start). -allfrom copy all from start offset, until end of file. -noext do not allow an extension of the output file, stop with error if writing beyond output end. -append if given after output filename, data is added to the end of the output file. see also sfk media keep or cut multiple parts of a file sfk hexdump show binary file contents as hexdump sfk hexfind search data in binary files sfk hextobin convert hexdump to binary web reference http://stahlworks.com/sfk-partcopy examples sfk partcopy first.dat 10000 50 second.dat 500000 copies 50 bytes from first.dat at offset 10000 into second.dat (which should exist) at offset 500000 sfk partcopy first.dat -fromto 0x2710 0x2950 second.dat input start and end offset in hexadecimal numbers, output file is created (no output offset given). sfk partcopy in.txt -allfrom 1000 out.txt -append take from in.txt all data from offset 1000 until end and append that to out.txt. sfk partcopy in.dat -fromto -1000 -900 out.dat -500 take from in.dat all bytes from end minus 1000 until end minus 900, i.e. a 100 bytes block, and write this into output at end minus 500 bytes. (type -verbose after partcopy for details.)
sfk is a free open-source tool, running instantly without installation efforts. no DLL's,
no registry changes - just get sfk.exe from the zip package and use it (binaries for
windows, linux and mac are included).
read more about all sfk functions here.