新四季網

一種JAVA卡字節碼引用訪問測試方法與流程

2023-06-04 18:45:46 2


本發明涉及智慧卡技術領域,尤其涉及一種JAVA卡字節碼引用訪問測試方法。



背景技術:

Java卡技術因其開放性使得java卡在金融卡、電信卡的市場上被廣泛使用。但是其開放性帶來的安全問題,也逐漸被人關注。一些後下載應用會構造虛假引用來非法讀取卡上存儲內容,對這一安全威脅的防範能力成為java卡平臺的關鍵質量指標之一。

由於java卡應用通過字節碼在java卡平臺上執行相應的操作,因此需要測試字節碼訪問引用的功能是否正確。對於不存在或受限的引用,應不予訪問並拋出異常。

目前對字節碼的引用訪問測試僅限於applet能構造出來的對象引用,比如測試應用內的全局變量和局部變量,共享接口傳遞的其它上下文中的數組引用。常規Java Card Applet無法構造虛假引用,也就無法測試字節碼訪問虛假引用的情況。



技術實現要素:

針對上述技術缺陷,本發明提出一種JAVA卡字節碼引用訪問測試方法。

為了解決上述技術問題,本發明的技術方案如下:

一種JAVA卡字節碼引用訪問測試方法,包括如下步驟:

1)構建java語言編寫的測試用源程序;

2)在所述java源程序的基礎上,添加一個帶有short類型入參的測試方法,通過編譯、轉換得到CAP文件;

3)在所述CAP文件中的測試方法中,找到待測試字節碼的位置,然後向前,定位到將其訪問的引用壓棧的字節碼;

4)將所述壓棧字節碼替換為「XX」;所述「XX」為將測試方法short類型參數值壓棧的字節碼。

進一步的,所述的測試用源程序,其特徵在於,創建並初始化一個對象或數組類型的全局變量,用於一次性建立一個引用,代替在測試方法中建立數組。避免在測試過程中,反覆調用測試方法,反覆建立數組,消耗E方空間,影響測試流程。

進一步的,在所述java源程序的基礎上,添加的一個帶有short類型入參的測試方法,該測試方法包括且僅包括以下內容:

帶有一個short類型的參數。。

創建一個對象或數組類型的局部變量,將其值初始化為所述的一個對象或數組類型的全局變量。

編寫一個語句,該語句調用待測試字節碼,並使其訪問所述的一個對象或數組類型的局部變量。

進一步的,所述的「XX」,其特徵在於,是將測試方法short類型參數值壓棧的字節碼,替換前的字節碼作用是將一個引用壓入到棧中,該引用指向的對象是實際存在的。替換後的字節碼作用是將一個short數值壓入到棧中,待測試字節碼從棧中取得這個數據,仍將它作為引用來進行訪問。因此替換字節碼動作實現了構造虛假引用的目的。

進一步的,所述的一個對象或數組類型的全局變量,其特徵在於,其類型與待測試字節碼要訪問的對象類型一致,即如果字節碼要訪問byte類型數組,則全局變量定義為一個byte類型數組,如果字節碼要訪問一個對象,則全局變量定義為同一個類的對象。

進一步的,所述的帶有一個short類型的參數,其特徵在於,該參數值會從卡外,通過APDU命令傳入到所述CAP文件在卡上安裝的測試應用,通過測試應用傳入到所述測試方法,通過測試方法傳入到棧中字節碼要讀取引用的位置。測試人員在卡外設置該short類型參數的值,決定測試字節碼要訪問的引種值。從而達到測試字節碼引用訪問功能的目的。

進一步的,所述的一個對象或數組類型的局部變量,其特徵在於,其類型與所述一個對象或數組類型的全局變量的類型一致。

進一步的,所述的一個對象或數組類型的局部變量,其特徵在於,使用局部變量作為字節碼訪問的初始引用,可以簡化測試流程,並使得測試流程可控,如果使用全局變量作為字節碼訪問的初始引用,則將全局變量引用壓棧的字節碼可能在cap下載時被修改操作數,使得下載到卡上的應用不能做期望的操作,達不到測試目的。

本發明的有益效果在於:本發明在字節碼層面對JavaCard CAP文件進行修改,生成的特殊Java Card Applet可用於構造虛假引用,並將其提交給字節碼進行測試,解決了常規Java Card Applet無法構造虛假引用,也就無法測試字節碼訪問虛假引用的情況的問題。

附圖說明

圖1是用於baload字節碼測試的java源程序基本結構圖;

圖2是引用壓棧字節碼在cap文件中的定位;

圖3是用於baload字節碼測試的流程;

具體實施方式

下面將結合附圖和具體實施例對本發明做進一步的說明。

圖1指出了一個以baload為測試對象的基礎的java源程序baload.java的基本結構,baload是一個繼承於Applet的JavaCard小應用程式子類。全局變量baa為byte數組,其類型與baload要訪問的引用類型一致。方法process負責處理APDU命令,當收到的命令類型為0x00時,調用方法M1(ad),ad為命令的兩個字節數據域中的值,process同時捕獲異常,期望平臺拋出安全異常。方法M1(ad)執行字節碼訪問引用ad的測試,其中局部變量ba為byte數組,其類型與全局變量baa一致,並被初始化為baa。該程序經過編譯、轉換後生成一個名為baload.cap的文件。

圖2示意了baload.java的方法M1代碼在cap文件中的形式。一個Java Card CAP文件是一個java源程序經過編譯、轉換而成的二進位流文件,內容為java源程序中java語句對應的JCVM字節碼。首先找到baload,在P:0005,然後向前,找到將baload要讀取的引用壓棧的字節碼,為aload_2,在P:0003。將aload_2修改為「1D」,「1D」在java卡指令集中對應「sload_1」,將參數ad的值壓入棧中,代替了ba的引用。

圖3示意了利用baload.cap對baload進行測試的流程。首先下載baload.cap到卡上,安裝應用創建應用實例,初始化一個short變量SV為0x0000。然後循環的選擇測試應用並發送測試命令,測試命令攜帶SV為數據域,每循環一次SV加1,直到0xFFFF終止循環。測試命令發送完畢後,如果值為SV的引用允許baload在當前上下文中訪問,則期望測試命令返回0x9000;否則期望測試應用能捕獲到安全異常,或者平臺關閉與卡外會話。如果不是以上的情況,則退出測試並報告測試失敗。

顯然,本領域的技術人員可以對本發明進行各種改動和變形而不脫離本發明的精神和範圍。這樣,倘若本發明的這些修改和變形屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