/wireshark-plugin-dash

Wireshark dissector plugin for the Dash cryptocurrency protocol

Primary LanguageCGNU General Public License v2.0GPL-2.0

Wireshark dissector plugin for the Dash cryptocurrency protocol

A Dash protocol dissector converted from the bitcoin built-in dissector and updated to include Dash specific commands (based on outdated protocol documentation and source code). All messages are now dissected in significant detail.

Current limitations:

  • Governance object (govobj) data field is not dissected
  • The script field of TxOuts is not dissected

To Build (on Linux Mint 17.3)

  • Clone Wireshark from https://github.com/wireshark/wireshark
  • Clone this plugin repository
  • From this repository, copy CMakeListsCustom.txt / the plugins folder and paste into the root of the cloned Wireshark folder
  • Follow the Wireshark build instructions

Note: This was built with Wireshark 2.3. To use with Wireshark 2.2 it is necessary to build using the master-2.2 branch of this repository

Releases

  • Currently the plugin has only been built on Linux Mint 64 bit. A binary can be downloaded from the releases page.

Capture screenshot

This shows a dissected Masternode Ping message. The packet also contains a Governance Vote.

Dash specific protocol implementation status (excludes items shared with the Bitcoin protocol)

Name Recognized Dissected Status Description
blocktxn Y Y Block Transactions (compact block-related)
cmpctblock Y Y Compact Block
dsa Y Y Darksend Accept
dsc Y Y Darksend Complete
dseg Y Y Masternode List/Entry Sync
dsf Y Y Darksend Final Transaction
dsi Y Y Darksend Entry
dsq Y Y Darksend Queue
dss Y Y Darksend Sign Final Transaction
dssu Y Y Mixing Pool Status Update
dstx Y Y Darksend Broadcast
getblocktxn Y Y Get block transaction(s) (compact block-related)
govobj Y Y Governance Object
govobjvote Y Y Governance Vote
govsync Y Y Governance Object Sync
ix Y Y Transaction Lock Request (InstantSend)
mnb Y Y Masternode Broadcast
mnget Y Y Masternode Payment Sync
mnp Y Y Masternode Ping
mnv Y Y Masternode Verify
mnw Y Y Masternode Payment Vote
mnwb Y NA Inventory only Masternode Payment Block (no message - inventory only)
sendcmpct Y Y Send compact blocks
spork Y Y Spork status
ssc Y Y Sync Status Count
txlvote Y Y Transaction Lock Vote

Example display filter

This example of using display filters shows how to show messages related to a PrivateSend session.

ip.addr == 217.182.229.150 && (dash.dsa || (dash.dsq.ready==1) || dash.dsi || \
  dash.dsf || dash.dss || dash.dsc || dash.dssu || dash.dstx)