加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

.sol文件格式解析

发布时间:2020-12-15 06:24:02 所属栏目:百科 来源:网络整理
导读:最近想要做一个分享某个flash播放器的屏蔽名单的火狐扩展,随便看看了看那个sol文件就做了,结果出来各种BUG,果然还是得认真分析一下文件格式 在网上搜了一遍只看到这个分析 http://hi.baidu.com/1984holmes/blog/item/89b5f3c2762c105db319a8ce.html Share

最近想要做一个分享某个flash播放器的屏蔽名单的火狐扩展,随便看看了看那个sol文件就做了,结果出来各种BUG,果然还是得认真分析一下文件格式

在网上搜了一遍只看到这个分析

http://hi.baidu.com/1984holmes/blog/item/89b5f3c2762c105db319a8ce.html

    SharedObject .sol文件头总是00 BF,接着4个字节是大小(这个大小是之后所有块的大小哦),然后也是固定的54 43 53 4F 00 04 00 00 00 00。

    第17、18字节是SharedObject变量名的长度,紧跟着就是SharedObject变量名。之后的4个字节代表sol文件版本,00 00 00 00是AS2.0生成的,00 00 00 03是AS3.0生成的。

    紧跟着是SharedObject的data变量名长度,这里算法很奇怪,如果长度是x,这里的值就是2x+1。之后是data变量名。再接着是data变量值的类型,这里类型如下:

02 逻辑值false,后接00
03 逻辑值true,后接00
04 数字(紧接数字值,每一个字节取值在0~7F,大于7F进位为80 00;最后以00结尾)
06 字符串(紧接长度,为字符串长度的2x+1;长度之后是字符串值,最后以00结尾)
09 数组(紧接数组的元素个数,取值还是2x+1 ,接下来的一个字节可能是数组的维数;最后以00结尾)

作者基本把格式说清楚了,但还是有些要补充的

关于数字进位,我猜测大概是采用类似可变字节编码(variable-byte)的方式,第一位是延续位,1表示后面还有字节,0表示结束

分析清楚了以后其实就能明白sol文件采用的就是键值对(key-value pair)的方式来组织的,每个键值对都是以00结尾

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读