基于Python实现的一个通用的二进制数据分析工具源码,分析任意格式的二进制数据,还能同时查看协议文档

news/2024/10/18 8:24:49/

这是一个通用的二进制数据分析工具。

它能做什么

  • 分析任意格式的二进制数据,还能同时查看协议文档
  • 逐字节、逐位分析
  • 手动、自动分析
  • 对分析结果建透视图,发现规律,学习协议

怎么做到的

  • 工具以插件化方式扩展协议的支持
  • 定义了易用的API供插件开发。插件中的协议解析代码几乎可以做到与协议文档逐行对应
  • 以markdown管理协议文档,既可以脱离工具翻阅,又可以在工具中自动呈现关联文档

运行截图

主窗口运行效果

在这里插入图片描述

透视图(根据分析需求自定义字段)

在这里插入图片描述

插件开发示意(图中从左到右:wav头格式,插件解析代码,工具运行效果)

在这里插入图片描述

开发

项目已经能基本运行,且支持了部分的wav/ts/h264协议,下载源码搭建python环境可以看到初步效果

在开发:

  • 界面与交互的完善
  • 工作区的概念(可保存和恢复操作记录)
  • 完善插件开发文档

如何运行

后续计划为linux/mac/windows三个平台发布可执行程序

现在还只能在python环境下运行

pip install -r requirements.txt
python app.py

如果通过requirements.txt安装碰到问题,也可以直接运行python app.py,根据提示安装缺少的模块。

一般需要:

pip install markdown2
pip install PySide2

需要运行环境:python3

完整代码下载地址:基于Python实现的一个通用的二进制数据分析工具源码


http://www.ppmy.cn/news/1165576.html

相关文章

OSI网络分层模型

OSI英文全文是Open System Interconnection Reference Model,翻译成中文就是开放式系统互联通信参考模型。 OSI模型分成了七层,部分层次与 TCP/IP 很像,从下到上分别是: 第一层:物理层,网络的物理形式&…

常见漏洞危害总结

文章目录 ⽤⾃⼰的理解说明如下漏洞的危害跨站脚本测试(XSS)HTTP header测试服务器端请求伪造(SSRF)测试跨站请求伪造(CSRF)测试负值反冲敏感信息明⽂传输是否部署HTTPS传输短信验证码绕过测试短信验证码暴…

通过后端数据交互,实现【会议Oa小程序】首页数据渲染

🏅我是默,一个在CSDN分享笔记的博主。📚📚 🌟在这里,我要推荐给大家我的专栏《微信小程序 》。🎯🎯 🚀无论你是编程小白,还是有一定基础的程序员,…

C语言实现用递归方法求 () = ∑ (^2)

完整代码&#xff1a; // 用递归方法求 ??(??) ∑ (??^2) #include<stdio.h>int func(int n){if (n1){return 1;}else{return n*nfunc(n-1);} }int main() {int n;printf("请输入一个整数");scanf("%d",&n);printf("%d",func(…

【LeetCode:86. 分隔链表 | 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

在Go中处理异常

引言 程序遇到的错误大致分为两类:程序员预料到的错误和程序员没有预料到的错误。我们在前两篇关于[错误处理]的文章中介绍的error接口主要处理我们在编写Go程序时预期的错误。error接口甚至允许我们承认函数调用发生错误的罕见可能性&#xff0c;因此我们可以在这些情况下进行…

Win系统VMware虚拟机安装配置(一)(附激活码安装包)

VMware软件包&#xff08;Mac和Win&#xff09;提取码:hzxyhttps://www.123pan.com/s/JRpSVv-vKnjv.html 一、VMware 安装 一台电脑本身是可以装多个操作系统的&#xff0c;但是做不到多个操作系统切换自如&#xff0c;所以我们 需要一款软件帮助我们达到这个目的&#xff0c…

关于Java Integer和Long使用equals直接比较

Integer和Long不能直接equals比较会返回False Long.class源码 public boolean equals(Object obj) {if (obj instanceof Long) {return this.value (Long)obj;} else {return false;} }Integer.class源码 public boolean equals(Object obj) {if (obj instanceof Integer) {…