APP下载

一种比较ASN.1码流差异的方法

2014-11-19郭晓凤王克阳

电子技术与软件工程 2014年20期
关键词:规整码流字段

郭晓凤++王克阳

摘 要 ASN.1码流是将所有字段的标签、长度、内容存放在一个文件中,对于两个不同的码流文件,如何快速找到ASN.1码流间的差异却不是一件容易的事情,本文给出了一种思路来快速定位码流间差异的方法。

【关键词】ASN.1 码流差异

1 ASN.1简介

ASN.1(Abstract Syntax Notation One)抽象语法规则,是一种用来描述系统之间传递的信息的格式的语言规范。在任何需要以数字方式发送信息的地方,ASN.1 都可以发送各种形式的信息(声频、视频、数据等等)。

2 问题提出

基于ASN.1编码的文件,是将字段按照下图的形式组织的,分为四个部分,其中标签和长度是必选部分,内容和内容结束标志是可选部分。对于内容结束部分,采用连续两个字节的0表示(00 00),仅仅在不定长编码时出现,要求:无二义,尽可能短。

一个ASN.1的示例码流如图2所示,文件是16进制码流组合在一起的文件,如果两个类似的码流差异,如何能够快速的找到差异是比较困难的,本文就两个ASN.1码流如何能够快速的定位到差异进行分析。

现在存在一些免费的ASN解码工具,如Asn1Viwer工具,该工具能够把标签TAG提取出来,左侧的树状列表显示标签TAG,右侧显示码流文件的内容,如图3所示,这种工具比图2直接面对没有分段的码流显然是易于使用很多。但是如果面对两个相似的码流文件,那么对比标签TAG和内容的时候这个工具就显得有些力不从心。首先它不能把TAG独立出来作为文件,来进行对比,另外也不能对字段的值独立出来作为文件,来进行对比。需要逐一对其进行核对两个文件的差异,这样容易出错,而且工作量也非常大,成本较高。

本文提出的ASNConTool工具通过对ASN.1码流文件进行规整,生成利于文件比较的文件组织形式,用第三方的比较工具(如Araxis Merge、UE等)来对升级前后的码流进行对比,可以快速定位到不一致的地方,不仅可以比较标签TAG的差异,也能够比较内容的差异,大大提高了差异发现的效率。

3 问题分析

为了便于说明我们所描述的问题,我们首先对一段码流文件的码流进行分析,如图4所示,整个文件都是以“标签+长度+内容”的形式来组织的。

从上面可以看出所有的标签和内容都是放在一起的,对于两个码流需要从头一个一个的查找和比较,如果使用比较工具,那么一处的不同会导致后面也不相同,显然对码流进行直接的比较是不可行的,如图5所示:

使用ASN1Viewer工具进行比较需要手工进行,需要比较两面的TAG是否一样,以及内容的差异,工作量也比较大,如图6所示:

如果把每个字段都单独放到一行,那么每个字段的差异不会影响到其他的字段,这种形式也适合第三方比较工具的比较,这样会得到一个利于查看的结果。

4 解决方法

根据上面的分析,开发了一个可以对文件规整的工具ASNConTool,就是把ASN.1的16进制码流文件转换成文本文件,在转换的同时也是对文件规整的一个过程,把码流文件按照如下形式进行规整,如图7所示:

使用文本工具将上面的两个转换后的文件打开,码流文件被规整成了图7所示的形式,规整后的实际的码流如图8所示:

将图8所示的码流文件使用比较工具进行对比,可以看出图9所示的差异,其中右面的文件比左面的文件少了标签83。

在对比结果的另外一行的差异如图10所示,可以看出两个文件的编码结果有差异。

在图11中可以看出,左侧和右侧存在差异,左侧标签结构类型的标签,右侧编码简单类型的标签,应该是结构型的标签。

从上面的例子可以看出,在输入条件相同的条件下面,利用此工具进行比较,是非常方便快捷的,可以快速定位差异的位置,并对其进行分析,加快问题分析解决的速度。

5 效果评价

本文提供的方法的主要是能够直接面对码流,利用ASN.1语法把被测试对象规整为利于第三方比较工具比较的形式,可以有效快速的定位码流间的差异,不仅仅能够发现标签的差异,同时对编码方法的差异也能够发现,大大提高了问题解决效率。

参考文献

[1]侯煜等.基于ASN.1的MAP码流的BER编解码的设计与实现[J].微计算机信息,2011(18).

[2]李鹏.ASN.1解码器的设计与实现及其在3G中的应用[J].电子电信,2011(02).

作者简介

郭晓凤(1979-),女,辽宁省人。硕士研究生学历。现为南京机电职业技术学院讲师。研究方向为电子信息工程技术。

王克阳(1982-),男 ,江苏省人。大学本科学历。现为南京机电职业技术学院助教。研究方向为电子信息。

作者单位

南京机电职业技术学院 江苏省南京市 211135endprint

