วิธีตั้งโปรแกรม tcpdump เพื่อจับแพ็คเก็ตเท่านั้นและไม่มีอะไรอื่น


0

ฉันกำลังพัฒนาโปรแกรมที่ไฟล์. pcap กำลังจะเป็นอินพุต อย่างไรก็ตามเมื่อฉันรัน tcpdump -w someFile.pcap ใน Terminal ไฟล์. pcap จะเก็บข้อมูลพิเศษเช่น timestamp, microseconds, ความยาวของเฟรมเป็นต้น
ข้อมูลเพิ่มเติมนี้ขัดขวางโปรแกรมของฉันและฉันต้องการทราบว่ามีวิธีใดบ้าง ที่ tcpdump จะจับแพ็คเก็ตดิบและไม่มีอะไรอื่น
ตัวอย่างเช่นไบต์แรกของข้อมูลใน. pcap ควรเป็น "ที่อยู่ปลายทาง" ของส่วนหัวอีเธอร์เน็ตแทนที่จะเป็นประทับเวลาบางส่วน
ขอบคุณ!


-tจะลบการประทับเวลาสำหรับการจับภาพ
Mark Riddell

คำตอบ:


1

ดูเหมือนว่าคุณสนใจเฉพาะไบต์ดิบที่ประกอบด้วยแต่ละแพ็คเก็ต สมมติว่าคุณอาจลองทำสิ่งต่อไปนี้:

tcpdump -r someFile.pcap -xx | grep -P "^\t0x"

ดังที่คุณสามารถดูได้จากtcpdumpman pageซึ่งจะทำให้tcpdumpอ่านไฟล์การจับภาพและ"นอกเหนือจากการพิมพ์ส่วนหัวของแต่ละแพ็คเก็ตพิมพ์ข้อมูลของแต่ละแพ็คเก็ตรวมถึงส่วนหัวระดับลิงค์ใน hex" การวางท่อเอาต์พุตเพื่อgrepดูแลการลบบรรทัดสรุป อาจมีวิธีสอนtcpdump ไม่ให้พิมพ์บรรทัดสรุปเลย แต่ถ้ามีฉันก็หาไม่เจอ ในกรณีใด ๆ ณ จุดนี้คุณเพียงแค่ต้องประมวลผลเอาต์พุตฐานสิบหก

นอกจากนี้คุณยังสามารถบรรลุนี้บิตได้ง่ายขึ้นผมคิดว่าโดยใช้แทนtshark tcpdumpตัวอย่างเช่น:

tshark -r icmp.pcap -x

รูปแบบเอาต์พุตของtcpdumpและtsharkแตกต่างกันอย่างไรในการแสดงและจัดกลุ่มค่าเลขฐานสิบหกและการแสดง ASCII ของไบต์ฐานสิบหกมีอยู่หรือไม่ตามค่าฐานสิบหกดังนั้นคุณอาจต้องทดลองเพื่อดูรูปแบบที่คุณชอบดีกว่า หรือง่ายกว่าสำหรับโปรแกรมของคุณในการแยกวิเคราะห์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.