text2pcap(1)
text2pcap(1)
NAMN
text2pcap — generera en fångstfil från en ASCII-hexdump av paket
SYNOPSIS
text2pcap [ -a ] [ -b 2|8|16|64 ] [ -D ] [ -e <ethertype> ] [ -E <inkapslingstyp> ] [ -F <filformat> ] [ -i <proto> ] [ -l <typenum> ] [ -N <gränssnittsnamn> ] [ -m <max-paket> ] [ -o hex|oct|dec|none ] [ -q ] [ -r <regex> ] [ -s <källport>,<målport>,<tagg> ] [ -S <källport>,<målport>,<ppi> ] [ -t <tidsformat> ] [ -T <källport>,<målport> ] [ -u <källport>,<målport> ] [ -4 <käll-ip>,<mål-ip> ] [ -6 <käll-ip>,<mål-ip> ] [ --little-endian ] <infil>|- <utfil>|-
text2pcap -h|--help
text2pcap -v|--version
BESKRIVNING
Text2pcap är ett program som läser en ASCII-hexdump och skriver den beskrivna datan till en fångstfil. text2pcap kan läsa hexdumpar som innehåller flera paket och bygga en fångstfil med flera paket. Text2pcap kan också generera dummyhuvuden för Ethernet, IP samt UDP, TCP eller SCTP för att bygga fullt bearbetningsbara paketdumpar från hexdumpar som bara innehåller data på applikationsnivå.
Text2pcap kan skriva filen i flera utformat. Flaggan -F används för att ange vilket format fångstfilen ska skrivas i, och text2pcap -F visar en lista över tillgängliga utformat. Som standard skrivs paketen till utfil i formatet pcapng. Text2pcap stöder också komprimeringsformat, som kan anges med flaggan --compress. Om den inte anges härleds önskad komprimeringsmetod, om någon, från filändelsen på utfil; om filen till exempel slutar på .gz komprimeras utdatafilen som ett gzip-arkiv.
Text2pcap förstår många olika hexdumpformat. Det inbyggda format som Wireshark visar i rutan för paketbyte, kopierar till urklipp, skriver ut och sparar, och som tshark producerar med flaggan --hexdump, är det som genereras av od -Ax -tx1 -v eller hexdump -X -v. Det innebär att varje rad måste börja med ett offset-värde som beskriver positionen i paketet, varje byte visas separat, blanksteg skiljer byten åt, och upprepade eller helt NUL-fyllda rader utelämnas inte. Hexsiffror kan vara stora eller små bokstäver. Text2pcap kan även hantera andra hexdumpformat, varav vissa känns igen automatiskt och andra kräver att rätt flaggor aktiveras.
Offset följs av ett eller flera blanksteg eller tabbar som skiljer dem från bytena. Offset kan också följas av ett enstaka kolon efter siffrorna. Offset kan vara mellan 3 och 8 siffror; hexadecimal bas antas som standard, men oktal eller decimal kan också användas, se -o. Om offset är hexadecimala kan de föregås av 0x eller 0X. Varje paket måste börja med offset noll, och offset noll markerar början på ett nytt paket. Offsetvärden måste vara korrekta; ett oväntat värde gör att det aktuella paketet avbryts och att programmet väntar på nästa paketstart. Det finns också ett läge för ett enda paket utan offset; se -o.
Det finns ingen gräns för radbredd eller antal byte per rad, men rader som bara innehåller hexbyte utan inledande offset ignoreras. Byte måste anges i hex; till skillnad från offset och regex-läget som beskrivs senare stöds inte andra baser som oktal, decimal eller binär för själva bytena. Bytegrupper om två till fyra byte stöds också. Som standard antas dessa vara i nätverksordning (big-endian), men flaggan --little-endian kan användas för little-endian.
Paket kan föregås av en riktningsindikator (I eller O) och/eller en tidsstämpel om detta anges via kommandoraden, se -D och -t. Om båda finns kommer riktningsindikatorn före tidskoden. Tidsstämpelns format anges som ett obligatoriskt argument till -t. Om ingen tidsstämpel kan tolkas används aktuell systemtid för det första paketet, och efterföljande paket får tidsstämplar som ligger en mikrosekund efter föregående paket.
Annan text i indata ignoreras. All text före offset ignoreras, inklusive vidarebefordringssymboler i e-post som >. All text på en rad efter bytena ignoreras, till exempel en ASCII-tolkning av tecknen. Se dock -a för att säkerställa att hexsiffror i ASCII-delen ignoreras om det inte finns någon avgränsare mellan hex-delen och ASCII-översättningen. Varje rad där första icke-blanka tecknet är # ignoreras som kommentar. Vissa hexdumpverktyg använder en rad med en ensam * för att indikera utelämnade rader; detta stöds inte. Textlinjer mellan byte-rader betraktas som ingress och skannas bara efter eventuell riktningsindikator och tidsstämpel.
Varje rad som börjar med #TEXT2PCAP är ett direktiv och kan användas för att skicka alternativ till text2pcap. För närvarande finns inga direktiv implementerade, men i framtiden kan de användas för mer detaljerad kontroll över dumpen och hur den ska behandlas.
I allmänhet är text2pcap ganska tolerant vid inläsning av hexdumpar och har testats med många varianter av trasig eller förvanskad utdata.
Exempel på en dump som text2pcap kan känna igen, med valfri riktningsindikator och tidsstämpel:
I 2019-05-14T19:04:57Z 000000 00 0e b6 00 00 02 00 0e b6 00 00 01 08 00 45 00 000010 00 28 00 00 00 00 ff 01 37 d1 c0 00 02 01 c0 00 000020 02 02 08 00 a6 2f 00 01 00 01 48 65 6c 6c 6f 20 000030 57 6f 72 6c 64 21 000036
Text2pcap kan också skanna en textfil med ett anpassat Perl-kompatibelt reguljärt uttryck som matchar ett enskilt paket. Programmet söker igenom den givna filen, som måste sluta med radbrytning, efter icke-överlappande och icke-tomma strängar som matchar regexet. Namngivna fångstgrupper används för att identifiera fält som ska importeras. Följande fält stöds i regex-läge, ett obligatoriskt och tre valfria:
data— faktisk fångad ramdata att importeratime— paketets tidsstämpeldir— paketets riktningseqno— godtyckligt paket-ID
Fältet data måste vara i vald kodning: hexadecimal (standard), oktal, binär eller base64, och får inte innehålla andra tecken än sådana som hör till kodningen, förutom blanktecken. Fältet time tolkas enligt formatet i -t. Första tecknet i dir jämförs mot en uppsättning tecken för inkommande och utgående trafik; standard är iI< för inkommande och oO> för utgående. Fältet seqno antas vara ett positivt heltal i bas 10.
Exempel på en dump som kan behandlas i regex-läge med regexet
'^(?<dir>[<>])\s(?<time>\d+:\d\d:\d\d.\d+)\s(?<data>[0-9a-fA-F]+)$',
tidsformatet '%H:%M:%S.%f', riktningsmarkörer < och >, samt hexkodning:
> 0:00:00.265620 a130368b000000080060 > 0:00:00.280836 a1216c8b00000000000089086b0b82020407 < 0:00:00.295459 a2010800000000000000000800000000 > 0:00:00.296982 a1303c8b00000008007088286b0bc1ffcbf0f9ff > 0:00:00.305644 a121718b0000000000008ba86a0b8008 < 0:00:00.319061 a2010900000000000000001000600000 > 0:00:00.330937 a130428b00000008007589186b0bb9ffd9f0fdfa3eb4295e99f3aaffd2f005 > 0:00:00.356037 a121788b0000000000008a18
Regexet kompileras med stöd för flerradsläge, och det rekommenderas att använda ankaren ^ och $.
Text2pcap tillåter också att användaren läser in dumpar av data på applikationsnivå och lägger till dummyhuvuden för L2, L3 och L4 före varje paket. Detta gör att Wireshark eller andra fullständiga paketavkodare kan hantera sådana dumpar. Om inkapslingstypen är Ethernet kan användaren välja att lägga till bara Ethernet-huvuden, Ethernet och IP, eller Ethernet, IP och UDP/TCP/SCTP före varje paket. Dessa kan användas både i vanligt hexdump-läge och i regex-läge.
När <infil> eller <utfil> är - används standard in respektive standard ut.
ALTERNATIV
-a- Aktiverar identifiering av ASCII-textdump. Det gör att början av ASCII-delen kan identifieras så att den inte tas med i paketet även om den ser ut som hex. Har ingen effekt i regex-läge.
- Obs: Aktivera inte detta om indatafilen inte innehåller någon ASCII-del, eller om ASCII-dumpen är separerad från hex-dumpen med en tydlig avgränsare som
|.
-b 2|8|16|64- Anger basen för kodningen av paketdata i regex-läge. Stödda värden är 2 (binärt), 8 (oktalt), 16 (hexadecimalt) och 64 (base64). Standard är hex. Har ingen effekt i vanligt hexdump-läge.
-D- Anger att texten före varje paket kan börja med
IellerOför att visa att paketet är inkommande eller utgående. Om både denna flagga och-tanvänds förväntas riktningsindikatorn före tidskoden. I regex-läge används i stället förekomsten av fångstgruppen<dir>.
- Riktningen lagras i pakethuvudena om utformatet stöder det, till exempel pcapng. Den används också vid generering av dummyhuvuden för att växla käll- och destinationsadresser och portar.
-e <ethertype>- Lägg till ett dummy-Ethernet-huvud före varje paket. Ange EtherType i hexadecimal form. Använd detta om din dump innehåller lager 3-huvud och nyttolast, till exempel ett IP-huvud, men ingen lager 2-inkapsling.
- Exempel:
-e 0x806
- för att ange ett ARP-paket.
-E <inkapslingstyp>- Anger paketens inkapslingstyp i utdatafilen.
text2pcap -Evisar en lista över tillgängliga typer. Standard ärether(Ethernet).
- Obs: Detta sätter inkapslingstypen för utdatafilen men översätter inte pakethuvuden och lägger inte till extra huvuden.
-F <filformat>- Anger filformatet för utdatafilen.
text2pcap -Fvisar en lista över tillgängliga utformat. Standard är pcapng.
-h,--help- Skriv versionsnummer och alternativ och avsluta.
-i <proto>- Lägg till dummy-IP-huvuden före varje paket. Ange IP-protokollnumret i decimalform. Använd detta om din dump är nyttolasten i ett IP-paket men saknar IP-huvud.
- Exempel:
-i 46
- för RSVP (IP-protokoll 46).
-l <typenum>- Anger paketens inkapslingstyp i utdatafilen med pcap-länktypnummer. Standard är Ethernet (1).
-m <max-paket>- Ange maximal paketlängd. Standard är 262144. Användbart för att testa olika paketgränser när endast en dataström på applikationsnivå finns tillgänglig.
- Exempel:
od -Ax -tx1 -v stream | text2pcap -m1460 -T1234,1234 - stream.pcap
-N <gränssnittsnamn>- Ange ett namn för gränssnittet när en fil i pcapng-format skrivs.
-o hex|oct|dec|none- Ange basen för offset-värden: hexadecimal, oktal, decimal eller ingen. Standard är hex. Har ingen effekt i regex-läge.
- Obs: Med
-o noneskapas bara ett enda paket, och alla riktningsindikatorer eller tidsstämplar efter första bytet ignoreras.
-P <dissektor>- Lägg till ett EXPORTED_PDU-huvud före varje paket. Ange dissektorn som en sträng. Använd detta om din dump är nyttolasten för ett enskilt protokoll på högre nivå och du vill skapa en fångstfil utan full dummy-protokollstack.
-q- Visa varken sammanfattningen av valda alternativ i början eller antalet bearbetade paket i slutet.
-r <regex>- Bearbeta filen i regex-läge med angivet reguljärt uttryck.
- Obs: Regex-läget använder memory-mapped I/O och fungerar inte på strömmar som inte stöder sökning, som terminaler och pipes.
-s <källport>,<målport>,<tagg>- Lägg till dummy-SCTP-huvuden före varje paket. Ange källport, destinationsport och verifieringstagg i decimalform.
-S <källport>,<målport>,<ppi>- Lägg till dummy-SCTP-huvuden före varje paket, med verifieringstagg 0, och lägg dessutom till ett dummy-SCTP DATA-chunk-huvud med payload protocol identifier om
ppianges.
-t <tidsformat>- Tolka texten före paketet som datum-/tidskod.
tidsformatär en formatsträng som stöds avstrftime(3), kompletterad med%fför bråksekunder upp till nanosekunder.
- Exempel:
%H:%M:%S.%f
- Specialvärdet
ISOanger att strängen ska tolkas enligt ISO-8601.
-T <källport>,<målport>- Lägg till dummy-TCP-huvuden före varje paket. Ange käll- och destinationsport i decimalform. Sekvensnummer börjar på 0.
-u <källport>,<målport>- Lägg till dummy-UDP-huvuden före varje paket. Ange käll- och destinationsport i decimalform.
- Exempel:
-u1000,69
- för att få paketen att se ut som TFTP över UDP.
-v,--version- Skriv fullständig versionsinformation och avsluta.
-4 <käll-ip>,<mål-ip>- Lägg till ett dummy-IPv4-huvud med angivna käll- och destinationsadresser. Ska användas tillsammans med någon av flaggorna
-i,-s,-S,-Teller-u.
- Exempel:
-4 10.0.0.1,10.0.0.2
-6 <käll-ip>,<mål-ip>- Lägg till ett dummy-IPv6-huvud med angivna käll- och destinationsadresser. Ska användas tillsammans med någon av flaggorna
-i,-s,-S,-Teller-u.
--compress <typ>- Komprimera utdatafilen med angiven komprimeringsmetod.
--compressutan argument visar vilka format som stöds för skrivning.
--little-endian- Tolka flerbytesgrupper i little-endian i stället för standarden, nätverksordning (big-endian).
- Obs: Detta gäller bara bytegrupper. Om
-aanvänds antas ASCII-dumpen fortfarande ha normal ordning.
DIAGNOSTIKALTERNATIV
--log-level <nivå>- Ange aktiv loggnivå. Stödda nivåer i stigande ordning är
noisy,debug,info,message,warning,criticalocherror.
--log-fatal <nivå>- Avbryt programmet om meddelanden loggas på angiven nivå eller högre.
--log-domains <lista>- Visa endast meddelanden från angivna loggdomäner.
--log-debug <lista>- Tvinga angivna domäner att logga på debug-nivå.
--log-noisy <lista>- Tvinga angivna domäner att logga på noisy-nivå.
--log-fatal-domains <lista>- Avbryt programmet om meddelanden loggas från angivna loggdomäner.
--log-file <sökväg>- Skriv loggmeddelanden och stderr-utmatning till angiven fil.
SE ÄVEN
- od(1)
- hexdump(1)
xxd(1)pcap(3)- wireshark(1)
- tshark(1)
- dumpcap(1)
- mergecap(1)
- editcap(1)
- strftime(3)
pcap-filter(7)tcpdump(8)
ANMÄRKNINGAR
Detta är manualsidan för Text2pcap 4.7.0. Text2pcap är en del av Wireshark-distributionen. Den senaste versionen av Wireshark finns på projektets webbplats.
FÖRFATTARE
Ursprunglig författare
- Ashok Narayanan