摘 要 ASN.1码流是将所有字段的标签、长度、内容存放在一个文件中,对于两个不同的码流文件,如何快速找到ASN.1码流间的差异却不是一件容易的事情,本文给出了一种思路来快速定位码流间差异的方法。

【关键词】ASN.1 码流差异

1 ASN.1简介

ASN.1(Abstract Syntax Notation One)抽象语法规则,是一种用来描述系统之间传递的信息的格式的语言规范。在任何需要以数字方式发送信息的地方,ASN.1 都可以发送各种形式的信息(声频、视频、数据等等)。

2 问题提出

基于ASN.1编码的文件,是将字段按照下图的形式组织的,分为四个部分,其中标签和长度是必选部分,内容和内容结束标志是可选部分。对于内容结束部分,采用连续两个字节的0表示(00 00),仅仅在不定长编码时出现,要求:无二义,尽可能短。

一个ASN.1的示例码流如图2所示,文件是16进制码流组合在一起的文件,如果两个类似的码流差异,如何能够快速的找到差异是比较困难的,本文就两个ASN.1码流如何能够快速的定位到差异进行分析。

现在存在一些免费的ASN解码工具,如Asn1Viwer工具,该工具能够把标签TAG提取出来,左侧的树状列表显示标签TAG,右侧显示码流文件的内容,如图3所示,这种工具比图2直接面对没有分段的码流显然是易于使用很多。但是如果面对两个相似的码流文件,那么对比标签TAG和内容的时候这个工具就显得有些力不从心。首先它不能把TAG独立出来作为文件,来进行对比,另外也不能对字段的值独立出来作为文件,来进行对比。需要逐一对其进行核对两个文件的差异,这样容易出错,而且工作量也非常大,成本较高。

本文提出的ASNConTool工具通过对ASN.1码流文件进行规整,生成利于文件比较的文件组织形式,用第三方的比较工具(如Araxis Merge、UE等)来对升级前后的码流进行对比,可以快速定位到不一致的地方,不仅可以比较标签TAG的差异,也能够比较内容的差异,大大提高了差异发现的效率。

3 问题分析

为了便于说明我们所描述的问题,我们首先对一段码流文件的码流进行分析,如图4所示,整个文件都是以“标签+长度+内容”的形式来组织的。

从上面可以看出所有的标签和内容都是放在一起的,对于两个码流需要从头一个一个的查找和比较,如果使用比较工具,那么一处的不同会导致后面也不相同,显然对码流进行直接的比较是不可行的,如图5所示:

使用ASN1Viewer工具进行比较需要手工进行,需要比较两面的TAG是否一样,以及内容的差异,工作量也比较大,如图6所示:

如果把每个字段都单独放到一行,那么每个字段的差异不会影响到其他的字段,这种形式也适合第三方比较工具的比较,这样会得到一个利于查看的结果。

4 解决方法

根据上面的分析,开发了一个可以对文件规整的工具ASNConTool,就是把ASN.1的16进制码流文件转换成文本文件,在转换的同时也是对文件规整的一个过程,把码流文件按照如下形式进行规整,如图7所示:

使用文本工具将上面的两个转换后的文件打开,码流文件被规整成了图7所示的形式,规整后的实际的码流如图8所示:

将图8所示的码流文件使用比较工具进行对比,可以看出图9所示的差异,其中右面的文件比左面的文件少了标签83。

在对比结果的另外一行的差异如图10所示,可以看出两个文件的编码结果有差异。

在图11中可以看出,左侧和右侧存在差异,左侧标签结构类型的标签,右侧编码简单类型的标签,应该是结构型的标签。

从上面的例子可以看出,在输入条件相同的条件下面,利用此工具进行比较,是非常方便快捷的,可以快速定位差异的位置,并对其进行分析,加快问题分析解决的速度。

5 效果评价

本文提供的方法的主要是能够直接面对码流,利用ASN.1语法把被测试对象规整为利于第三方比较工具比较的形式,可以有效快速的定位码流间的差异,不仅仅能够发现标签的差异,同时对编码方法的差异也能够发现,大大提高了问题解决效率。

参考文献

[1]侯煜等.基于ASN.1的MAP码流的BER编解码的设计与实现[J].微计算机信息,2011(18).

[2]李鹏.ASN.1解码器的设计与实现及其在3G中的应用[J].电子电信,2011(02).

作者简介

郭晓凤(1979-),女,辽宁省人。硕士研究生学历。现为南京机电职业技术学院讲师。研究方向为电子信息工程技术。

王克阳(1982-),男 ,江苏省人。大学本科学历。现为南京机电职业技术学院助教。研究方向为电子信息。

作者单位

南京机电职业技术学院 江苏省南京市 211135endprint

摘 要 ASN.1码流是将所有字段的标签、长度、内容存放在一个文件中,对于两个不同的码流文件,如何快速找到ASN.1码流间的差异却不是一件容易的事情,本文给出了一种思路来快速定位码流间差异的方法。

