سبايبورت مسجل/مراقب المنفذ التسلسلي

مراقب ومسجل للمنفذ التسلسلي


ما هو سبايبورت لأداة التسلسلي

سبايبورت هو ميزة في أداة التسلسلي تسمح بمراقبة جميع حركة المرور في المنفذ التسلسلي، في بيئة Windows، مباشرة من النواة.
يستخدم هذا النهج سائقًا تم تطويره خصيصًا لأداة التسلسلي من قبل فريقنا للتقاط كافة الاتصالات التي يوجهها نظام التشغيل إلى منفذ COM محدد.
على وجه الدقة، يمكن "تجسس" على الاتصال التسلسلي حتى إذا كان منفذ COM مفتوحًا ويتم استخدامه من قبل تطبيق آخر لأن سائق النواة يتصل ويقوم بتصفية إشارات IRP و IOCTL_SERIAL من Windows.
هذه الميزة في أداة التسلسلي متوفرة فقط للإصدار PRO.

الشاشة الرئيسية

ما يمكن تجسسه وتسجيله

يمكن تصفية بعض هذه الإشارات المهمة اختياريًا أو كل حركة المرور على مستوى منخفض مباشرةً. سبايبورت يوفر إمكانية حفظ فقط حركة المرور الصادرة (IRP_MJ_WRITE)، حركة المرور الواردة (IRP_MJ_READ) أو جميع حركة المرور الكاملة عن طريق تحديد واحد أو جميع IOCTL_SERIAL. يمكن حفظ البيانات الواردة والصادرة في شكل نصي أو ثنائي الأبعاد بالنسبة لـ IRP_MJ_WRITE و IRP_MJ_READ (TX و RX من منفذ COM) وبتنسيق نصي بالنسبة للإشارات الأخرى.

كيفية عرض البيانات التي تم تجسسها/تسجيلها

أداة التسلسلي، بفضل ميزاتها المتقدمة، تسمح بعرض كل حزمة بالتفصيل، عرض البيانات الموجودة فيها في شكل ASCII أو Hexadecimal.
تسهل هذه الخاصية وتشجع الاستشارة السريعة والموجهة أكثر وفي الوقت نفسه تسمح بالبحث عن أنماط معينة داخل حزمة أو حفظ/تصدير الحزمة المهمة في شكل ثنائي الأبعاد أو نسخها إلى الحافظة في شكل ASCII.
يتم عرض كل حزمة بدقة، مشيرًا إلى جميع البيانات الهامة مثل اللحظة الدقيقة للاستقبال (بالميلي ثانية)، نوع الحزمة، الوقت المنقضي بين الحزمة السابقة والتالية.
نوع تحليل الحزمة يتبع ذلك لحزم الجلسة المقدمة في الإصدار 1.6.0 من أداة التسلسلي.
يمكن التوقف عن تسجيل في أي لحظة دون المساس بالبرنامج الذي يستخدم منفذ COM في ذلك الوقت.

عر ض ASCII و Hexadecimal لحزمة تسلسلية تم تجسس عليها.

أمثلة على استخدام سبايبورت مع أداة التسلسلي

حقول استخدام وحدة سبايبورت متعددة، منها:

1. مراقبة التطبيقات الخاصة وتطبيقات الأطراف الثالثة.

في العالم الصناعي والمضمن، في حالة حدوث أعطال، من الصعب جدًا فهم وتحديد متى يحدث خطأ. في بعض الأحيان، تظهر التطبيقات الخاصة بك أو تلك من الأطراف الثالثة عيوبًا تظهر بعد عدة ساعات ولا يمكن للمطور أن يكون حاضرًا لالتقاط المشكلة وحلها. لهذا السبب، تم تصميم أداة التسلسلي مع وحدة سبايبورت لضمان فترات طويلة من التجسس/التسجيل بطريقة بديهية وفعالة، مما يساعد المطور على تحديد سبب المشكلة.
يمكن أن يكون مثالًا كلاسيكيًا تطبيق صناعي حيث يتصل البرنامج الرسمي للإنتاج عبر المنفذ التسلسلي مع أجهزة أخرى.
إذا كان هناك خلل، من المهم أن يمكن رصد سلوك البرنامج في وضعه "النهائي" الرسمي لمعرفة أين يحدث المشكلة. لا يتداخل سبايبورت مع البرنامج المراقب ويسمح بتحليل كل حركة مرور واردة وصادرة.

