はじめに
WiresharkにおいてLuaによるプロトコルを作成する場合、treeにaddすることでパケットデータの中身を表示することができます。
その時の書き方が3段階あるため、それぞれ松竹梅として書き方と表示内容の違いをまとめます。
執筆時点の環境
- Wireshark v 3.4系統
- Lua 5.2
説明
本記事では、dataとして渡されたパケットデータの0~1バイト目を整数として表示させる場合を例とします。
梅(データの中身だけ見たい場合)
梅(データの中身だけ見たい場合)
tree:add(data[0:2]:uint())
- Tree画面にデータ内容は表示される
- 上記Tree画面の該当項目を選択しても、Data画面では該当するバイト列が選択されない
- 表示フィルタによるフィルタリング不可
竹(梅 + バイト列を選択表示)
竹(梅 + バイト列を選択表示)
tree:add(data[0:2],data[0:2]:uint())
第1引数:Data画面の選択範囲
第2引数:表示内容
- Tree画面にデータ内容は表示される
- Tree画面の該当項目を選択すると、Data画面で選択される
- 表示フィルタによるフィルタリング不可
松(竹 + 表示フィルタに対応)
松(竹 + 表示フィルタに対応)
local f_data = ProtoField.Uint("Data","data")
-- 中略
tree:add(f_data,data[0:2])
第1引数:自作ProtoField
第2引数:Data型
Tree画面にデータ内容は表示される
Tree画面の該当項目を選択すると、Data画面で選択される
表示フィルタによるフィルタリング可
まとめ
書き方 | データの表示 | データの選択 | フィルタリング |
---|---|---|---|
梅 | ○ | ☓ | ☓ |
竹 | ○ | ○ | ☓ |
松 | ○ | ○ | ○ |