郭曉鳳++王克陽
摘 要 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