| 1 | initial version |
What about a Lua script that reads a text file with packet numbers to keep and dumps those packets to a new file?
C:\>type keeplist.txt 1 3 5 37916 C:\>capinfos -c bvlc.pcap File name: bvlc.pcap Number of packets: 37 k C:\r>tshark -q -X lua_script:.\keeplist.lua -r bvlc.pcap --disable-all-protocols Tap draw Tap reset C:\>capinfos -c keeplist.pcap File name: keeplist.pcap Number of packets: 4
-- keeplist.lua
-- https://ask.wireshark.org/question/34089/using-tshark-with-huge-display-filters/
-- "(tshark -r infile -Y "frame.number in ...." -w outfile)"
-- Create new capture file containing frames which are specified in a text list
-- Step 1 - document as you go. See header above and set_plugin_info().
local keeplist_info =
{
version = "1.0.0",
author = "Good Coders",
description = "Copy/pasted together by Chuck Craft",
repository = "Floppy in top drawer"
}
set_plugin_info(keeplist_info)
do
keeplist = {};
file, err = io.open("keeplist.txt","r")
if not file then
-- Opening the packet list failed, return the error
print("Cannot load keeplist file: " .. err)
return
end
while true do
local line = file:read("*number")
if not line then break end -- break on EOF
keeplist[line] = true
-- print(line)
end
io.close(file)
local function init_listener()
local keep_dmp
local tap = Listener.new()
function tap.reset()
print("Tap reset")
keep_dmp:close()
end
function tap.packet(pinfo,tvb,tapinfo)
-- print("pinfo.number = " .. pinfo.number)
if pinfo.number == 1 then
keep_dmp = Dumper.new_for_current( "./keeplist.pcap" )
end
if keeplist[pinfo.number] ~= nil then
-- print("Dump packet = " .. pinfo.number)
keep_dmp:dump_current()
end
end
function tap.draw()
print("Tap draw")
keep_dmp:flush()
end
end
init_listener()
end
Credits to:
Ask question Filter udp packets using lua script
Wiki Dump VoIP calls into separate files
Github wireguard-dissector
/wg.lua
| 2 | No.2 Revision |
What about a Lua script that reads a text file with packet numbers to keep and dumps those packets to a new file?
C:\>type keeplist.txt 1 3 5 37916 C:\>capinfos -c bvlc.pcap File name: bvlc.pcap Number of packets: 37 kC:\r>tsharkC:\>tshark -q -X lua_script:.\keeplist.lua -r bvlc.pcap --disable-all-protocols Tap draw Tap reset C:\>capinfos -c keeplist.pcap File name: keeplist.pcap Number of packets: 4
-- keeplist.lua
-- https://ask.wireshark.org/question/34089/using-tshark-with-huge-display-filters/
-- "(tshark -r infile -Y "frame.number in ...." -w outfile)"
-- Create new capture file containing frames which are specified in a text list
-- Step 1 - document as you go. See header above and set_plugin_info().
local keeplist_info =
{
version = "1.0.0",
author = "Good Coders",
description = "Copy/pasted together by Chuck Craft",
repository = "Floppy in top drawer"
}
set_plugin_info(keeplist_info)
do
keeplist = {};
file, err = io.open("keeplist.txt","r")
if not file then
-- Opening the packet list failed, return the error
print("Cannot load keeplist file: " .. err)
return
end
while true do
local line = file:read("*number")
if not line then break end -- break on EOF
keeplist[line] = true
-- print(line)
end
io.close(file)
local function init_listener()
local keep_dmp
local tap = Listener.new()
function tap.reset()
print("Tap reset")
keep_dmp:close()
end
function tap.packet(pinfo,tvb,tapinfo)
-- print("pinfo.number = " .. pinfo.number)
if pinfo.number == 1 then
keep_dmp = Dumper.new_for_current( "./keeplist.pcap" )
end
if keeplist[pinfo.number] ~= nil then
-- print("Dump packet = " .. pinfo.number)
keep_dmp:dump_current()
end
end
function tap.draw()
print("Tap draw")
keep_dmp:flush()
end
end
init_listener()
end
Credits to:
Ask question Filter udp packets using lua script
Wiki Dump VoIP calls into separate files
Github wireguard-dissector
/wg.lua