EDITCAP(1)   EDITCAP(1)

editcap - ویرایش و/یا تبدیل قالب فایل‌های ضبط

editcap [ -a <frame:comment> ] [ -A <start time> ] [ -B <stop time> ] [ -c <packets per file> ] [ -C [offset:]<choplen> ] [ -E <error probability> ] [ -F <file format> ] [ -i <seconds per file> ] [ -o <change offset> ] [ -L ] [ -r ] [ -R <frame:timestamp> ] [ -s <snaplen> ] [ -S <strict time adjustment> ] [ -t <time adjustment> ] [ -T <encapsulation type> ] [ -V ] [ --inject-secrets <secrets type>,<file> ] [ --discard-all-secrets ] [ --discard-name-resolution ] [ --capture-comment <comment> ] [ --discard-capture-comment ] [ --discard-packet-comments ] [ --preserve-packet-comments ] infile outfile [ packet#[-packet#] ... ]

editcap -d -D <dup window> -w <dup time window> [ -V ] [ -I <bytes to ignore> ] [ --skip-radiotap-header ] [ --set-unused ] [ --sctp-split ] infile outfile

editcap --extract-secrets [ -V ] infile outfile

editcap -h|--help

editcap -v|--version.SH "توضیحات (DESCRIPTION)"

Editcap برنامه‌ای است که بخشی یا تمامی بسته‌های ضبط‌شده را از infile می‌خواند، در صورت تمایل آن‌ها را به روش‌های گوناگون تبدیل می‌کند و بسته‌های حاصل را در outfile (یا فایل‌های خروجی) ضبط می‌نویسد.

به‌طور پیش‌فرض، این برنامه همه بسته‌ها را از infile می‌خواند و آن‌ها را با قالب پرونده pcapng در outfile می‌نویسد. برای خواندن از ورودی استاندارد یا نوشتن در خروجی استاندارد، به ترتیب از '-' به جای infile یا outfile استفاده کنید.

گزینه‌های -A و -B به شما اجازه می‌دهند محدوده زمانی خواندن بسته‌ها از infile را محدود کنید.

می‌توان فهرستی اختیاری از شماره بسته‌ها را در انتهای دستور مشخص کرد؛ شماره بسته‌های مجزا که با فاصله از هم جدا شده‌اند و/یا بازه‌هایی از شماره بسته‌ها را می‌توان به صورت start-end مشخص نمود که به همه بسته‌ها از start تا end اشاره دارند. به‌طور پیش‌فرض بسته‌های انتخاب‌شده با این شماره‌ها در فایل ضبط نوشته نخواهند شد. اگر پرچم -r مشخص شود، کل فرایند انتخاب بسته معکوس می‌شود؛ در این حالت تنها بسته‌های انتخاب‌شده در فایل ضبط نوشته خواهند شد.

همچنین می‌توان از Editcap برای حذف بسته‌های تکراری استفاده کرد. چندین گزینه مختلف (-d، -D و -w) برای کنترل پنجره بسته یا پنجره زمانی نسبی جهت مقایسه و تشخیص موارد تکراری به کار می‌روند.

از Editcap می‌توان برای انتساب رشته‌های یادداشت به شماره فریم‌ها استفاده کرد.

برنامه Editcap قادر به شناسایی، خواندن و نوشتن همان فایل‌های ضبطی است که توسط Wireshark پشتیبانی می‌شوند. فایل ورودی نیازی به پسوند نام فایل خاصی ندارد؛ قالب فایل و فشرده‌سازی اختیاری gzip، zstd یا lz4 به‌طور خودکار شناسایی خواهند شد. نزدیک به آغاز بخش DESCRIPTION در wireshark(1) یا https://www.wireshark.org/docs/man-pages/wireshark.html توضیحات مفصلی درباره نحوه مدیریت این موضوع توسط Wireshark آمده است که مشابه روش مدیریت آن در Editcap می‌باشد.

Editcap می‌تواند فایل را در چندین قالب خروجی بنویسد. پرچم -F می‌تواند برای مشخص کردن قالبی که فایل ضبط در آن نوشته می‌شود استفاده شود؛ دستور editcap -F فهرستی از قالب‌های خروجی موجود را ارائه می‌دهد. همچنین Editcap می‌تواند فایل خروجی را فشرده کند. گزینه --compress می‌تواند نوع فشرده‌سازی را مشخص کند. اگر این گزینه ارائه نشود، روش فشرده‌سازی دلخواه (در صورت وجود) از پسوند outfile استنباط می‌شود؛ برای مثال، اگر نام فایل خروجی دارای پسوند .gz باشد، قالب gzip استفاده می‌شود.

همچنین می‌توان از Editcap برای استخراج کلیدهای رمزگشایی تعبیه‌شده از قالب‌های فایلی مانند pcapng که حاوی آن‌ها هستند، به جای نوشتن فایل ضبط، استفاده کرد.

-a <framenum:comment>

رشته یادداشت داده‌شده را به شماره فریم مشخص‌شده اختصاص می‌دهد. می‌تواند برای چندین فریم تکرار شود. فقط آخرین رشته یادداشت مشخص‌شده در خط فرمان برای هر شماره فریم یکتا ذخیره خواهد شد. برای رشته‌های یادداشتی که شامل فاصله هستند باید از علامت نقل‌قول استفاده شود.

به‌طور پیش‌فرض، گزینه -a هرگونه و تمامی یادداشت‌های بسته را برای شماره فریم داده‌شده جایگزین خواهد کرد. گزینه --preserve-packet-comment را به خط فرمان اضافه کنید تا یادداشت‌های از پیش موجود بسته حفظ شوند.

-A <start time>

تنها بسته‌هایی را می‌خواند که برچسب زمانی آن‌ها در یا پس از <start time> باشد. زمان می‌تواند در قالب ISO 8601 یا در قالب برچسب زمانی Unix epoch داده شود.

قالب ISO 8601 یکی از این دو حالت است:

YYYY-MM-DD HH:MM:SS[.nnnnnnnnn][Z|±hh:mm]

یا

YYYY-MM-DDTHH:MM:SS[.nnnnnnnnn][Z|±hh:mm]

بخش اعشاری ثانیه اختیاری است، همان‌طور که اختلاف منطقه زمانی با UTC اختیاری می‌باشد (که در این صورت زمان محلی فرض می‌شود).

قالب Unix epoch بر حسب ثانیه‌های سپری‌شده از مبدأ یونیکس (Unix epoch) و نانوثانیه‌ها است، که نقطه یا ویرگول ثانیه‌ها و نانوثانیه‌ها را از هم جدا می‌کند. نانوثانیه‌ها اختیاری هستند. مبدأ یونیکس 1970-01-01 00:00:00 UTC است، بنابراین این قالب زمان محلی نیست.

-B <stop time>

تنها بسته‌هایی را می‌خواند که برچسب زمانی آن‌ها قبل از <stop time> باشد. زمان می‌تواند در قالب ISO 8601 یا در قالب برچسب زمانی Unix epoch داده شود.

قالب ISO 8601 یکی از این دو حالت است:

YYYY-MM-DD HH:MM:SS[.nnnnnnnnn][Z|±hh:mm]

یا

YYYY-MM-DDTHH:MM:SS[.nnnnnnnnn][Z|±hh:mm]

بخش اعشاری ثانیه اختیاری است، همان‌طور که اختلاف منطقه زمانی با UTC اختیاری می‌باشد (که در این صورت زمان محلی فرض می‌شود).

قالب Unix epoch بر حسب ثانیه‌های سپری‌شده از مبدأ یونیکس (Unix epoch) و نانوثانیه‌ها است، که نقطه یا ویرگول ثانیه‌ها و نانوثانیه‌ها را از هم جدا می‌کند. نانوثانیه‌ها اختیاری هستند. مبدأ یونیکس 1970-01-01 00:00:00 UTC است، بنابراین این قالب زمان محلی نیست.

-c <packets per file>

خروجی بسته‌ها را بر اساس تعداد بسته‌های یکنواخت با حداکثر <packets per file> بسته در هر فایل، به فایل‌های مختلف تقسیم می‌کند.

هر فایل خروجی با یک میانوند _nnnnn[_YYYYmmddHHMMSS] که قبل از پسوند فایل (که ممکن است خالی باشد) outfile درج می‌شود، ایجاد خواهد شد. این میانوند شامل شماره ترتیبی فایل خروجی (با شروع از 00000)، و به دنبال آن برچسب زمانی اولین بسته آن است. در صورتی که فایل ورودی حاوی اطلاعات برچسب زمانی نباشد، برچسب زمانی حذف می‌شود.

پس از این که تعداد بسته‌های مشخص‌شده در فایل خروجی نوشته شد، فایل خروجی بعدی باز می‌شود. حالت پیش‌فرض استفاده از یک فایل خروجی واحد است. این گزینه با -i در تداخل است.

-C [offset:]<choplen>

طول برش را برای استفاده هنگام نوشتن داده‌های بسته تنظیم می‌کند. هر بسته به اندازه <choplen> بایت از داده‌ها بریده می‌شود. مقادیر مثبت از ابتدای بسته و مقادیر منفی از انتهای بسته برش می‌دهند.

اگر یک آفست اختیاری قبل از <choplen> قرار گیرد، بایت‌های بریده‌شده نسبت به آن مقدار انحراف خواهند داشت. آفست‌های مثبت از ابتدای بسته، و آفست‌های منفی از انتهای بسته محاسبه می‌شوند.

این قابلیت برای بریدن سرآیندها جهت کپسول‌زدایی از کل یک فایل ضبط، حذف سرآیندهای تونل‌زنی، یا در موارد نادری که تبدیل میان دو قالب فایل باعث باقی ماندن چند بایت تصادفی در انتهای هر بسته می‌شود، مفید است. کاربرد دیگر آن برای حذف تگ‌های vlan است.


نکته

این گزینه می‌تواند بیش از یک بار استفاده شود، که عملاً به شما اجازه می‌دهد در
یک دور عبور بایت‌ها را از حداکثر دو ناحیه مختلف بسته برش دهید، مشروط بر این که حداقل یک مقدار طول برش را به صورت مقدار مثبت و حداقل یکی را به صورت مقدار منفی مشخص کنید. همه مقادیر برش مثبت با یکدیگر و همه مقادیر برش منفی با یکدیگر جمع می‌شوند..sp .5v

-d

تلاش می‌کند بسته‌های تکراری را حذف کند. طول و هش MD5 بستهٔ کنونی با چهار (۴) بستهٔ قبلی مقایسه می‌شود. اگر تطابقی یافت شود، از بستهٔ کنونی صرف‌نظر می‌شود. این گزینه معادل استفاده از گزینهٔ -D 5 است.

-D <dup window>

تلاش می‌کند بسته‌های تکراری را حذف کند. طول و هش MD5 بستهٔ کنونی با <dup window> - 1 بستهٔ قبلی مقایسه می‌شود. اگر تطابقی یافت شود، از بستهٔ کنونی صرف‌نظر می‌شود.

استفاده از گزینهٔ -D 0 در ترکیب با گزینهٔ -V از این جهت مفید است که شمارهٔ بسته (Packet number)، طول (Len) و هش MD5 هر بسته در خطای استاندارد چاپ خواهد شد. این خروجی با جزئیات (به‌ویژه رشته‌های هش MD5) می‌تواند در اسکریپت‌ها برای شناسایی بسته‌های تکراری در میان فایل‌های ردگیری (trace files) مفید باشد.

مقدار <dup window> به‌صورت یک مقدار عددی صحیح بین 0 و 1000000 (شامل هر دو) تعیین می‌شود.


نکته

تعیین مقادیر بزرگ برای <dup window> در فایل‌های ردگیری حجیم می‌تواند منجر به زمان پردازش بسیار طولانی برای editcap شود.

-E <error probability>

احتمال تغییر تصادفی بایت‌ها را در فایل خروجی تنظیم می‌کند. Editcap از این احتمال (بین 0.0 و 1.0 شامل هر دو) برای اِعمال خطا روی هر بایت داده در فایل استفاده می‌کند. به عنوان مثال، احتمال 0.02 به این معنی است که هر بایت 2% شانس داشتن خطا دارد.

این گزینه برای آزمون فازینگ (fuzz-testing) تحلیل‌کننده‌های پروتکل (protocol dissectors) در نظر گرفته شده است.

-F <file format>

قالب فایل خروجیِ ضبط‌شده را تعیین می‌کند. Editcap می‌تواند فایل را در چندین قالب بنویسد؛ دستور editcap -F فهرستی از قالب‌های خروجی موجود را ارائه می‌دهد. قالب پیش‌فرض pcapng است.

-h|--help

شمارهٔ نسخه و گزینه‌ها را چاپ کرده و خارج می‌شود.

-i <seconds per file>

خروجی بسته‌ها را بر اساس بازه‌های زمانی یکنواخت، با حداکثر بازهٔ زمانی <seconds per file> برای هر کدام، به فایل‌های مختلف تقسیم می‌کند. مقادیر ممیز شناور (مانند 0.5) مجاز هستند.

هر فایل خروجی با یک میانوند به‌شکل _nnnnn[_YYYYmmddHHMMSS] که قبل از پسوند فایل (که ممکن است تهی باشد) outfile درج می‌شود، ایجاد خواهد شد. میانوند شامل شماره ترتیبی فایل خروجی است که از 00000 شروع می‌شود، و پس از آن برچسب زمانی اولین بستهٔ آن می‌آید. اگر فایل ورودی فاقد اطلاعات برچسب زمانی باشد، برچسب زمانی حذف می‌شود.

پس از اینکه بسته‌های مربوط به بازهٔ زمانیِ مشخص‌شده در فایل خروجی نوشته شدند، فایل خروجی بعدی باز می‌شود. حالت پیش‌فرض، استفاده از یک فایل خروجی منفرد است. این گزینه با -c تداخل دارد.

-I <bytes to ignore>

تعداد بایت‌های مشخص‌شده را در ابتدای فریم هنگام محاسبهٔ هش MD5 نادیده می‌گیرد، مگر اینکه فریم خیلی کوتاه باشد که در این صورت از تمام فریم استفاده می‌شود. برای حذف بسته‌های تکراری گرفته‌شده روی چند مسیریاب (برای مثال با نشانی‌های mac متفاوت) مفید است؛ به عنوان مثال -I 26 در مورد Ether/IP، بخش‌های ether(14) و سرآیند IP(20 - 4(src ip) - 4(dst ip)) را نادیده می‌گیرد. مقدار پیش‌فرض 0 است.

-L

هنگام بُرش و/یا کوتاه‌سازی (snapping)، طول فریم اصلی را متناسب با آن تنظیم می‌کند (علاوه بر طول ضبط‌شده، که بدون توجه به مشخص شدن یا نشدن -L همیشه تنظیم می‌شود). همچنین -C <choplen> و -s <snaplen> را ببینید.

-o <change offset>

در صورت استفاده همراه با -E، از تغییر دادن تعدادی بایت از ابتدای بسته صرف‌نظر می‌کند. بدین ترتیب برخی سرآیندها تغییر نمی‌کنند و فازر بیشتر بر بخش کوچک‌تری از بسته متمرکز می‌شود. با ثابت نگه داشتن بخشی از بسته، همان تحلیل‌کننده فعال می‌شود که باعث دقیق‌تر شدن فرایند فازینگ می‌گردد.

-r

انتخاب بسته‌ها را معکوس می‌کند. باعث می‌شود بسته‌هایی که شمارهٔ آن‌ها در خط فرمان مشخص شده است، به جای دور ریخته شدن، در فایل ضبط خروجی نوشته شوند.

-R <framenum:timestamp>

برای شماره فریم مشخص‌شده، برچسب زمانی داده‌شده را تخصیص می‌دهد. این گزینه را می‌توان برای چندین فریم تکرار کرد.

زمان را می‌توان در قالب ISO 8601 یا در قالب برچسب زمانی مبدأ یونیکس (Unix epoch) مشخص کرد.

قالب ISO 8601 به یکی از این دو صورت است:

YYYY-MM-DD HH:MM:SS[.nnnnnnnnn][Z|±hh:mm]

یا

YYYY-MM-DDTHH:MM:SS[.nnnnnnnnn][Z|±hh:mm]

بخش کسری ثانیه اختیاری است، همان‌طور که انحراف منطقهٔ زمانی از UTC نیز اختیاری است (که در این صورت زمان محلی فرض می‌شود).

قالب Unix epoch بر حسب ثانیه‌ها و نانوثانیه‌ها پس از مبدأ یونیکس است، که در آن نقطه یا ویرگول ثانیه‌ها و نانوثانیه‌ها را از یکدیگر جدا می‌کند. نانوثانیه‌ها اختیاری هستند. مبدأ یونیکس 1970-01-01 00:00:00 UTC است، بنابراین این قالب زمان محلی نیست.

-s <snaplen>

طول تصویر لحظه‌ای (snapshot length) را برای استفاده هنگام نوشتن داده‌ها تعیین می‌کند. اگر پرچم -s برای مشخص کردن طول تصویر لحظه‌ای به کار رود، بسته‌های موجود در فایل ورودی که حجم داده‌های ضبط‌شدهٔ آن‌ها بیش از طول تصویر لحظه‌ای مشخص‌شده باشد، تنها به میزان طول تصویر لحظه‌ای در فایل خروجی نوشته خواهند شد.

این امر ممکن است زمانی مفید باشد که برنامهٔ خوانندهٔ فایل خروجی نتواند بسته‌های بزرگ‌تر از اندازه‌ای معین را پردازش کند (به عنوان مثال، به نظر می‌رسد نسخه‌های snoop در Solaris 2.5.1 و Solaris 2.6 بسته‌های اترنت بزرگ‌تر از MTU استاندارد اترنت را رد می‌کنند، که این امر در صورت استفاده از بسته‌های غول‌پیکر (jumbo packets)، آن‌ها را از پردازش داده‌های ضبط‌شده در اترنت گیگابیتی ناتوان می‌سازد).

--seed <seed>

هنگامی که همراه با -E استفاده شود، مقدار اولیه (seed) را برای مولد اعداد شبه‌تصادفی تنظیم می‌کند. این گزینه برای بازسازی یک توالی مشخص از خطاها مفید است.

--skip-radiotap-header

هنگام بررسی بسته‌های تکراری، از سرآیند radiotap هر فریم صرف‌نظر می‌کند. این گزینه هنگام پردازش فایلی که از ترکیب خروجی‌های چندین دستگاه ضبط روی یک کانال و در مجاورت یکدیگر ایجاد شده است، مفید است.

-S <strict time adjustment>

زمان بسته‌های انتخاب‌شده را طوری تنظیم می‌کند تا از ترتیب زمانی دقیق اطمینان حاصل شود.

مقدار <strict time adjustment> نشان‌دهنده ثانیه‌های نسبی است که به صورت seconds[.fractional seconds] مشخص می‌شود.

هم‌زمان با پردازش فایل ضبط، زمان مطلق هر بسته بسته به مقدار <strict time adjustment> احتمالاً طوری تنظیم می‌شود که برابر یا بزرگ‌تر از برچسب زمان مطلق بسته قبلی باشد.

اگر مقدار <strict time adjustment> برابر با ۰ یا بزرگ‌تر باشد (مثلاً 0.000001)، آنگاه تنها بسته‌هایی که برچسب زمانی کمتری نسبت به بسته قبلی دارند تنظیم خواهند شد. مقدار برچسب زمان تنظیم‌شده برابر با مقدار برچسب زمان بسته قبلی به‌علاوه مقدار <strict time adjustment> تعیین خواهد شد. مقدار ۰ برای <strict time adjustment> حداقل برچسب‌های زمانی لازم را برای اطمینان از قرار داشتن فایل خروجی در ترتیب زمانی دقیق تنظیم می‌کند.

اگر مقدار <strict time adjustment> به صورت یک مقدار منفی مشخص شود، در این صورت برچسب زمانی تمام بسته‌ها طوری تنظیم خواهد شد که برابر با مقدار برچسب زمان بسته قبلی به‌علاوه قدر مطلق مقدار <strict time adjustment> باشد. مقدار -0 برای <strict time adjustment> باعث می‌شود همه بسته‌ها برچسب زمان بسته اول را داشته باشند.

این ویژگی زمانی مفید است که فایل رهگیری گه‌گاه دارای بسته‌ای با زمان دلتای منفی نسبت به بسته قبلی باشد.

-t <time adjustment>

تنظیم زمانی مورد استفاده روی بسته‌های انتخاب‌شده را تعیین می‌کند. اگر از پرچم -t برای مشخص کردن تنظیم زمان استفاده شود، تغییر مشخص‌شده روی تمام بسته‌های انتخاب‌شده در فایل ضبط اعمال خواهد شد. این تنظیم به صورت seconds[.fractional seconds] مشخص می‌شود. برای مثال، -t 3600 برچسب زمانی بسته‌های انتخاب‌شده را یک ساعت به جلو می‌برد، در حالی که -t -0.5 برچسب زمانی بسته‌های انتخاب‌شده را نیم ثانیه کاهش می‌دهد.

این ویژگی هنگام همگام‌سازی فایل‌های دامپ جمع‌آوری‌شده روی ماشین‌های مختلف که اختلاف زمانی بین آن‌ها معلوم است یا می‌تواند تخمین زده شود، مفید است.

-T <encapsulation type>

نوع کپسوله‌سازی بسته را برای فایل ضبط خروجی تعیین می‌کند. اگر از پرچم -T برای تعیین نوع کپسوله‌سازی استفاده شود، نوع کپسوله‌سازی فایل خروجی به نوع مشخص‌شده تحمیل خواهد شد. دستور editcap -T فهرستی از انواع موجود را ارائه می‌دهد. نوع پیش‌فرض متناسب با نوع کپسوله‌سازی فایل ضبط ورودی است.

نکته: این گزینه صرفاً نوع کپسوله‌سازی فایل خروجی را به نوع مشخص‌شده تحمیل می‌کند؛ سرآیند بسته‌ها از نوع کپسوله‌سازی فایل ورودی به نوع کپسوله‌سازی مشخص‌شده تبدیل نخواهند شد (برای مثال، اگر یک فایل ضبط Ethernet خوانده شود و '-T fddi' مشخص شده باشد، آن را به یک ضبط FDDI تبدیل نمی‌کند). در صورتی که نیاز به حذف یا افزودن سرآیند از/به یک بسته دارید، به od(1)/text2pcap(1) نیاز خواهید داشت.

-v|--version

اطلاعات کامل نگارش را چاپ کرده و خارج می‌شود.

-V

باعث می‌شود editcap در حین کار پیام‌های پرگو (verbose) چاپ کند.

استفاده از -V همراه با گزینه‌های حذف موارد تکراری -d، -D یا -w باعث می‌شود که تمام درهم‌سازهای MD5، چه بسته نادیده گرفته شود و چه نشود، چاپ شوند.

-w <dup time window>

تلاش می‌کند تا بسته‌های تکراری را حذف کند. زمان رسیدن بسته فعلی با حداکثر ۱۰۰۰۰۰۰ بسته قبلی مقایسه می‌شود. اگر زمان رسیدن نسبی بسته کمتر یا مساوی با <dup time window> یک بسته قبلی باشد و طول بسته و درهم‌ساز MD5 بسته فعلی یکسان باشد، از بسته صرف‌نظر می‌شود. آزمون مقایسه تکراری زمانی متوقف می‌شود که زمان رسیدن نسبی بسته فعلی بزرگ‌تر از <dup time window> باشد.

مقدار <dup time window> به صورت seconds[.fractional seconds] مشخص می‌شود.

بخش [.fractional seconds] را می‌توان تا نُه (۹) رقم اعشار (یک‌میلیاردم ثانیه) مشخص کرد، اما بیشتر فایل‌های رهگیری معمولی تفکیک‌پذیری تا شش (۶) رقم اعشار (یک‌میلیونیوم ثانیه) دارند.


نکته

تعیین مقادیر بزرگ برای <dup time window> همراه با فایل‌های رهگیری حجیم می‌تواند
منجر به زمان‌های پردازش بسیار طولانی برای editcap شود.


نکته

گزینه -w فرض می‌کند که بسته‌ها به ترتیب زمانی قرار دارند.
اگر بسته‌ها به ترتیب زمانی نباشند، گزینه حذف موارد تکراری -w ممکن است برخی موارد تکراری را شناسایی نکند.

--inject-secrets <secrets type>,<file>

محتویات <file> را در یک Decryption Secrets Block (DSB) درون فایل خروجی pcapng وارد می‌کند. این کار رمزگشایی را بدون نیاز به پیکربندی اضافی در تنظیمات برگزیده پروتکل امکان‌پذیر می‌سازد.

قالب فایل توسط <secrets type> مشخص می‌شود که می‌تواند یکی از موارد زیر باشد:

opcua OPC UA Key Log، ببینید https://ietf-opsawg-wg.github.io/draft-ietf-opsawg-pcap/draft-ietf-opsawg-pcapng.html#name-decryption-secrets-block
ssh SSH Key Log، ببینید https://wiki.wireshark.org/SSH#key-log-format
tls TLS Key Log، ببینید https://tlswg.org/sslkeylogfile/draft-ietf-tls-keylogfile.html
wg WireGuard Key Log، ببینید https://wiki.wireshark.org/WireGuard#key-log-format
esp ESP SA Key، فایل esp_sa را در پوشه نمایه خود ببینید و همچنین https://ietf-opsawg-wg.github.io/draft-ietf-opsawg-pcap/draft-ietf-opsawg-pcapng.html#name-decryption-secrets-block

این گزینه می‌تواند چندین بار مشخص شود. گزینه‌های در دسترس برای <secrets type> را می‌توان با --inject-secrets help فهرست کرد.

--extract-secrets

هر Decryption Secrets Block (DSB) موجود در infile را استخراج می‌کند. اگر تنها یکی وجود داشته باشد، به جای فایل ضبط درون outfile نوشته می‌شود. اگر بیش از یکی وجود داشته باشد، هر کدام درون فایل‌های خروجی یکتایی نوشته می‌شوند که با یک میانوند _nnnnn پیش از پسوند فایلِ outfile نام‌گذاری شده‌اند؛ مشابه با روش پرچم -c (مگر اینکه خروجی استاندارد نوشته شود)..sp ناسازگار با سایر گزینه‌ها به‌جز -V.

--discard-all-secrets

هنگام نوشتن فایل خروجی، تمام کلیدهای رمزگشایی را از فایل ورودی حذف می‌کند. کلیدهای اضافه‌شده توسط --inject-secrets در همان خط فرمان حذف نمی‌شوند.

--discard-name-resolution

هنگام نوشتن فایل خروجی، تمام مدخل‌های بلوک تحلیل نام (NRB) را از فایل ورودی حذف می‌کند. این کار تمام نگاشت‌های نام میزبان به نشانی IP را که در زمان ضبط درون فایل ضبط قرار گرفته بودند، حذف می‌کند.

--capture-comment <comment>

در صورت پشتیبانی قالب فایل خروجی، یادداشت مشخص‌شده را به فایل خروجی می‌افزاید. یادداشت‌های جدید پس از هرگونه یادداشت موجود در فایل ورودی اضافه خواهند شد، مگر آنکه --discard-capture-comment نیز مشخص شده باشد.

این گزینه می‌تواند چندین بار مشخص شود. توجه داشته باشید که Wireshark در حال حاضر تنها نخستین یادداشت یک فایل ضبط را نمایش می‌دهد.

--discard-capture-comment

هنگام نوشتن فایل خروجی، تمام یادداشت‌های فایل ضبط را از فایل ورودی حذف می‌کند. یادداشت‌های اضافه‌شده با --capture-comment در همان خط فرمان حذف نخواهند شد.

--set-unused

در نوع پیوند SLL، بایت‌های استفاده‌نشده (در صورت وجود) را صفر می‌کند. این گزینه هنگام بررسی موارد تکراری مفید است؛ زیرا بایت‌های استفاده‌نشده می‌توانند هر مقداری داشته باشند، برای نمونه هنگامی که بسته از پشته دستگاه برای رابط‌های متصل (bonded) در Linux عبور می‌کند.

--discard-packet-comments

هنگام نوشتن فایل خروجی، تمام یادداشت‌های بسته را از فایل ورودی حذف می‌کند. یادداشت‌های اضافه‌شده با -a در همان خط فرمان حذف نمی‌شوند.

این گزینه بر گزینه --preserve-packet-comments تقدم دارد.

--preserve-packet-comments

هنگام افزودن یک یادداشت بسته جدید با گزینه -a، یادداشت‌های بسته موجود در فایل ورودی برای فریم مشخص‌شده را در زمان نوشتن فایل خروجی حفظ می‌کند. بدون این گزینه، هر گزینه -a تمام یادداشت‌های بسته موجود قبلی را برای شماره فریم داده‌شده جایگزین خواهد کرد.

این گزینه به گزینه -a اجازه نمی‌دهد که در همان خط فرمان، چندین یادداشت بسته برای یک شماره فریم یکسان اضافه کند.

گزینه --discard-packet-comments بر این گزینه تقدم دارد.

--compress <type>

فشرده‌سازی فایل خروجی با استفاده از قالب فشرده‌سازی type. اجرای --compress بدون هیچ آرگومانی فهرستی از قالب‌های فشرده‌سازی پشتیبانی‌شده برای نوشتن را ارائه می‌دهد. نوع (type) مشخص‌شده بر پسوند نام outfile اولویت دارد.

--sctp-split

تفکیک بسته‌های SCTP حاوی چندین تکه (chunk) داده تجمیع‌شده به بسته‌های مجزا، یک بسته به‌ازای هر تکه DATA. هر بسته تفکیک‌شده سرآیندهای مشترک اصلی Ethernet، IP و SCTP را حفظ می‌کند. یک یادداشت بسته حاکی از شماره فریم اصلی به هر بسته تفکیک‌شده افزوده می‌شود. بسته‌های غیر SCTP و بسته‌های SCTP فاقد تکه‌های DATA بدون تغییر عبور داده می‌شوند.

--log-level <level>

تنظیم سطح گزارش‌گیری فعال. سطوح پشتیبانی‌شده از کمترین به بیشترین ترتیب عبارتند از "noisy"، "debug"، "info"، "message"، "warning"، "critical" و "error". پیام‌های مربوط به هر سطح و بالاتر از آن چاپ خواهند شد؛ برای نمونه "warning" پیام‌های "warning"، "critical" و "error" را چاپ می‌کند و "noisy" همهٔ پیام‌ها را چاپ می‌نماید. سطوح به بزرگی و کوچکی حروف حساس نیستند.

--log-fatal <level>

متوقف کردن برنامه در صورتی که هر پیامی در سطح مشخص‌شده یا بالاتر از آن ثبت شود. برای نمونه، "warning" با بروز هر یک از پیام‌های "warning"، "critical" یا "error" برنامه را متوقف می‌کند.

--log-fatal-count <count>

تعداد پیام‌های گزارش مرگبار (fatal) که می‌توانند پیش از متوقف شدن برنامه ثبت شوند.

--log-domains <list>

تنها پیام‌های مربوط به دامنه‌های گزارش مشخص‌شده را چاپ می‌کند، مانند "GUI,Epan,sshdump". فهرست دامنه‌ها باید با ویرگول انگلیسی (comma) جدا شود. می‌تواند با قرار گرفتن "!" به عنوان نخستین نویسه نفی شود (تطابق را معکوس می‌کند).

--log-debug <list>

مجبور کردن دامنه‌های مشخص‌شده به گزارش‌گیری در سطح "debug". فهرست دامنه‌ها باید با ویرگول از هم جدا شود. می‌تواند با قرار گرفتن "!" به عنوان نخستین نویسه نفی شود (تطابق را معکوس می‌کند).

--log-noisy <list>

مجبور کردن دامنه‌های مشخص‌شده به گزارش‌گیری در سطح "noisy". فهرست دامنه‌ها باید با ویرگول از هم جدا شود. می‌تواند با قرار گرفتن "!" به عنوان نخستین نویسه نفی شود (تطابق را معکوس می‌کند).

--log-fatal-domains <list>

متوقف کردن برنامه در صورتی که هر پیامی برای دامنه‌های گزارش مشخص‌شده ثبت شود. فهرست دامنه‌ها باید با ویرگول از هم جدا شود.

--log-file <path>

نوشتن پیام‌های گزارش و خروجی stderr در فایل مشخص‌شده.

برای مشاهدهٔ توضیحات با جزئیات بیشتر دربارهٔ گزینه‌ها، از دستور زیر استفاده کنید:

editcap -h

برای کوچک کردن فایل کپچر با کوتاه کردن بسته‌ها به ۶۴ بایت و ذخیرهٔ آن به عنوان فایل Sun snoop:

editcap -s 64 -F snoop capture.pcapng shortcapture.snoop

برای حذف بستهٔ ۱۰۰۰ از فایل کپچر:

editcap capture.pcapng sans1000.pcapng 1000

برای محدود کردن یک فایل کپچر به بسته‌های شماره ۲۰۰ تا ۷۵۰ (شامل خود آن‌ها):

editcap -r capture.pcapng small.pcapng 200-750

برای دریافت همهٔ بسته‌ها از شماره ۱ تا ۵۰۰ (شامل خود آن‌ها):

editcap -r capture.pcapng first500.pcapng 1-500

یا:

editcap capture.pcapng first500.pcapng 501-9999999

برای مستثنی کردن بسته‌های ۱، ۵، ۱۰ تا ۲۰، و ۳۰ تا ۴۰ از فایل جدید:

editcap capture.pcapng exclude.pcapng 1 5 10-20 30-40

برای انتخاب فقط بسته‌های ۱، ۵، ۱۰ تا ۲۰، و ۳۰ تا ۴۰ برای فایل جدید:

editcap -r capture.pcapng select.pcapng 1 5 10-20 30-40

برای حذف بسته‌های تکراری دیده‌شده در ۴ فریم پیشین:

editcap -d capture.pcapng dedup.pcapng

برای حذف بسته‌های تکراری دیده‌شده در ۴ فریم پیشین بدون در نظر گرفتن هدرهای radiotap:

editcap -d --skip-radiotap-header capture.pcapng dedup.pcapng

برای حذف بسته‌های تکراری دیده‌شده در ۱۰۰ فریم پیشین:

editcap -D 101 capture.pcapng dedup.pcapng

برای حذف بسته‌های تکراری دیده‌شده در فاصلهٔ زمانی کمتر یا مساوی با یک‌دهم ثانیه (۰٫۱ ثانیه):

editcap -w 0.1 capture.pcapng dedup.pcapng

برای نمایش هش MD5 برای تمامی بسته‌ها (و عدم تولید هیچ‌گونه فایل خروجی واقعی):

editcap -V -D 0 capture.pcapng /dev/null
یا در سیستم‌های Windows:
editcap -V -D 0 capture.pcapng NUL

برای جلو بردن برچسب زمانی هر بسته به اندازه 3.0827 ثانیه:

editcap -t 3.0827 capture.pcapng adjusted.pcapng

برای اطمینان از اینکه تمامی برچسب‌های زمانی به ترتیب زمانی دقیق هستند:

editcap -S 0 capture.pcapng adjusted.pcapng

برای ایجاد ۵٪ خطای تصادفی در یک فایل ضبط، از دستور زیر استفاده کنید:

editcap -E 0.05 capture.pcapng capture_error.pcapng

برای حذف تگ‌های vlan از تمامی بسته‌ها در یک فایل ضبط با کپسوله‌سازی Ethernet، از دستور زیر استفاده کنید:

editcap -L -C 12:4 capture_vlan.pcapng capture_no_vlan.pcapng

برای برش هم‌زمان هر دو ناحیه ۱۰ بایتی و ۲۰ بایتی از بسته ۷۵ بایتی زیر در یک مرحله، از هر یک از ۸ روش ارائه‌شده در زیر استفاده کنید:

<--------------------------- 75 ---------------------------->
+---+-------+-----------+---------------+-------------------+
| 5 |   10  |     15    |       20      |         25        |
+---+-------+-----------+---------------+-------------------+
1) editcap -C 5:10 -C -25:-20 capture.pcapng chopped.pcapng
2) editcap -C 5:10 -C 50:-20 capture.pcapng chopped.pcapng
3) editcap -C -70:10 -C -25:-20 capture.pcapng chopped.pcapng
4) editcap -C -70:10 -C 50:-20 capture.pcapng chopped.pcapng
5) editcap -C 30:20 -C -60:-10 capture.pcapng chopped.pcapng
6) editcap -C 30:20 -C 15:-10 capture.pcapng chopped.pcapng
7) editcap -C -45:20 -C -60:-10 capture.pcapng chopped.pcapng
8) editcap -C -45:20 -C 15:-10 capture.pcapng chopped.pcapng