【关键词】ASN.1 码流差异

1 ASN.1简介

ASN.1(Abstract Syntax Notation One)抽象语法规则,是一种用来描述系统之间传递的信息的格式的语言规范。在任何需要以数字方式发送信息的地方,ASN.1 都可以发送各种形式的信息(声频、视频、数据等等)。

2 问题提出

基于ASN.1编码的文件,是将字段按照下图的形式组织的,分为四个部分,其中标签和长度是必选部分,内容和内容结束标志是可选部分。对于内容结束部分,采用连续两个字节的0表示(00 00),仅仅在不定长编码时出现,要求:无二义,尽可能短。

一个ASN.1的示例码流如图2所示,文件是16进制码流组合在一起的文件,如果两个类似的码流差异,如何能够快速的找到差异是比较困难的,本文就两个ASN.1码流如何能够快速的定位到差异进行分析。

现在存在一些免费的ASN解码工具,如Asn1Viwer工具,该工具能够把标签TAG提取出来,左侧的树状列表显示标签TAG,右侧显示码流文件的内容,如图3所示,这种工具比图2直接面对没有分段的码流显然是易于使用很多。但是如果面对两个相似的码流文件,那么对比标签TAG和内容的时候这个工具就显得有些力不从心。首先它不能把TAG独立出来作为文件,来进行对比,另外也不能对字段的值独立出来作为文件,来进行对比。需要逐一对其进行核对两个文件的差异,这样容易出错,而且工作量也非常大,成本较高。

本文提出的ASNConTool工具通过对ASN.1码流文件进行规整,生成利于文件比较的文件组织形式,用第三方的比较工具(如Araxis Merge、UE等)来对升级前后的码流进行对比,可以快速定位到不一致的地方,不仅可以比较标签TAG的差异,也能够比较内容的差异,大大提高了差异发现的效率。

3 问题分析

为了便于说明我们所描述的问题,我们首先对一段码流文件的码流进行分析,如图4所示,整个文件都是以“标签+长度+内容”的形式来组织的。

从上面可以看出所有的标签和内容都是放在一起的,对于两个码流需要从头一个一个的查找和比较,如果使用比较工具,那么一处的不同会导致后面也不相同,显然对码流进行直接的比较是不可行的,如图5所示:

使用ASN1Viewer工具进行比较需要手工进行,需要比较两面的TAG是否一样,以及内容的差异,工作量也比较大,如图6所示:

如果把每个字段都单独放到一行,那么每个字段的差异不会影响到其他的字段,这种形式也适合第三方比较工具的比较,这样会得到一个利于查看的结果。

4 解决方法

根据上面的分析,开发了一个可以对文件规整的工具ASNConTool,就是把ASN.1的16进制码流文件转换成文本文件,在转换的同时也是对文件规整的一个过程,把码流文件按照如下形式进行规整,如图7所示:

使用文本工具将上面的两个转换后的文件打开,码流文件被规整成了图7所示的形式,规整后的实际的码流如图8所示:

将图8所示的码流文件使用比较工具进行对比,可以看出图9所示的差异,其中右面的文件比左面的文件少了标签83。

在对比结果的另外一行的差异如图10所示,可以看出两个文件的编码结果有差异。

在图11中可以看出,左侧和右侧存在差异,左侧标签结构类型的标签,右侧编码简单类型的标签,应该是结构型的标签。

从上面的例子可以看出,在输入条件相同的条件下面,利用此工具进行比较,是非常方便快捷的,可以快速定位差异的位置,并对其进行分析,加快问题分析解决的速度。

5 效果评价

本文提供的方法的主要是能够直接面对码流,利用ASN.1语法把被测试对象规整为利于第三方比较工具比较的形式,可以有效快速的定位码流间的差异,不仅仅能够发现标签的差异,同时对编码方法的差异也能够发现,大大提高了问题解决效率。

参考文献

[1]侯煜等.基于ASN.1的MAP码流的BER编解码的设计与实现[J].微计算机信息,2011(18).

[2]李鹏.ASN.1解码器的设计与实现及其在3G中的应用[J].电子电信,2011(02).

作者简介

郭晓凤(1979-),女,辽宁省人。硕士研究生学历。现为南京机电职业技术学院讲师。研究方向为电子信息工程技术。

王克阳(1982-),男 ,江苏省人。大学本科学历。现为南京机电职业技术学院助教。研究方向为电子信息。

作者单位

南京机电职业技术学院 江苏省南京市 211135endprint

猜你喜欢

规整码流字段
图书馆中文图书编目外包数据质量控制分析
分布式码流实时监控与录制系统的设计与实现
数字电视TS码流协议简要分析
300kt/a硫酸系统规整填料使用情况简介
电梯的建筑化艺术探索
基于发音机制的贪婪自适应语音时长规整算法
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
基于梯度的CCSDS压缩码流控制算法研究
关于CNMARC的3--字段改革的必要性与可行性研究