郭曉鳳++王克陽
摘 要 ASN.1碼流是將所有字段的標(biāo)簽、長度、內(nèi)容存放在一個文件中,對于兩個不同的碼流文件,如何快速找到ASN.1碼流間的差異卻不是一件容易的事情,本文給出了一種思路來快速定位碼流間差異的方法。
【關(guān)鍵詞】ASN.1 碼流差異
1 ASN.1簡介
ASN.1(Abstract Syntax Notation One)抽象語法規(guī)則,是一種用來描述系統(tǒng)之間傳遞的信息的格式的語言規(guī)范。在任何需要以數(shù)字方式發(fā)送信息的地方,ASN.1 都可以發(fā)送各種形式的信息(聲頻、視頻、數(shù)據(jù)等等)。
2 問題提出
基于ASN.1編碼的文件,是將字段按照下圖的形式組織的,分為四個部分,其中標(biāo)簽和長度是必選部分,內(nèi)容和內(nèi)容結(jié)束標(biāo)志是可選部分。對于內(nèi)容結(jié)束部分,采用連續(xù)兩個字節(jié)的0表示(00 00),僅僅在不定長編碼時出現(xiàn),要求:無二義,盡可能短。
一個ASN.1的示例碼流如圖2所示,文件是16進(jìn)制碼流組合在一起的文件,如果兩個類似的碼流差異,如何能夠快速的找到差異是比較困難的,本文就兩個ASN.1碼流如何能夠快速的定位到差異進(jìn)行分析。
現(xiàn)在存在一些免費(fèi)的ASN解碼工具,如Asn1Viwer工具,該工具能夠把標(biāo)簽TAG提取出來,左側(cè)的樹狀列表顯示標(biāo)簽TAG,右側(cè)顯示碼流文件的內(nèi)容,如圖3所示,這種工具比圖2直接面對沒有分段的碼流顯然是易于使用很多。但是如果面對兩個相似的碼流文件,那么對比標(biāo)簽TAG和內(nèi)容的時候這個工具就顯得有些力不從心。首先它不能把TAG獨(dú)立出來作為文件,來進(jìn)行對比,另外也不能對字段的值獨(dú)立出來作為文件,來進(jìn)行對比。需要逐一對其進(jìn)行核對兩個文件的差異,這樣容易出錯,而且工作量也非常大,成本較高。
本文提出的ASNConTool工具通過對ASN.1碼流文件進(jìn)行規(guī)整,生成利于文件比較的文件組織形式,用第三方的比較工具(如Araxis Merge、UE等)來對升級前后的碼流進(jìn)行對比,可以快速定位到不一致的地方,不僅可以比較標(biāo)簽TAG的差異,也能夠比較內(nèi)容的差異,大大提高了差異發(fā)現(xiàn)的效率。
3 問題分析
為了便于說明我們所描述的問題,我們首先對一段碼流文件的碼流進(jìn)行分析,如圖4所示,整個文件都是以“標(biāo)簽+長度+內(nèi)容”的形式來組織的。
從上面可以看出所有的標(biāo)簽和內(nèi)容都是放在一起的,對于兩個碼流需要從頭一個一個的查找和比較,如果使用比較工具,那么一處的不同會導(dǎo)致后面也不相同,顯然對碼流進(jìn)行直接的比較是不可行的,如圖5所示:
使用ASN1Viewer工具進(jìn)行比較需要手工進(jìn)行,需要比較兩面的TAG是否一樣,以及內(nèi)容的差異,工作量也比較大,如圖6所示:
如果把每個字段都單獨(dú)放到一行,那么每個字段的差異不會影響到其他的字段,這種形式也適合第三方比較工具的比較,這樣會得到一個利于查看的結(jié)果。
4 解決方法
根據(jù)上面的分析,開發(fā)了一個可以對文件規(guī)整的工具ASNConTool,就是把ASN.1的16進(jìn)制碼流文件轉(zhuǎn)換成文本文件,在轉(zhuǎn)換的同時也是對文件規(guī)整的一個過程,把碼流文件按照如下形式進(jìn)行規(guī)整,如圖7所示:
使用文本工具將上面的兩個轉(zhuǎn)換后的文件打開,碼流文件被規(guī)整成了圖7所示的形式,規(guī)整后的實(shí)際的碼流如圖8所示:
將圖8所示的碼流文件使用比較工具進(jìn)行對比,可以看出圖9所示的差異,其中右面的文件比左面的文件少了標(biāo)簽83。
在對比結(jié)果的另外一行的差異如圖10所示,可以看出兩個文件的編碼結(jié)果有差異。
在圖11中可以看出,左側(cè)和右側(cè)存在差異,左側(cè)標(biāo)簽結(jié)構(gòu)類型的標(biāo)簽,右側(cè)編碼簡單類型的標(biāo)簽,應(yīng)該是結(jié)構(gòu)型的標(biāo)簽。
從上面的例子可以看出,在輸入條件相同的條件下面,利用此工具進(jìn)行比較,是非常方便快捷的,可以快速定位差異的位置,并對其進(jìn)行分析,加快問題分析解決的速度。
5 效果評價
本文提供的方法的主要是能夠直接面對碼流,利用ASN.1語法把被測試對象規(guī)整為利于第三方比較工具比較的形式,可以有效快速的定位碼流間的差異,不僅僅能夠發(fā)現(xiàn)標(biāo)簽的差異,同時對編碼方法的差異也能夠發(fā)現(xiàn),大大提高了問題解決效率。
參考文獻(xiàn)
[1]侯煜等.基于ASN.1的MAP碼流的BER編解碼的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2011(18).
[2]李鵬.ASN.1解碼器的設(shè)計(jì)與實(shí)現(xiàn)及其在3G中的應(yīng)用[J].電子電信,2011(02).
作者簡介
郭曉鳳(1979-),女,遼寧省人。碩士研究生學(xué)歷。現(xiàn)為南京機(jī)電職業(yè)技術(shù)學(xué)院講師。研究方向?yàn)殡娮有畔⒐こ碳夹g(shù)。
王克陽(1982-),男 ,江蘇省人。大學(xué)本科學(xué)歷?,F(xiàn)為南京機(jī)電職業(yè)技術(shù)學(xué)院助教。研究方向?yàn)殡娮有畔ⅰ?/p>
作者單位
南京機(jī)電職業(yè)技術(shù)學(xué)院 江蘇省南京市 211135endprint
摘 要 ASN.1碼流是將所有字段的標(biāo)簽、長度、內(nèi)容存放在一個文件中,對于兩個不同的碼流文件,如何快速找到ASN.1碼流間的差異卻不是一件容易的事情,本文給出了一種思路來快速定位碼流間差異的方法。
【關(guān)鍵詞】ASN.1 碼流差異
1 ASN.1簡介
ASN.1(Abstract Syntax Notation One)抽象語法規(guī)則,是一種用來描述系統(tǒng)之間傳遞的信息的格式的語言規(guī)范。在任何需要以數(shù)字方式發(fā)送信息的地方,ASN.1 都可以發(fā)送各種形式的信息(聲頻、視頻、數(shù)據(jù)等等)。
2 問題提出
基于ASN.1編碼的文件,是將字段按照下圖的形式組織的,分為四個部分,其中標(biāo)簽和長度是必選部分,內(nèi)容和內(nèi)容結(jié)束標(biāo)志是可選部分。對于內(nèi)容結(jié)束部分,采用連續(xù)兩個字節(jié)的0表示(00 00),僅僅在不定長編碼時出現(xiàn),要求:無二義,盡可能短。
一個ASN.1的示例碼流如圖2所示,文件是16進(jìn)制碼流組合在一起的文件,如果兩個類似的碼流差異,如何能夠快速的找到差異是比較困難的,本文就兩個ASN.1碼流如何能夠快速的定位到差異進(jìn)行分析。
現(xiàn)在存在一些免費(fèi)的ASN解碼工具,如Asn1Viwer工具,該工具能夠把標(biāo)簽TAG提取出來,左側(cè)的樹狀列表顯示標(biāo)簽TAG,右側(cè)顯示碼流文件的內(nèi)容,如圖3所示,這種工具比圖2直接面對沒有分段的碼流顯然是易于使用很多。但是如果面對兩個相似的碼流文件,那么對比標(biāo)簽TAG和內(nèi)容的時候這個工具就顯得有些力不從心。首先它不能把TAG獨(dú)立出來作為文件,來進(jìn)行對比,另外也不能對字段的值獨(dú)立出來作為文件,來進(jìn)行對比。需要逐一對其進(jìn)行核對兩個文件的差異,這樣容易出錯,而且工作量也非常大,成本較高。
本文提出的ASNConTool工具通過對ASN.1碼流文件進(jìn)行規(guī)整,生成利于文件比較的文件組織形式,用第三方的比較工具(如Araxis Merge、UE等)來對升級前后的碼流進(jìn)行對比,可以快速定位到不一致的地方,不僅可以比較標(biāo)簽TAG的差異,也能夠比較內(nèi)容的差異,大大提高了差異發(fā)現(xiàn)的效率。
3 問題分析
為了便于說明我們所描述的問題,我們首先對一段碼流文件的碼流進(jìn)行分析,如圖4所示,整個文件都是以“標(biāo)簽+長度+內(nèi)容”的形式來組織的。
從上面可以看出所有的標(biāo)簽和內(nèi)容都是放在一起的,對于兩個碼流需要從頭一個一個的查找和比較,如果使用比較工具,那么一處的不同會導(dǎo)致后面也不相同,顯然對碼流進(jìn)行直接的比較是不可行的,如圖5所示:
使用ASN1Viewer工具進(jìn)行比較需要手工進(jìn)行,需要比較兩面的TAG是否一樣,以及內(nèi)容的差異,工作量也比較大,如圖6所示:
如果把每個字段都單獨(dú)放到一行,那么每個字段的差異不會影響到其他的字段,這種形式也適合第三方比較工具的比較,這樣會得到一個利于查看的結(jié)果。
4 解決方法
根據(jù)上面的分析,開發(fā)了一個可以對文件規(guī)整的工具ASNConTool,就是把ASN.1的16進(jìn)制碼流文件轉(zhuǎn)換成文本文件,在轉(zhuǎn)換的同時也是對文件規(guī)整的一個過程,把碼流文件按照如下形式進(jìn)行規(guī)整,如圖7所示:
使用文本工具將上面的兩個轉(zhuǎn)換后的文件打開,碼流文件被規(guī)整成了圖7所示的形式,規(guī)整后的實(shí)際的碼流如圖8所示:
將圖8所示的碼流文件使用比較工具進(jìn)行對比,可以看出圖9所示的差異,其中右面的文件比左面的文件少了標(biāo)簽83。
在對比結(jié)果的另外一行的差異如圖10所示,可以看出兩個文件的編碼結(jié)果有差異。
在圖11中可以看出,左側(cè)和右側(cè)存在差異,左側(cè)標(biāo)簽結(jié)構(gòu)類型的標(biāo)簽,右側(cè)編碼簡單類型的標(biāo)簽,應(yīng)該是結(jié)構(gòu)型的標(biāo)簽。
從上面的例子可以看出,在輸入條件相同的條件下面,利用此工具進(jìn)行比較,是非常方便快捷的,可以快速定位差異的位置,并對其進(jìn)行分析,加快問題分析解決的速度。
5 效果評價
本文提供的方法的主要是能夠直接面對碼流,利用ASN.1語法把被測試對象規(guī)整為利于第三方比較工具比較的形式,可以有效快速的定位碼流間的差異,不僅僅能夠發(fā)現(xiàn)標(biāo)簽的差異,同時對編碼方法的差異也能夠發(fā)現(xiàn),大大提高了問題解決效率。
參考文獻(xiàn)
[1]侯煜等.基于ASN.1的MAP碼流的BER編解碼的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2011(18).
[2]李鵬.ASN.1解碼器的設(shè)計(jì)與實(shí)現(xiàn)及其在3G中的應(yīng)用[J].電子電信,2011(02).
作者簡介
郭曉鳳(1979-),女,遼寧省人。碩士研究生學(xué)歷?,F(xiàn)為南京機(jī)電職業(yè)技術(shù)學(xué)院講師。研究方向?yàn)殡娮有畔⒐こ碳夹g(shù)。
王克陽(1982-),男 ,江蘇省人。大學(xué)本科學(xué)歷。現(xiàn)為南京機(jī)電職業(yè)技術(shù)學(xué)院助教。研究方向?yàn)殡娮有畔ⅰ?/p>
作者單位
南京機(jī)電職業(yè)技術(shù)學(xué)院 江蘇省南京市 211135endprint
摘 要 ASN.1碼流是將所有字段的標(biāo)簽、長度、內(nèi)容存放在一個文件中,對于兩個不同的碼流文件,如何快速找到ASN.1碼流間的差異卻不是一件容易的事情,本文給出了一種思路來快速定位碼流間差異的方法。
【關(guān)鍵詞】ASN.1 碼流差異
1 ASN.1簡介
ASN.1(Abstract Syntax Notation One)抽象語法規(guī)則,是一種用來描述系統(tǒng)之間傳遞的信息的格式的語言規(guī)范。在任何需要以數(shù)字方式發(fā)送信息的地方,ASN.1 都可以發(fā)送各種形式的信息(聲頻、視頻、數(shù)據(jù)等等)。
2 問題提出
基于ASN.1編碼的文件,是將字段按照下圖的形式組織的,分為四個部分,其中標(biāo)簽和長度是必選部分,內(nèi)容和內(nèi)容結(jié)束標(biāo)志是可選部分。對于內(nèi)容結(jié)束部分,采用連續(xù)兩個字節(jié)的0表示(00 00),僅僅在不定長編碼時出現(xiàn),要求:無二義,盡可能短。
一個ASN.1的示例碼流如圖2所示,文件是16進(jìn)制碼流組合在一起的文件,如果兩個類似的碼流差異,如何能夠快速的找到差異是比較困難的,本文就兩個ASN.1碼流如何能夠快速的定位到差異進(jìn)行分析。
現(xiàn)在存在一些免費(fèi)的ASN解碼工具,如Asn1Viwer工具,該工具能夠把標(biāo)簽TAG提取出來,左側(cè)的樹狀列表顯示標(biāo)簽TAG,右側(cè)顯示碼流文件的內(nèi)容,如圖3所示,這種工具比圖2直接面對沒有分段的碼流顯然是易于使用很多。但是如果面對兩個相似的碼流文件,那么對比標(biāo)簽TAG和內(nèi)容的時候這個工具就顯得有些力不從心。首先它不能把TAG獨(dú)立出來作為文件,來進(jìn)行對比,另外也不能對字段的值獨(dú)立出來作為文件,來進(jìn)行對比。需要逐一對其進(jìn)行核對兩個文件的差異,這樣容易出錯,而且工作量也非常大,成本較高。
本文提出的ASNConTool工具通過對ASN.1碼流文件進(jìn)行規(guī)整,生成利于文件比較的文件組織形式,用第三方的比較工具(如Araxis Merge、UE等)來對升級前后的碼流進(jìn)行對比,可以快速定位到不一致的地方,不僅可以比較標(biāo)簽TAG的差異,也能夠比較內(nèi)容的差異,大大提高了差異發(fā)現(xiàn)的效率。
3 問題分析
為了便于說明我們所描述的問題,我們首先對一段碼流文件的碼流進(jìn)行分析,如圖4所示,整個文件都是以“標(biāo)簽+長度+內(nèi)容”的形式來組織的。
從上面可以看出所有的標(biāo)簽和內(nèi)容都是放在一起的,對于兩個碼流需要從頭一個一個的查找和比較,如果使用比較工具,那么一處的不同會導(dǎo)致后面也不相同,顯然對碼流進(jìn)行直接的比較是不可行的,如圖5所示:
使用ASN1Viewer工具進(jìn)行比較需要手工進(jìn)行,需要比較兩面的TAG是否一樣,以及內(nèi)容的差異,工作量也比較大,如圖6所示:
如果把每個字段都單獨(dú)放到一行,那么每個字段的差異不會影響到其他的字段,這種形式也適合第三方比較工具的比較,這樣會得到一個利于查看的結(jié)果。
4 解決方法
根據(jù)上面的分析,開發(fā)了一個可以對文件規(guī)整的工具ASNConTool,就是把ASN.1的16進(jìn)制碼流文件轉(zhuǎn)換成文本文件,在轉(zhuǎn)換的同時也是對文件規(guī)整的一個過程,把碼流文件按照如下形式進(jìn)行規(guī)整,如圖7所示:
使用文本工具將上面的兩個轉(zhuǎn)換后的文件打開,碼流文件被規(guī)整成了圖7所示的形式,規(guī)整后的實(shí)際的碼流如圖8所示:
將圖8所示的碼流文件使用比較工具進(jìn)行對比,可以看出圖9所示的差異,其中右面的文件比左面的文件少了標(biāo)簽83。
在對比結(jié)果的另外一行的差異如圖10所示,可以看出兩個文件的編碼結(jié)果有差異。
在圖11中可以看出,左側(cè)和右側(cè)存在差異,左側(cè)標(biāo)簽結(jié)構(gòu)類型的標(biāo)簽,右側(cè)編碼簡單類型的標(biāo)簽,應(yīng)該是結(jié)構(gòu)型的標(biāo)簽。
從上面的例子可以看出,在輸入條件相同的條件下面,利用此工具進(jìn)行比較,是非常方便快捷的,可以快速定位差異的位置,并對其進(jìn)行分析,加快問題分析解決的速度。
5 效果評價
本文提供的方法的主要是能夠直接面對碼流,利用ASN.1語法把被測試對象規(guī)整為利于第三方比較工具比較的形式,可以有效快速的定位碼流間的差異,不僅僅能夠發(fā)現(xiàn)標(biāo)簽的差異,同時對編碼方法的差異也能夠發(fā)現(xiàn),大大提高了問題解決效率。
參考文獻(xiàn)
[1]侯煜等.基于ASN.1的MAP碼流的BER編解碼的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2011(18).
[2]李鵬.ASN.1解碼器的設(shè)計(jì)與實(shí)現(xiàn)及其在3G中的應(yīng)用[J].電子電信,2011(02).
作者簡介
郭曉鳳(1979-),女,遼寧省人。碩士研究生學(xué)歷?,F(xiàn)為南京機(jī)電職業(yè)技術(shù)學(xué)院講師。研究方向?yàn)殡娮有畔⒐こ碳夹g(shù)。
王克陽(1982-),男 ,江蘇省人。大學(xué)本科學(xué)歷。現(xiàn)為南京機(jī)電職業(yè)技術(shù)學(xué)院助教。研究方向?yàn)殡娮有畔ⅰ?/p>
作者單位
南京機(jī)電職業(yè)技術(shù)學(xué)院 江蘇省南京市 211135endprint