做这个程序的意图是wireshark插件编写复杂(虽然也支持lua),而轻量级的工具如smartsniff,minisniff不支持插件化数据分析,
各种工具用下来或多或少不顺手。以前写的外挂也都是手工+写代码的方式分析数据,过程非常痛苦。
因而诞生了这个抓包后可lua脚本分析的工具。希望对做网络数据分析的同学有帮助。

说明:
1.闭源免费。使用raw socket,lua 5.3.1,最大抓取60万数据包,和wireshark/tcpdump文件格式兼容
2.在winxp-32和win10-64测试正常
3.3rd的trace工具是mbcs做的,win10支持的不好,以后有时间移植unicode再支持
4.示例中的监测qq号测试正常
5.下载地址:http://pan.baidu.com/s/1nt1n2jR
6.技术支持qq群466507719,开发版本即时更新到群共享。欢迎测试及功能建议


程序需要调用的lua接口,参考plugin/example1.lua
(1)init: 插件初始化
(2)handle_data: 当收到一个数据包时调用这个函数,函数return "delete"也可以起到过滤作用
(3)handle_click:当单击列表数据时调用这个函数
(4)handle_double: 当双击列表数据时调用这个函数

lua中增加的可以回调的程序接口:
plugin_output_clear: 清空plugin output窗口
plugin_output: 输出到plugin output窗口
plugin_summary: 输出到listview最右边的Plugin Summary项
trace: 输出到三方工具,暂未实现
trace_raw: 输出到三方工具,暂未实现


图多杀猫
(1)程序大小只有465KB,单独一个可执行文件PowerSniff.exe也可以运行,收集的库可放到lib文件夹,插件自动从plugin文件夹扫描

(2)功能界面

(3)插件编辑,编译,执行界面

(4)演示监测qq登录号码
启动程序,菜单选择“Option -> Plugin -> qq number analyse.lua”,start抓包,当qq登录后Plugin Summary会显示qq号码

分析qq号码的脚本:

-- qq号码登录监视脚本(不支持手机号码登录,不支持webqq,只在pc上用qq2015测试通过)
-- 2015.9.14
require "base64"
require "tcp_ip" function init()
trace("plugin init: ".._VERSION.."\n")
trace("package path: "..package.path.."\n")
trace("package path: "..package.cpath.."\n")
--for k,v in pairs(_G) do
-- trace(string.format("%s,%s\n", k, v))
--end
end -- protocol: 字符串如tcp,udp,icmp
-- data: 二进制数据
-- len_total: 总共数据长度
-- len_data: 有效数据长度(去除各种头之后的数据)
function handle_data(protocol,data,len_total,len_data)
if 54 == len_total then
return "delete" -- remove handshake
end
src_port = tcp_ip_get_src_port(data)
dst_port = tcp_ip_get_dst_port(data)
-- if 8000 != src_port && 8000 != dst_port then
if (8000 ~= dst_port) or (len_data < 100) then
return "delete"
end
if 2 ~= data:byte(43) then -- 0x2是qq udp协议magic number
return "delete"
end
if 8 ~= data:byte(46) then -- 8和37是 0x8和0x25是协议类型,表示登录
return "delete"
end
if 37 ~= data:byte(47) then
return "delete"
end
-- 50, 51, 52, 53字节是qq号(lua index从1开始而不是0)
qq_number = data:byte(50) * 256 * 256 * 256 + data:byte(51) * 256 * 256 + data:byte(52) * 256 + data:byte(53)
plugin_summary("qq_number is: " .. qq_number)
end function handle_click(protocol,data,len_total,len_data)
end function handle_double(protocol,data,len_total,len_data)
handle_data(protocol,data,len_total,len_data)
end

  

github地址:https://github.com/wjx0912/PowerSniff

MIT license

