在Wireshark之外运行Lua解析器脚本
2021-4-10 18:53:20
收藏:0
阅读:207
评论:0
我们公司的硬件使用专有协议,我们对其进行嗅探,使用Lua解析器进行解析,这个投资很大。这使得Wireshark成为了现场分析和用户使用Wireshark录制和保存的数据进行分析的非常有用的工具。我们在Wireshark中嗅探的相同数据也会被记录到二进制文件中,这个过程不涉及Wireshark。我的任务是创建一个解析二进制日志文件并将其输出为JSON的过程,并且如果可能,我想利用我们现有的Lua解析器而不是重写解析器(以任何适当的语言),因为与Lua脚本并行创建和维护这些解析器将是一项很大的工作。但是,我认为Lua Wireshark解析器不能在Wireshark之外运行,因为它们对所有Wireshark原型(如Proto和Protofield等)都有依赖,这些都是由Wireshark在运行时注入的。
这里有我想到的可能性。有哪些是可行的?
- 我会找到带有所有逻辑的Wireshark Lua文件,这些文件在运行时自动注入。
- 我会编写Lua脚本,我们的现有脚本会引用它们,以重载Wireshark自动注入的逻辑。在选项1和选项2中,Wireshark类将返回解析的数据给我的程序,我的程序将将其输出为JSON。
- 我将编写一个将我们的二进制日志文件转换为Wireshark .pcapng文件,并以批处理过程的方式生成Wireshark实例以使用Lua文件消费和解析.pcapng文件并将输出写入JSON或XML文件的转换器。
更新:在与选项#3有关的开发中,我可以运行tshark.exe(使用Wireshark提供的命令行实用程序)将数据包从.pcapng文件中转储到标准输出。但只输出与Wireshark中的Information列相当的内容,而不是已解析的面板。如果我在命令行中使用我们的Lua文件之一指定选项:
-X lua_script:[my lua file]
我会看到类似于在从Lua直接运行Lua脚本时看到的那些错误:
...解剖器.lua:16:对“Proto”的第二个参数(Proto_new:不能有两个描述相同的协议)有错误的参数#2
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
