博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抓包工具PowerSniff-0.1
阅读量:5242 次
发布时间:2019-06-14

本文共 2437 字,大约阅读时间需要 8 分钟。

做这个程序的意图是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.14require "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))    --endend-- 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)endfunction handle_click(protocol,data,len_total,len_data)endfunction handle_double(protocol,data,len_total,len_data)    handle_data(protocol,data,len_total,len_data)end

 

转载于:https://www.cnblogs.com/wjx0912/p/4810792.html

你可能感兴趣的文章
堆 栈
查看>>
Kth Smallest Element in Unsorted Array
查看>>
vue项目中使用百度统计
查看>>
android:scaleType属性
查看>>
SuperEPC
查看>>
RBAC用户角色权限设计方案
查看>>
thymeleaf
查看>>
CentOS7安装iptables防火墙
查看>>
mysql-5.7 innodb 的并行任务调度详解
查看>>
shell脚本
查看>>
Upload Image to .NET Core 2.1 API
查看>>
python针对excel的读写操作-----openpyxl
查看>>
最后几本书,不珍藏了。
查看>>
Js时间处理
查看>>
Java项目xml相关配置
查看>>
按钮实现A标签新窗口打开(不用window.open)
查看>>
MainActivity
查看>>
三维变换概述
查看>>
[8.08考试] 隔膜
查看>>
Python 中 open()文件操作的方式
查看>>