'\" t .\" Title: text2pcap .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-09-03 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" .TH "TEXT2PCAP" "1" "2026-09-03" "\ \&" "\ \&" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" text2pcap \- تولید پرونده ضبط از دامپ هگز ASCII بسته‌ها .SH "خلاصه دستور (SYNOPSIS)" .sp \fBtext2pcap\fP [\~\fB\-a\fP\~] [\~\fB\-b\fP\~2|8|16|64\~] [\~\fB\-D\fP\~] [\~\fB\-e\fP\~\~] [\~\fB\-E\fP\~\~] [\~\fB\-F\fP\~\~] [\~\fB\-i\fP\~\~] [\~\fB\-l\fP\~\~] [\~\fB\-N\fP\~\~] [\~\fB\-m\fP\~\~] [\~\fB\-o\fP\~hex|oct|dec|none\~] [\~\fB\-q\fP\~] [\~\fB\-r\fP\~\~] [\~\fB\-s\fP\~,,\~] [\~\fB\-S\fP\~,,\~] [\~\fB\-t\fP\~\~] [\~\fB\-T\fP\~,\~] [\~\fB\-u\fP\~,\~] [\~\fB\-4\fP\~,\~] [\~\fB\-6\fP\~,\~] [\~\fB\-\-little\-endian\fP\~] <\fIinfile\fP>|\- <\fIoutfile\fP>|\- .sp \fBtext2pcap\fP \fB\-h|\-\-help\fP .sp \fBtext2pcap\fP \fB\-v|\-\-version\fP .SH "توضیحات (DESCRIPTION)" .sp برنامهٔ \fBText2pcap\fP ابزاری است که یک دامپ هگز ASCII را خوانده و داده‌های توصیف‌شده را در یک پروندهٔ ضبط می‌نویسد. \fBtext2pcap\fP می‌تواند دامپ‌های هگز حاوی چندین بسته را بخواند و پروندهٔ ضبطی از چندین بسته بسازد. همچنین \fBText2pcap\fP قادر به تولید سرآیندهای صوری Ethernet، IP و UDP، TCP یا SCTP است تا بتواند از روی دامپ‌های هگز که تنها شامل داده‌های سطح کاربرد (application\-level) هستند، دامپ‌های بسته‌ای کامل و قابل پردازش تولید کند. .sp برنامهٔ \fBText2pcap\fP می‌تواند پرونده را در چندین قالب خروجی مختلف بنویسد. پرچم \fB\-F\fP می‌تواند برای تعیین قالبی که پروندهٔ ضبط در آن نوشته می‌شود به کار رود، دستور \fBtext2pcap \-F\fP فهرستی از قالب‌های خروجی موجود را ارائه می‌دهد. به‌طور پیش‌فرض، بسته‌ها در پروندهٔ \fIoutfile\fP با قالب \fBpcapng\fP نوشته می‌شوند. همچنین \fBText2pcap\fP از قالب‌های فشرده‌سازی پشتیبانی می‌کند که می‌توان با گزینه‌های \fB\-\-compress\fP آن‌ها را مشخص کرد. اگر این گزینه داده نشود، روش فشرده‌سازی مورد نظر، در صورت وجود، از پسوند \fIoutfile\fP استنتاج می‌شود؛ برای نمونه اگر پسوند \*(Aq.gz\*(Aq داشته باشد، پروندهٔ خروجی به صورت یک بایگانی gzip فشرده می‌شود. .sp برنامهٔ \fBText2pcap\fP قالب‌های گوناگون دامپ هگز را درک می‌کند. قالب بومی که \fBWireshark\fP در قاب Packet Bytes نمایش می‌دهد، در کلیپ‌بورد کپی می‌کند، چاپ کرده و ذخیره می‌نماید، و قالبی که \fBtshark\fP با گزینهٔ \fB\-\-hexdump\fP تولید می‌کند، همان قالبی است که توسط \fIod \-Ax \-tx1 \-v\fP یا \fIhexdump \-X \-v\fP تولید می‌شود. بدین معنا که هر خط باید با یک آفست (offset) آغاز شود که جایگاه را در بسته توصیف می‌کند، هر بایت جداگانه نمایش داده می‌شود، فاصله‌ها بایت‌ها را از یکدیگر جدا می‌کنند، و خطوط تکراری یا خطوطی که تماماً NUL (\*(Aq\(rs0\*(Aq) هستند حذف نمی‌شوند. ارقام هگزادسیمال می‌توانند بزرگ یا کوچک باشند. \fBText2pcap\fP می‌تواند سایر قالب‌های دامپ هگز را نیز پردازش کند، که برخی از آن‌ها به‌طور خودکار تشخیص داده می‌شوند و برخی دیگر برای شناسایی مناسب نیاز به فعال‌سازی گزینه‌ها دارند. .sp آفست‌ها با یک یا چند فاصله یا تب که آن‌ها را از بایت‌ها جدا می‌کند دنبال می‌شوند. پس از ارقام آفست، به صورت اختیاری می‌تواند یک دونقطه بیاید. آفست‌ها می‌توانند بین ۳ تا ۸ رقم باشند؛ مبنای هگزادسیمال به‌طور پیش‌فرض در نظر گرفته می‌شود، اما می‌توانند در مبنای هشت یا ده‌دهی نیز باشند \- گزینهٔ \fB\-o\fP را ببینید. اگر آفست‌ها در مبنای هگز باشند، می‌توانند با \fI0x\fP یا \fI0X\fP شروع شوند. هر بسته باید با آفست صفر شروع شود، و آفست صفر نشان‌دهندهٔ آغاز یک بستهٔ جدید است. مقادیر آفست باید صحیح باشند؛ یک مقدار غیرمنتظره موجب لغو بستهٔ فعلی شده و برنامه منتظر شروع بستهٔ بعدی می‌ماند. همچنین یک حالت تک‌بسته‌ای بدون آفست نیز وجود دارد؛ گزینهٔ \fB\-o\fP را ببینید. .sp هیچ محدودیتی در پهنا یا تعداد بایت‌ها در هر خط وجود ندارد، اما خطوطی که تنها شامل بایت‌های هگز بدون آفست ابتدایی هستند نادیده گرفته می‌شوند (به عبارت دیگر، در خطوط طولانی که دچار شکست خط (wrap) می‌شوند نباید نویسهٔ خط جدید درج شود). بایت‌ها حتماً باید در مبنای هگز باشند؛ بر خلاف آفست‌ها (و حالت جایگزین regex که در ادامه به آن اشاره می‌شود)، سایر پایه‌ها مانند هشت، ده‌دهی یا دودویی پشتیبانی نمی‌شوند. گروه‌های بایتی دو تا چهار بایتی نیز پشتیبانی می‌شوند. به‌طور پیش‌فرض فرض بر این است که گروه‌های بایتی با ترتیب بایت شبکه (big\-endian) هستند؛ گزینهٔ \fB\-\-little\-endian\fP می‌تواند برای پشتیبانی از ترتیب بایت little\-endian استفاده شود. .sp بسته‌ها می‌توانند با یک نشانگر جهت (\*(AqI\*(Aq یا \*(AqO\*(Aq) و/یا یک برچسب زمانی (در صورت مشخص شدن در خط فرمان، گزینه‌های \fB\-D\fP و \fB\-t\fP را ببینید) همراه باشند. اگر هر دو موجود باشند، نشانگر جهت پیش از برچسب زمانی قرار می‌گیرد. قالب برچسب‌های زمانی به عنوان یک پارامتر اجباری برای \fB\-t\fP تعیین می‌شود. اگر هیچ برچسب زمانی تجزیه نشود، برای بستهٔ اول زمان فعلی سیستم استفاده می‌شود، در حالی که بسته‌های بعدی با برچسب زمانی یک میکروثانیه دیرتر از بستهٔ قبلی نوشته می‌شوند. .sp سایر متون موجود در داده‌های ورودی نادیده گرفته می‌شوند. هر متنی پیش از آفست نادیده گرفته می‌شود، از جمله نویسه‌های بازارسال رایانامه \*(Aq>\*(Aq. هر متنی در یک خط پس از بایت‌ها نادیده گرفته می‌شود، مانند دامپ نویسه‌های ASCII (اما گزینهٔ \fB\-a\fP را ببینید تا مطمئن شوید در صورت عدم وجود جداکننده بین دامپ هگز و ترجمهٔ نویسه‌ای ASCII، ارقام هگز در دامپ نویسه‌ها نادیده گرفته می‌شوند). هر خطی که نخستین نویسهٔ غیرفاصله‌ای آن یک \*(Aq#\*(Aq باشد به عنوان کامنت نادیده گرفته خواهد شد. برخی از ابزارهای دامپ هگز از خطی شامل یک \*(Aq*\*(Aq برای نشان دادن خطوط حذف‌شده استفاده می‌کنند، که یا کپی خط قبلی است و یا تماماً از بایت‌های NUL (\*(Aq\(rs0\*(Aq) تشکیل شده است؛ این مورد پشتیبانی نمی‌شود. هر خط متنی بین خطوط رشته‌های بایتی به عنوان مقدمه (preamble) تلقی می‌شود؛ ابتدای مقدمه برای یافتن نشانگر جهت و برچسب زمانی همان‌گونه که در بالا ذکر شد بررسی می‌شود و در غیر این صورت نادیده گرفته خواهد شد. .sp هر خطی که با #TEXT2PCAP شروع شود یک دستورالعمل (directive) است و می‌توان گزینه‌ها را پس از این دستور درج کرد تا توسط \fBtext2pcap\fP پردازش شوند. در حال حاضر هیچ دستورالعملی پیاده‌سازی نشده است؛ در آینده ممکن است از این دستورالعمل‌ها برای کنترل دقیق‌تر روی دامپ و نحوهٔ پردازش آن مانند برچسب‌های زمانی، نوع کپسوله‌سازی و غیره استفاده شود. .sp به‌طور کلی، به جز این محدودیت‌ها، \fBtext2pcap\fP در خواندن دامپ‌های هگز بسیار منعطف عمل می‌کند و با انواع خروجی‌های مخدوش‌شده (از جمله مواردی که چندین بار از طریق ایمیل بازارسال شده‌اند، شکستگی‌های محدود خط و غیره) آزمایش شده است. .sp در اینجا نمونه‌ای از یک دامپ که \fBtext2pcap\fP می‌تواند شناسایی کند، به همراه نشانگر اختیاری جهت و برچسب زمانی آورده شده است: .sp .if n .RS 4 .nf .fam C 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 .fam .fi .if n .RE .sp همچنین \fBText2pcap\fP قادر است یک پروندهٔ متنی ورودی را با استفاده از یک عبارت منظم سازگار با Perl (PCRE) سفارشی که با یک بسته تطبیق پیدا می‌کند، پویش کند. \fBtext2pcap\fP پروندهٔ داده‌شده (که باید به \*(Aq\(rsn\*(Aq ختم شود) را برای یافتن رشته‌های غیرهمپوشان و غیرخالی که با عبارت منظم تطابق دارند جستجو می‌کند. زیرگروه‌های ضبط‌کنندهٔ نام‌گذاری‌شده (named capturing subgroups)، که باید دقیقاً یک بار در هر بسته تطبیق یابند، برای شناسایی فیلدهای وارداتی استفاده می‌شوند. فیلدهای زیر در حالت regex پشتیبانی می‌شوند؛ یک مورد اجباری و سه مورد اختیاری: .sp .if n .RS 4 .nf .fam C "data"\& داده‌های واقعی فریم ضبط‌شده برای واردسازی "time"\& برچسب زمانی بسته "dir"\& جهت بسته "seqno" شناسه اختیاری بسته .fam .fi .if n .RE .sp فیلد \*(Aqdata\*(Aq داده‌های ضبط‌شده است که باید در یکی از رمزگذاری‌های تعیین‌شده باشد: هگزادسیمال (پیش‌فرض)، هشت‌هشتی، دودویی، یا base64، و فیلد داده نباید شامل هیچ نویسه‌ای خارج از مجموعهٔ نویسه‌های آن رمزگذاری به جز نویسه‌های فاصله‌ساز باشد. فیلد \*(Aqtime\*(Aq بر اساس قالب موجود در پارامتر \fB\-t\fP تجزیه می‌شود. اولین نویسهٔ فیلد \*(Aqdir\*(Aq با مجموعه‌ای از نویسه‌های مربوط به بسته‌های ورودی (inbound) و خروجی (outbound) مقایسه می‌شود که به‌طور پیش‌فرض برای ورودی "iI<" و برای خروجی "oO>" است تا جهت بسته تعیین شود. فیلد \*(Aqseqno\*(Aq به عنوان یک عدد صحیح مثبت در مبنای ۱۰ برای یک شناسهٔ دلخواه در نظر گرفته می‌شود. اطلاعات یک فیلد اختیاری تنها در صورتی نوشته خواهد شد که آن فیلد در عبارت منظم وجود داشته باشد و قالب پروندهٔ ضبط از آن پشتیبانی کند (برای نمونه، قالب pcapng از هر سه فیلد پشتیبانی می‌کند، اما قالب pcap تنها از برچسب‌های زمانی پشتیبانی می‌نماید). .sp در اینجا نمونه‌ای از یک دامپ آورده شده است که حالت regex می‌تواند با عبارت منظم \*(Aq^(?[<>])\(rss(?