开源抓包工具PowerSniff(支持lua,c语言作为脚本实时分析)的更多相关文章

  1. 抓包工具之—charles碎言碎语

    一.Charles常见使用场景: 1.Charles是跨平台的抓包工具,支持Windows,mac或Linux平台: 2.获取请求信息.测试接口时,若接口文档中的参数不清楚或没有接口文档时,可以通过抓 ...

  2. 几款抓包工具在windows,mac,linux下的支持分析

    抓包工具的使用 几款抓包工具在windows,mac,linux下的支持分析 抓包工具简介 Chrome/Firefox 开发者工具: 浏览器内置,方便易用 Fiddler/Charles: 基于代理 ...

  3. ethereal抓包工具

    ethereal是目前网络上开源的一款功能强大的以太网抓包工具,该软件可以监听异常封包,检测软件封包问题,从网络上抓包,并且能对数据包进行分析,从而帮助用户解决各种网络故障,更加方便查看.监控TCP ...

  4. 腾讯出品的抓包工具Rythem

    Mac下一直没有fiddler这样好用的抓包工具,Charles要收费,难免不爽,昨天调研国内项目的时候,看到腾讯开源了一款抓包工具Rythem,试用了一下,基本配置无问题,但是通配符方面不太搞的定. ...

  5. Fiddler4入门--手机抓包工具安装和使用说明

    Fiddler4入门--手机抓包工具安装和使用说明.电脑最好是笔记本连同一个wifi,这样能和手机保持统一局域网内. 很多区块链dapp项目方风控做的很差,利用fiddler抓包分析找一些漏洞,然后利 ...

  6. HttpCanary——最强Android抓包工具!

    迎使用HttpCanary——最强Android抓包工具! HttpCanary是一款功能强大的HTTP/HTTPS/HTTP2网络包抓取和分析工具,你可以把他看成是移动端的Fiddler或者Char ...

  7. Microsoft Message Analyzer (微软消息分析器,“网络抓包工具 - Network Monitor”的替代品)官方正式版现已发布

    来自官方日志的喜悦 被誉为全新开始的消息分析器时代,由MMA为您开启,博客原文写的很激动,大家可以点击这里浏览:http://blogs.technet.com/b/messageanalyzer/a ...

  8. mac端的优秀抓包工具——Charles使用

    http://my.oschina.net/u/2340880/blog/508688 mac端的优秀抓包工具——Charles使用 一.简介 二.安装与使用 三.使用Charles在mac上进行抓包 ...

  9. Android常用抓包工具之TcpDump

    ➠更多技术干货请戳:听云博客 做为一个测试人员,工作中经常会用到数据抓包工具来进行数据分析和验证,下面就简单介绍一下工作中常用的抓包工具. TcpDump抓包 Tcpdump是一个用于截取网络分组,并 ...

随机推荐

  1. mimikatz使用

    mimikatz使用 需要用管理员权限打开 privilege::debug sekurlsa::logonpasswords 已测试系统 Windows Server 2008 R2 Datacen ...

  2. hackrf GPS欺骗

    在对GPS欺骗之前,先对GPS的知识做一个简单的介绍 GPS 系统本身非常复杂, 涉及到卫星通信等各个领域. 这里只是简单介绍一下. 我们通常所说的 GPS 全球定位系统是由美国国防部建造完成. 目前 ...

  3. FL Studio杂项设置页讲解(上)

    今天我们来看一下FL Studio通道设置窗口中的杂项设置页面.该页面存在于FL Studio绝大多数的通道中,我们可以通过它来设置一些发生器或者第三方插件的参数,接下来就让我们一起来学习下这些参数的 ...

  4. guitar pro系列教程(二十四):Guitar Pro 7 中文界面的介绍

    用过Guitar Pro这款软件的小伙伴们都知道,Guitar Pro这款吉他软件因为是国外开发商研发的,所以软件最初都是英文版本,对于国内的的吉他爱好者来说,在软件使用上还是很不方便的.随着Guit ...

  5. 《图解TCP/IP》第四章

    <图解TCP/IP>第四章 4.1 IP 即网际协议 4.1.1 IP(IPv4.IPv6)相当于OSI参考模型中的第3层-网络层 4.1.2 数据链路层和网络层的关系: 数据链路层的主要 ...

  6. 03生成微博授权URL接口

    1.创建apps/oauth模块进行oauth认证 '''2.1 在apps文件夹下新建应用: oauth''' cd syl/apps python ../manage.py startapp oa ...

  7. 分析 5种分布式事务方案,还是选了阿里的 Seata(原理 + 实战)

    好长时间没发文了,最近着实是有点忙,当爹的第 43 天,身心疲惫.这又赶上年底,公司冲 KPI 强制技术部加班到十点,晚上孩子隔两三个小时一醒,基本没睡囫囵觉的机会,天天处于迷糊的状态,孩子还时不时起 ...

  8. 1.Cobaltstrike 安装与简介

    1.Cobaltstrike 安装与简介 一.简介 Cobalt Strike是一款美国Red Team开发的渗透测试神器,常被业界人内称为CS.自去年起, Cobaltstrike升级到3.0版本, ...

  9. 获取Win和Linux系统启动时间,类似uptime功能,用于判断是否修改过系统时间

    目录 前言 测试代码 Win测试 Linux测试 总结 前言 有时候需要判断系统是否有修改过时间,最简单的方法就是获取当前时间A,然后sleep X秒,然后获取 时间B,如果 时间B - 时间A ≠ ...

  10. 单例模式与它的七种java实现方式

    定义 单例模式是一个比较简单的模式,其定义如下: 确保某一个类只有一个实例,而且自行实例化,并向整个系统提供这个实力. 优点: 1.由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要 ...