2. التطوير المعكوس.

في سيناريو حيث يرغب المرء في "التقاط" حركة المرور الواردة والصادرة من المنفذ التسلسلي لبرنامج معين، على سبيل المثال أثناء تنزيل برنامج البرامج الثابتة على جهاز متصل، فإن سبايبورت هو الأداة المثالية! يسمح بحفظ جميع البايتات المرسلة مباشرةً بتنسيق ثنائي لجميع برامج الأطراف الثالثة والتقاط البيانات المهمة (على سبيل المثال البرامج الثابتة).

3. التصحيح.

عندما يتم تطوير برنامج للمنفذ التسلسلي، من الضروري للغاية التأكد من أن البيانات المرسلة والمستقبلة صحيحة، وتتبع توقيت معين، وفي بعض الأحيان من الضروري أيضًا التحكم بشكل صحيح في إشارات أخرى للمنفذ COM مثل DTR و RTS.
عند كتابة المطور لبرنام جه الخاص، يساعد سبايبورت في التحقق من أن سلوك المنفذ التسلسلي هو المتوقع، وأن المنفذ التسلسلي مفتوح بشكل صحيح، وأن القراءة والكتابة تتم وفقًا للمواصفات. في هذه الحالة، تصبح أداة التسلسلي مع وحدة سبايبورت أداة عمل أساسية للتحقق خطوة بخطوة من أن كل البرمجيات مكتوبة بشكل صحيح. عندما تنوي إنشاء برنامج يتصل بالمنفذ التسلسلي، يصبح سبايبورت لا غنى عنه.

Filtered Signals by SerialTool

IRP_MJ and IOCTL_SERIAL interpreted signals.

Signals List:

  • IRP_MJ_CREATE
  • IRP_MJ_CLOSE
  • IRP_MJ_CLEANUP
  • IRP_MJ_READ
  • IRP_MJ_WRITE
  • IRP_MJ_FLUSH_BUFFERS
  • IRP_MJ_QUERY_INFORMATION
  • IRP_MJ_SET_INFORMATION
  • IRP_MJ_SYSTEM_CONTROL
  • IOCTL_SERIAL_GET_BAUD_RATE
  • IOCTL_SERIAL_SET_BAUD_RATE
  • IOCTL_SERIAL_GET_HANDFLOW
  • IOCTL_SERIAL_SET_HANDFLOW
  • IOCTL_SERIAL_GET_LINE_CONTROL
  • IOCTL_SERIAL_SET_LINE_CONTROL
  • IOCTL_SERIAL_GET_TIMEOUTS
  • IOCTL_SERIAL_SET_TIMEOUTS
  • IOCTL_SERIAL_SET_QUEUE_SIZE
  • IOCTL_SERIAL_CONFIG_SIZE
  • IOCTL_SERIAL_GET_CHARS
  • IOCTL_SERIAL_SET_CHARS
  • IOCTL_SERIAL_SET_DTR
  • IOCTL_SERIAL_CLR_DTR
  • IOCTL_SERIAL_SET_RTS
  • IOCTL_SERIAL_CLR_RTS
  • IOCTL_SERIAL_SET_WAIT_MASK
  • IOCTL_SERIAL_GET_WAIT_MASK
  • IOCTL_SERIAL_WAIT_ON_MASK
  • IOCTL_SERIAL_PURGE
  • IOCTL_SERIAL_GET_COMMSTATUS
  • IOCTL_SERIAL_SET_BREAK_OFF
  • IOCTL_SERIAL_SET_BREAK_ON
  • IOCTL_SERIAL_CLEAR_STATS
  • IOCTL_SERIAL_RESET_DEVICE
  • IOCTL_SERIAL_SET_FIFO_CONTROL
  • IOCTL_SERIAL_SET_MODEM_CONTROL
  • IOCTL_SERIAL_SET_XOFF
  • IOCTL_SERIAL_SET_XON
  • IOCTL_SERIAL_GET_MODEM_CONTROL