Creo/ProE 二进制文件逆向解析-数据块的格式和特点

一、关于二进制文件逆向解析

cad的二进制文件逆向解析和常规的二次开发是不同,二次开发是依托于cad软件平台和接口进行数据导出、菜单UI设计等操作的,而逆向解析是脱离软件和接口,直接面向cad的二进制文件进行解析、提取数据等操作。在这里我们来浅聊一下creo软件的文件逆向解析方法。

二、解析流程

creo的二进制文件解析主要分为两个阶段:把二进制文件(.prt)翻译为可读的文本文件;根据文本文件中数据块的格式翻译提取出我们需要的cad数据。在这里我们只讲第二阶段,第一阶段不是我们要讲的内容。

三、文件结构

creo文件的内容按顺序分为三部分:文件头、数据块索引和数据块。这里重点谈一下数据块的解析,因为文件头和数据块索引不太重要,没有太大价值。

文件头

文件头在文件的首部,主要包含日期、版本、零件名称等信息。
在这里插入图片描述

数据块索引

数据块索引就是包含各个数据块的名称、在文件中的位置、数据块大小等信息。在这里插入图片描述

数据块

数据块是存储某类cad数据的一段文本。像VisibGeom数据块是存的cad模型的三维可视化数据,Note数据块存的模型的注释数据。
每个数据块都是以 “#” + 数据块名称 开始,直到下一个数据块的 “#” + 数据块名称 之前结束。
在这里插入图片描述
数据块里的数据由两部分组成:
第一部分包括一个属性关键字、数据的属性id、数据类型。属性关键字用@+名称表示,数据的属性id就是一个数字,一个数据块里相同类型的数据的属性id是相同的,比如颜色数据会存在多个,那这些颜色数据的属性id都是相同的。数据类型则是有固定含义,0代表这个数据是一个对象或者指针,1代表是整形数据,2代表是浮点型数据。
第二部分的起始也是两个数字:第一个数字表示该数据所在层级,比如一个对象或者结构体的数据层级是2,那么它里面的成员变量所在的数据层级就是3;第二个数字还是表示数据的属性id,和第一部分的属性id是保持一致的。第二部分的两个数字之后就是具体的数据了。
在这里插入图片描述

结语

以上就是creo文件及数据块格式的解析方法,这里只是简单介绍了一下,没有过多深入,后续会继续写相关的深入一点的文章,欢迎大家前来交流和指点。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沧云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值