- 24
- 0
- 约1.07万字
- 约 6页
- 2017-06-24 发布于天津
- 举报
利用vstruct解析二进制数据-m6aa8k
原原文文地地址址:/papers/8643
原文地址:/blog/2015/09/08/parsing-binary-data-with-%60vstr ct%60/
Vstr ct是一个纯粹由Python语言编写的模块,可用于二进制数据的解析和序 化处理。实际上,Vstr ct是隶属于vivisect
项目的一个子模块,该项目是由Invisig0th Kenshoto发起的,专门用来处理二进制分析。 Vstr ct的开发和测试已经有许多
年头了,并且已经集成到了许多生成环境下的系统中了。此外,这个模块不仅简单易学,而且重要的是,它还非常有
趣!
您还在使用str ct模块火急火燎地手工编写脚本吗?太苦逼了,不如使用vstr ct吧!利用vstr ct开发的代码,往往更具有
陈述性或声明性,更加简明易懂,这是因为在编写二进制解析代码时通常会带有大量样板代码,而vstr ct却不会出现这
种情况。声明性代码强调的是二进制分析的下 重要方面:偏移,大小和类型。这使得基于vstr ct的解析器更易于长期
维护。
0x00 安安装装vstruct
Vstr ct模块是vivisect项目的一个组成部分,目前该项目与Python 2.7保持兼容,当然,面向Python 3.x的vivisect分支目前正
在开发之中。
由于vivisect的子项目不是用兼容set ptools的set p.py文件分发的,所以你需要自己下载vstr ct的源代码目录,并将其放入
你的Python路径目录中,比如当前目录下:
$ git clone /vivisect/vivisect.git vivisect
$ cd vivisect
$ python
In [1]: import vstruct
In [2]: vstruct.isVstructType (str
Out[2]: False
当然,通过set p.py来声明vstr ct依赖的Python模块是非常麻烦的事情,因此为方便起见,我提供了一个PyPI镜像包,名
为vivisect-vstr ct-wb,这样的话,大家就可以直接利用pip命令来安装vstr ct了:
$ mkdir /tmp/env
$ virtualenv -p python2 /tmp/env
$ /tmp/env/bin/pip install vivisect-vstruct-wb
$ /tmp/env/bin/python
In [1]: import vstruct
In [2]: vstruct.isVstructType (str
Out[2]: False
我已经对这个镜像进行了更新,现在它既支持Python 2.7也支持Python 3.0的解释程序,以便于读者在将来的工程中继续
使用vivisect-vstr ct-wb 。另外,遇到问题时,千万不要忘了到Visi的GitH b上去看看有没有现成的答案。
0x01 Vstruct入入门门
下面的例子相当于大家学编程语言时的“Hello World !”程序,它使用vstr ct来解析字节串中的小端模式的32位无符号整
数:
In [1]: import vstruct
In [2]: u32 = vstruct.primitives.v_uint32(
In [3]: u32.vsParse (b\x01\x02\x03\x04
In [4]: hex (u32
Out[4]: 0x4030201
请注意观察上面代码是如何创建v_ int32类型实例、如何使用.vsParse()方法解析字节串,以及如何像处理原生Python类
型实例那样来处理最后的结果的。为了更安全起见,我要显式地将解析后的对象转换成一个纯Python类型:
In [5]: type (u32
Out[5]: vstruct.primitives.v_uint32
In [6]: python_u32 = int(u32
In [7]: type (python_u32
Out[7]: int
In [8]: hex (python_u32
Out[8]: 0x4030201
事实上,每个vstr ct操作都被定义为一个以vs为前缀的方法,几乎在所有由vstr ct派生的解析器中,都能找到这些方法
的身影。虽然我最常用的是.vsParse()和.vsSetLength()这两个方法,但是我们最好熟悉所有方法的使用方法。下面是对每
种方法的简单总结:
您可能关注的文档
- 册手术技-Elecfreaks.PDF
- 再析灯具的配光曲线.PDF
- 农∏成功中3y丰收粮食stock达历史高.PPT
- 农业和园艺食品葡萄栽培和酿酒-LincolnUniversity.PDF
- 农村地埋电线故障检测方法综述.PDF
- 农业龙头企业与合作农户的双边关系治理+.PDF
- 农民工社会保障-国际经验-2015HUAIDI.PPT
- 决定示波器性能高度的模拟技术-中国电子仪器行业协会.DOC
- 内容中心容迟网络中基于订阅时效的缓存管理机制-中南大学学报.PDF
- 冷凝温度比压缩机底部低6.PPT
- 利用低频磁场天线遥感测量人工引雷中的初始连续电流-欢迎访问中国.PDF
- 利用一个先进的噪音测量系统研究在微波元件的噪音现象.PPT
- 利用发射光谱研究ECR等离子体对钨的刻蚀-北京工业大学学报.PDF
- 利用大肠杆菌工程菌廉价高效生产聚羟基丁酸酯.PDF
- 利用拉曼光谱技术研究分子结构-复旦大学物理教学实验中心Fudan.PDF
- 利用无损压缩降低循环冗余校验的错误漏检率及其-电子与信息学报.PDF
- 利用电致发光技术快速测定晶硅太阳电池少子寿命-上海交通大学凝聚.PDF
- 列管式平板膜XMBR的特点一、不一样的平板膜(比中空膜更经济.PDF
- 利用扫描探针显微镜表征薄膜材料的表面显微形貌.PPT
- 利用自主电源管理器简化锂离子电池充电过程SteveKnoth关键词.PDF
最近下载
- H3C认证GB0-510 H3CNE-Security网络安全工程师考试题库及答案.docx VIP
- H3CNE-RS+GB0-192认证考试题库(含答案).pdf VIP
- 索尼SW7600GR中文说明书.pdf
- 华三认证考试H3CNE安全 GB0-510 安全工程师考试题库(含答案).docx VIP
- 钢结构厂房水电安装施工组织方案.docx VIP
- 第1课+おじぎ+课文注音讲义 高中日语人教版第一册.docx VIP
- 新版H3CNE_gb0-192认证题库.pdf VIP
- H3CNE-RS+GB0-192认证考试题库(含答案).docx VIP
- 浙江省宁波市镇海中学2025-2026学年高三上学期12月适应性考试政治试题含解析.docx VIP
- 民航安全检查员理论知识考试卷.doc VIP
原创力文档

文档评论(0)