PCAPFIX(1)
π PCAPFIX(1) π General Commands Manual
okay so bestie, welcome to the glow-up clinic for your broken packet captures β¨ This is the section 1 manual page for pcapfix, and she is literally here to save your cursed little files. Buckle up, we're doing this together π«Ά
π NAME π
pcapfix β repair pcap and pcapng files π
β¨ SYNOPSIS β¨
pcapfix [-d] [-n] [-o filename] [-t DATA_LINK_TYPE] [-v] filename
π¦ DESCRIPTION π¦
pcapfix is the tool you call when your pcap and pcapng files are damaged or corrupted and you're sitting there like π. She's written in C and released under the GNU General Public License, so she's classy and free, as she should be.
So here's the tea on fixing your pcap files πΈ First the tool checks whether there's an intact pcap global header, and repairs it if there are some corrupted bytes hanging around. And if there seems to be no global header at all? No worries bestie, pcapfix just adds a self-created one at the beginning of the file. Iconic behaviour, honestly. Then, step two, the tool tries to find pcap packet headers inside the file, below the global header. It checks if the values are correct (or seem to be correct) and tries to repair a packet if there is something wrong. Obsessed with the dedication π
Now for your pcapng files π¦ the tool loops through all packet headers that can be found in the file. It checks for the mandatory Section Header and Interface Description Block and creates them if they're missing (not her being a builder π ). Pcapfix checks for correct block sizes and valid option fields. And if something is wrong? Invalid fields get repaired (if possible) or skipped and adjusted so you finally get a proper pcapng file. Periodt.
π OPTIONS π
-d,--deep-scanβ Force deep scan (default =0) π-s,--soft-modeβ Switch to soft mode packet detection (default =0). This option will force pcapfix to scan for any packet inside the whole file (instead of the first262144(max snaplen) bytes only). She goes all in π«Ά-n,--pcapngβ Force File Format to PCAPNG (default =0). This option will force pcapfix to repair the input file as it were in pcapng format (useful for destroyed file headers). When your header is giving nothing, this is your girl π₯-o,--outfile <filename>β Set the output file name. Default will be input file prepended by"fixed_". Cute, right? π-t,--data-link-type <nr>β Data Link Type (default =1). (See NOTES section below, bestie, there's a whole list π)-v,--verboseβ Enable verbose output (default =0). You can use multiple-voptions to increase verbosity. An verbosity of2will result in very much output data during package search. Not her being a chatterbox π we love her for it.
π EXAMPLES π
Repair the pcap file using deep scan mode, because large blocks of the file are corrupted.
pcapfix -d file.pcap
Repair the file damaged_file.pcapng using verbose output.
pcapfix -v damaged_file.pcapng
Repair the file wlan_traffic.pcap and force the data link type to be 119 (PRISM HEADER).
pcapfix -t 119 wlan_traffic.pcap
Repair the file damaged.pcapng which file header is corrupted and force its format to be pcapng.
pcapfix -n damaged.pcapng
π NOTES π
πΎ Output file name
If you want to perform the reparation process on the input file without creating a separate output file β e.g. in case you are out of space β you can use the -o option and give the same name as the input file. Slay, efficiency π
β οΈ WARNING: This process is DANGEROUS and may destroy your data. You should only use this option if you know what you are doing and accept the risk of losing the input file. Like, fr fr. Do not play with this one π
π Deep scan
In classic pcap files, pcapfix will only scan the first 65536 bytes (maximum packet length) for a proper first packet. If you want to force packet detection even above this limit (e.g. because your file has been heavily destroyed) you can use the deep scan option (-d). She's going digging βοΈβ¨
This option is not necessary for pcapng files because the whole file is arranged in blocks that are 'unlimited' by default. In result pcapfix will always scan the whole pcapng file for further blocks. No cap.
π§Έ Soft mode
There are programs that breach some pcap conventions when writing files. Ignoring those rules do not break the pcap file but they make it difficult for pcapfix to identify the packets in case of broken files. Rude of them, honestly π€
By default pcapfix uses hard mode. If you encounter problems when repairing files, try to switch to soft mode (-s). Pcapfix will then try to find the packets in a more tolerant way. Gentle queen energy πΈ
π¦ PCAPNG Format
Pcapfix will try to identify the file format to repair (pcap / pcapng) before doing any further checks. If the header itself is corrupted, it will assume the format to be classic pcap. To change this behaviour you can force the tool to do a pcapng-repair by supplying -n (--pcapng) option. Communication is key, bestie π
π£οΈ Verbosity
You can use multiple -v options to increase verbosity. An verbosity of 2 will result in very much output data during package search. She will not stop talking and we respect that π
π‘ ASCII-mode transferred Files (FTP)
Pcapfix is able to repair pcap files that have been transferred in ascii-mode via FTP. In those files a proper pcap structure will be created only to make them readable by wireshark etc. The data inside the packets (and some pcap headers) might still be corrupted. To repair those packets a deeper look inside the packet structure (e.g. checksum) will be necessary. So like, it's a vibe fix, not a full glow-up β manage your expectations π
π Data Link Types
You can make pcapfix change / select your data link type by supplying -t option. Although you may select a data link type number between 0 and 255, only the following types are assigned: If the data link type field is corrupt, pcapfix will select LINKTYPE_ETHERNET by default. Reliable as always π
See http://www.tcpdump.org/linktypes.html for further information.
0βLINKTYPE_NULL1βLINKTYPE_ETHERNET6βLINKTYPE_TOKEN_RING7βLINKTYPE_ARCNET_BSD8βLINKTYPE_SLIP9βLINKTYPE_PPP10βLINKTYPE_FDDI50βLINKTYPE_PPP_HDLC51βLINKTYPE_PPP_ETHER100βLINKTYPE_ATM_RFC1483101βLINKTYPE_RAW104βLINKTYPE_C_HDLC105βLINKTYPE_IEEE802_11107βLINKTYPE_FRELAY108βLINKTYPE_LOOP113βLINKTYPE_LINUX_SLL114βLINKTYPE_LTALK117βLINKTYPE_PFLOG119βLINKTYPE_PRISM_HEADER122βLINKTYPE_IP_OVER_FC123βLINKTYPE_SUNATM127βLINKTYPE_IEEE802_11_RADIO129βLINKTYPE_ARCNET_LINUX138βLINKTYPE_APPLE_IP_OVER_IEEE1394139βLINKTYPE_MTP2_WITH_PHDR140βLINKTYPE_MTP2141βLINKTYPE_MTP3142βLINKTYPE_SCCP143βLINKTYPE_DOCSIS144βLINKTYPE_LINUX_IRDA147-162βLINKTYPE_USER0-LINKTYPE-USER15163βLINKTYPE_IEEE802_11_RADIO_AVS166βLINKTYPE_PPP_PPPD169βLINKTYPE_GPRS_LLC177βLINKTYPE_LINUX_LAPD187βLINKTYPE_BLUETOOTH_HCI_H4189βLINKTYPE_USB_LINUX192βLINKTYPE_PPI195βLINKTYPE_IEEE802_15_4196βLINKTYPE_SITA197βLINKTYPE_ERF201βLINKTYPE_BLUETOOTH_HCI_H4_WITH_PHDR202βLINKTYPE_AX25_KISS203βLINKTYPE_LAPD204βLINKTYPE_PPP_WITH_DIR205βLINKTYPE_C_HDLC_WITH_DIR206βLINKTYPE_FRELAY_WITH_DIR209βLINKTYPE_IPMB_LINUX215βLINKTYPE_IEEE802_15_4_NONASK_PHY220βLINKTYPE_USB_LINUX_MMAPPED224βLINKTYPE_FC_2225βLINKTYPE_FC_2_WITH_FRAME_DELIMS226βLINKTYPE_IPNET227βLINKTYPE_CAN_SOCKETCAN228βLINKTYPE_IPV4229βLINKTYPE_IPV6230βLINKTYPE_IEEE802_15_4_NOFCS231βLINKTYPE_DBUS235βLINKTYPE_DVB_CI236βLINKTYPE_MUX27010237βLINKTYPE_STANAG_5066_D_PDU239βLINKTYPE_NFLOG240βLINKTYPE_NETANALYZER241βLINKTYPE_NETANALYZER_TRANSPARENT242βLINKTYPE_IPOIB243βLINKTYPE_MPEG_2_TS244βLINKTYPE_NG40245βLINKTYPE_NFC_LLCP
π DEVELOPMENT π
This tool is still under development! Please send any further wishes, feature requests or problems in compiling and execution to ruport@f00l.de. Additionally You may send me pcap/pcapng files that could not be repaired too in order to improve pcapfix and get your file repaired. She's literally asking for your worst files, bestie, it's giving character development π
For further information visit the pcapfix homepage at http://f00l.de/pcapfix/. π
π MESSAGES AND EXIT CODES π
1, file was corrupted and has been repaired β¨0, file is proper; nothing to repair π-1, invalid options / parameters given π¬-2, cannot open input file for reading π-3, cannot open output file for writing π-4, input file is empty π-5, input file is too small π-6, file type not supported π«-11, not a pcap/pcapng file π€¨-12, unable to repair the file π-13, EOF while reading input file π«-255, unknown error β
πΈ HISTORY πΈ
okay bestie, this is the whole glow-up timeline. every version, every era, every lil fix. no cap. π
1.1.7 - 03.07.2021
- fixed security issues π β security first, always.
1.1.6 - 13.06.2021
- added security boundary checks in
pcapngformat π‘οΈ
1.1.5 - 05.04.2021
- snaplen checks are only performed in soft mode now
- fixed repairs for
dlt 195(ieee 802.15.4withfcs) π§ - fixed (binary) file repair bug under Microsoft Windows
- improved compiling on all platforms (thanks to mdeweerd) π«Ά
1.1.4 - 22.01.2019
- added support for extended pcap file format (kuznetzov)
- fixed
dtl 113(linux cooked) handling (thanks to Andre Luyer) - improved hard and soft mode checks for younger/older packets
- minor fixes and improvements β¨
1.1.3 - 04.09.2018
implemtentedsoft mode (for plausibility checks) π§
1.1.2 - 16.07.2018
- fixed cross compiling (thanks to Helmut Grohne)
- increased maximum snap length to
262144
1.1.1 - 25.12.2017
- added write buffers and support to perform repair process without creation of a separate output file
- fixed another MacOS build problem
- fixed minor bugs
1.1.0 - 31.08.2013
- added checks for valid
pcapngformat (epb) - added
--outfileparameter to chose fixed file name - improved
pcapngpacket alignment (pb,spb,nrb) - improved
pcapngoption fields handling - improved status and verbosity outputs
- fixed reparation bugs with swapped pcap files
- fixed MacOS compile problem
- fixed windows output file name extension missing
- fixed many minor bugs π
1.0.2 - 18.02.2013
- added support for files larger than
2GBon 32bit systems
1.0.1 - 03.11.2013
- added reparation block type id zero (
pcapng) - added reparation of capture length inside EPB (
pcapng) - set data link type to ethernet on missing header (
pcap) - changed missing pcap header threshold
- fixed minor bugs
1.0.0 - 12.10.2013
- added
pcapngsupport - added nanoseconds support (Issue #1)
- improved console output
- minor bugs fixed
0.7.3 - 16.06.2013
- added snoop file detection
- added large file support on 32bit architectures
- improved missing header detection
- fixed compiling errors on hurd and kfreebsd architectures
- fixed minor bugs
0.7.2 - 30.03.2013
- compiles on Apple systems properly now π
- fixed problems installing man-pages (on some systems)
0.7.1 - 03.01.2013
- REALLY fixed file pointer exception on windows64 systems
- updated man-page
0.7 - 18.10.2012
- added support for swapped (big endian) pcap files
- compiles on OpenBSD properly now
- fixed file pointer exception on windows64 systems
- fixed detection bug when corrupted packet is larger than
65536bytes - fixed minimal packet limit to cope with wlan traffic
0.6 - 20.05.2012
- added deep scan option (
-d) to force packet detection inside the whole file - detects ascii-corruption in pcap header (
unix->win) - improved global header and packet checks (
0 <= usec <= 1000000) - repair files that first packet is entirely corrupted
- repair oversized packets
- improved last packet mismatch correction
- fixed reading packets over EOF
0.5 - 05.05.2012
- repair files that packets were not saved chronologically
- detect and repair overlapping packets
- detect and repair cut-off pcap files
- detect and repair ascii-mode transferred pcap files (pcap headers only!)
- added progress bar
- added man-page π
0.4 - 27.04.2012
- completely redesigned packet detection algorithm (replaced bottom-up-recovery with brute-force-packet-guessing)
- improved detection rate by additional plausibility checks
- increased speed when repairing large pcap files
0.3 - 31.03.2012
- when recovering packets size will be checked to be smaller than
65536 - added recognition when a file does not seem to be a pcap file at all
- compiles on windows systems properly now (tested with
dev-cpp) - added option to manually select data link type
0.2 - 11.03.2012
pcapfixcompiles on 64bit systems correctly now- fixed segfault when no filename was given
- fixed (input) file not found bug on directory differ
- added recognition of other data link types beside ethernet in global header
- added source code documentation
0.1 - 01.03.2012
- this is the first version, everything has changed thou :-)
π COPYRIGHT π
Copyright (c) 2012-2021 Robert Krause β periodt, the icon himself. π
Pcapfix is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version. slay, free software realness β¨
Pcapfix is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. no cap, read the license bestie
π AUTHOR π
Written by Robert Krause <ruport@f00l.de>. he did that π
and that's the whole vibe β pcapfix(1), 03 JUL 2021, out. mwah πβ¨
π¦ where this page comes from
- debian bookworm: pcapfix 1.1.7-2 Β· GPL-3.0-or-later
- debian trixie: pcapfix 1.1.7-2 Β· GPL-3.0-or-later
- nixos 26.05: pcapfix 1.1.7
- nixpkgs unstable: pcapfix 1.1.7
- ubuntu jammy: pcapfix 1.1.7-1 Β· GPL-3.0-or-later
- ubuntu noble: pcapfix 1.1.7-2 Β· GPL-3.0-or-later
- ubuntu questing: pcapfix 1.1.7-2
- ubuntu resolute: pcapfix 1.1.7-3 Β· GPL-3.0-or-later
- ubuntu stonking: pcapfix 1.1.7-3 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms