4

TCP プロトコル上で実行され、複数の TCP パケットを流れるデータを持つディセクタがあります。

すべてを変換する前にデータを組み立てたいので、必要なことは理解しtcp_dissect_pdus()ましたが、ドキュメントや例が見つかりません。

誰かに案内してもらったり、使い方を理解してもらったりできますか?

4

1 に答える 1

7

tcp_dissect_pdus 用の wslua API はありません。しかし、それを自分で実装することはできます。

2 つ以上のパケットにまたがる pdu を組み立てたい場合は、かなり単純です。

function slicer.dissector(tvb, pinfo, tree)
    ...
    local pdu_length = get_pdu_length(...)
    if pdu_length > tvb:len() then
        pinfo.desegment_len = pdu_length - tvb:len()
    else
        do_dissection(tvb, pifo, tree)
    end
    return
end

pdu の正確な長さが分からない場合は、次のようにします。

        pinfo.desegment_len = DESEGMENT_ONE_MORE_SEGMENT

README.developerセクション 2.7を読む必要があります。

于 2012-10-30T16:43:05.493 に答える