ให้ ก .pcap
(หรือที่คล้ายกัน) ฉันต้องการเลือกการเชื่อมต่อ TCP หนึ่งรายการและดัมพ์สตรีมข้อมูลแอปพลิเคชันทั้งสอง (ไฟล์ จาก เพื่อนคนอื่นและคนหนึ่ง สอง เพียร์อื่น) ออกเป็นสองไฟล์แยกกันบนดิสก์
สมมติว่าฉันมี .pcap
ไฟล์ที่ฉันรู้จักประกอบด้วยสตรีม TCP แบบเต็ม (จาก SYN ไปจนถึง FIN+ACK/RST สุดท้าย) ของการเชื่อมต่อ HTTP/1.1 ข้อความธรรมดา ฉันต้องการไฟล์ผลลัพธ์สองไฟล์ที่มีเนื้อหา เช่น. หนึ่งไฟล์มี
GET / HTTP/1.1\r\n
โฮสต์: foobar.com\r\n
\r\n
และอีกไฟล์มี
HTTP/1.1 200 ตกลง\r\n
ความยาวเนื้อหา: ...\r\n
... \r\n
\r\n
<html>...</html>
และฉันต้องการให้นี่คือการรับส่งข้อมูลแอปพลิเคชันที่จะเห็น/ส่งในพื้นที่ผู้ใช้ (จาก อ่าน
/เขียน
/ส่ง/
recv`/...). สิ่งที่ฉันต้องการทำคือถ่ายโอนทราฟฟิกและใช้สิ่งนั้นเพื่อทดสอบโปรแกรมแยกวิเคราะห์สำหรับโปรโตคอลเครือข่ายบางอย่าง โปรแกรมแยกวิเคราะห์ควรจะสามารถอ่านไฟล์เหล่านั้นและพยายามแยกวิเคราะห์สตรีมข้อมูลได้
เครื่องมือบรรทัดคำสั่งดังกล่าวมีลักษณะอย่างไร ฉันไม่แน่ใจว่าสิ่งนี้มีประโยชน์มากหรือไม่ แต่ฉันคิดว่าอาจทำให้ชัดเจนขึ้นว่าฉันกำลังมองหาอะไร หากฉันได้ให้ตัวอย่างการใช้งานของเครื่องมือในจินตนาการที่สามารถทำได้
เรียกเครื่องมือจินตนาการ (นี่คือสิ่งที่ฉันกำลังมองหา) tcp-สตรีมแยก
. ฉันอยากจะเรียกมันด้วยสิ่งที่ชอบ
### ตัวอย่างการใช้งานในจินตนาการของเครื่องมือที่ฉันต้องการค้นหา :)
# ดัมพ์จาก 12345 เป็น 23456
tcp-สตรีมแยก \
-i my-captured-packets.pcap
-s 127.0.0.1:12345 \ # ที่อยู่ต้นทาง 127.0.0.1:12345
-d 127.0.0.1:23456 \ # ที่อยู่ปลายทาง 127.0.0.1:23456
-t '2021-01-28 09:12:00Z' \ # TCP conn ยังมีชีวิตอยู่ในเวลานั้น
-w จากพอร์ต 12345 ถึงพอร์ต 23456
# ดัมพ์จาก 23456 เป็น 12345
tcp-สตรีมแยก \
-i my-captured-packets.pcap
-s 127.0.0.1:23456 \ # ที่อยู่ต้นทาง 127.0.0.1:12345
-d 127.0.0.1:12345 \ # ที่อยู่ปลายทาง 127.0.0.1:23456
-t '2021-01-28 09:12:00Z' \ # TCP conn ในขณะนั้น
-w from-port-23456-to-port-12345