.sol文件格式解析

最近想要做一个分享某个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结尾






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值