برای افزودن رشته‌های یادداشت به ۲ فریم اول ورودی، از دستور زیر استفاده کنید:

editcap -a "1:1st frame" -a 2:Second capture.pcapng capture-comments.pcapng

برای افزودن یک یادداشت اضافی به فریم اول، از دستور زیر استفاده کنید:

editcap --preserve-packet-comments -a "1:This is another comment" \
    capture-comments.pcapng more-capture-comments.pcapng

pcap(3), wireshark(1), tshark(1), mergecap(1), dumpcap(1), capinfos(1), text2pcap(1), reordercap(1), od(1), pcap-filter(7) یا tcpdump(8)

این صفحهٔ راهنما مربوط به Editcap نسخهٔ 4.7.3 است. Editcap بخشی از توزیع Wireshark است. آخرین نسخهٔ Wireshark را می‌توان در نشانی زیر یافت: https://www.wireshark.org.

نسخه‌های HTML صفحات راهنمای پروژهٔ Wireshark در نشانی زیر در دسترس هستند: https://www.wireshark.org/docs/man-pages.

نویسندهٔ اصلی
Richard Sharpe <sharpe[AT]ns.aus.com>

مشارکت‌کنندگان
Guy Harris <guy[AT]alum.mit.edu>
Ulf Lamping <ulf.lamping[AT]web.de>

2026-09-03