अगर मेरे पास नीचे दिए गए टेक्स्ट फॉर्मेट में एक पैकेट कैप्चर है, जो फोर्टिगेट या फोर्टिमेल

FortiMail # diag sniffer packet port1 'tcp port 443' 3
interfaces=[port1]
filters=[tcp port 443]
10.651905 192.168.0.1.50242 -> 192.168.0.2.443: syn 761714898
0x0000 0009 0f09 0001 0009 0f89 2914 0800 4500 ..........)...E.
0x0010 003c 73d1 4000 4006 3bc6 d157 fede ac16 .<s.@.@.;..W....
0x0020 0ed8 c442 01bb 2d66 d8d2 0000 0000 a002 ...B..-f........
0x0030 16d0 4f72 0000 0204 05b4 0402 080a 03ab ..Or............
0x0040 86bb 0000 0000 0103 0303 ..........

इसे इस प्रारूप में कैसे बदलें, text2pcap< का उपयोग करने में सक्षम होने के लिए /a> इसे pcap में बदलने के लिए। तो इसे आसानी से wireshark में खोला जा सकता है।

FortiMail # diag sniffer packet port1 'tcp port 443' 3
interfaces=[port1]
filters=[tcp port 443]
10.651905 192.168.0.1.50242 -> 192.168.0.2.443: syn 761714898
0000 00 09 0f 09 00 01 00 09 0f 89 29 14 08 00 45 00 ..........)...E.
0010 00 3c 73 d1 40 00 40 06 3b c6 d1 57 fe de ac 16 .<s.@.@.;..W....
0020 0e d8 c4 42 01 bb 2d 66 d8 d2 00 00 00 00 a0 02 ...B..-f........
0030 16 d0 4f 72 00 00 02 04 05 b4 04 02 08 0a 03 ab ..Or............
0040 86 bb 00 00 00 00 01 03 03 03 ..........
0
msadek 27 पद 2017, 14:49
आप प्रारंभिक प्रारूप, वांछित प्रारूप जानते हैं, तो समस्या क्या है? आप पसंदीदा प्रोग्रामिंग भाषा पर अपना टूल लिख सकते हैं या स्मार्ट टेक्स्ट एडजस्टमेंट करने के लिए रेगेक्स सपोर्ट वाले टेक्स्ट एडिटर का उपयोग कर सकते हैं। या एकाधिक पंक्तियों पर समान क्रियाओं को लागू करने के लिए मैक्रो समर्थन वाले टेक्स्ट एडिटर का उपयोग करें।
 – 
nnovich-OK
29 पद 2017, 17:29

2 जवाब

एक बहुत समान प्रश्न पूछा गया था और पुराने Wireshark प्रश्नोत्तर साइट पर उत्तर दिया गया था। यहां' मेरे उत्तर के साथ उस प्रश्न का लिंक सुविधा के लिए नीचे शब्दशः पोस्ट किया गया है:


हां, आप इसे बदलने के लिए text2pcap का उपयोग कर सकते हैं एक pcap फ़ाइल, लेकिन आपको पहले डेटा को उस प्रारूप में मालिश करने की आवश्यकता होगी जिसे text2pcap स्वीकार करता है, क्योंकि चित्रित प्रारूप वर्तमान में text2pcap द्वारा समर्थित नहीं है।

तो सबसे पहले, आप Kurt Knochner की पर्ल स्क्रिप्ट, यह प्रश्न है और सुविधा के लिए यहाँ कॉपी किया गया है:

#!/usr/bin/perl

$| = 1;

my $regexp_time = '(\d\d:\d\d:\d\d\.\d+ )';
my $regexp_hex = '(0x\d+:\s+)([0-9a-f ]+)+  ';

while (<STDIN>) {

   my $input = $_;

   if ($input =~ /^$regexp_time/) {
      print "$1\n";
   }

   if ($input =~ /$regexp_hex/) {
      my $counter = $1;
      my $line = $2;

      $line =~ s/ //g;
      $counter =~ s/(0x|:)//g;

      print $counter . join(' ', ( $line =~ m/../g )) . "\n";
   }
}

मान लें कि tcpdump का आउटपुट tcpdump.txt नामक फ़ाइल में सहेजा गया है, और कर्ट की पर्ल स्क्रिप्ट convert.pl के रूप में सहेजी गई है, चलाएँ:

cat tcpdump.txt | convert.pl > tcpdump_converted.txt

एक बार यह हो जाने के बाद, परिवर्तित फ़ाइल पर text2pcap चलाएँ:

text2pcap -l 101 tcpdump_converted.txt tcpdump_converted.pcap

ध्यान दें कि यहां मैं "रॉ आईपी" एनकैप्सुलेशन निर्दिष्ट कर रहा हूं। लिंक प्रकारों के लिए http://www.tcpdump.org/linktypes.html देखें।


मुझे एहसास है कि आपका आउटपुट tcpdump से उत्पन्न नहीं हुआ था, इसलिए हो सकता है कि स्क्रिप्ट बिल्कुल काम न करे जैसा कि आपके मामले में है, लेकिन यह बहुत कठिन नहीं होना चाहिए अपनी आवश्यकताओं को पूरा करने के लिए इसे तैयार करने के लिए यदि यह वह नहीं करता है जो आपको बॉक्स से बाहर करने की आवश्यकता है।

0
Christopher Maynard 30 पद 2017, 22:26

मैंने 2 वीआईएम द्वारा इस मुद्दे को हल किया आदेशों को बदलें

यह सभी 4 अंकों के हेक्स को 2 अंकों के हेक्स में बदलने के लिए है

%s/\s\([0-9a-f]\{2}\)\([0-9a-f]\{2}\)/ \1 \2 /g

और यह लाइन की शुरुआत से 0x को हटाने के लिए है

%s/^0x//

फिर भागो:

 text2pcap in-mod.txt out.pcap
0
msadek 3 जिंदा 2018, 12:18