[發明專利]一種JAVA智能卡訪問越界的檢測方法有效
| 申請號: | 201611228626.3 | 申請日: | 2016-12-27 |
| 公開(公告)號: | CN106778238B | 公開(公告)日: | 2020-02-21 |
| 發明(設計)人: | 洪佳欣;胡建國;丁顏玉;凌森 | 申請(專利權)人: | 廣州智慧城市發展研究院;中山大學 |
| 主分類號: | G06F21/52 | 分類號: | G06F21/52;G06F21/57 |
| 代理公司: | 佛山幫專知識產權代理事務所(普通合伙) 44387 | 代理人: | 胡麗琴 |
| 地址: | 510800 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 java 智能卡 訪問 越界 檢測 方法 | ||
1.一種JAVA智能卡訪問越界的檢測方法,其特征在于,其包括如下步驟:
(S01)在將CAP文件安裝到JAVA智能卡時,對CAP文件進行處理;所述CAP文件包括多個組件,包括常量池組件、類組件和方法組件;其中,對CAP文件進行處理包括
在載入前,在CAP文件的每個組件后加上結束標識符;
在安裝過程中,每次載入CAP文件的其中一個組件后,由JAVA智能卡上的安裝程序執行在該組件后加上結束標識符;
(S02)在應用執行過程中,JAVA智能卡內的虛擬機解釋器在執行CAP文件中的指令時,對CAP文件的類組件進行檢查;
具體的,步驟(S02)包括以下步驟:
(S21)根據指令操作數定位到常量池數組,其中,指令操作數為鏈接到常量池組件的token值;
(S22)在常量池數組中找到對應的項,獲得被調用方法所在的類的引用和方法token,進而定位到類組件中確定的類以及方法表中的對應項;
(S23)在類組件中,每個類的信息包括表示方法表數組大小的public_method_table_count以及表示方法表偏移基數的public_method_table_base,根據public_method_table_count和public_method_table_base兩個數值,定位到方法表數組的末尾;
(S24)通過public_method_table_base+public_method_table_count*2+1直接訪問到該方法表數組的尾部,緊接著判斷尾部的值,若訪問到類組件的結束標識符,表示類組件結束,后面是方法組件,則可以正確地獲取到方法表中的偏移信息,此時結束檢查;若訪問到的不是類組件的結束標識符,則直接進入步驟(S25)第二階段的檢查;
(S25)判斷類組件中可能存在的其他數組,通過package_virtuaI_method_table、implemented_interface_info以及remote_interface_info的數組大小來定位到該類組件的末尾,判斷是否能訪問到類組件的結束標識符,訪問到結束標識符表示該方法表的元素數是正確的,否則說明該類組件的大小存在問題,則拋出異常。
2.如權利要求1所述的JAVA智能卡訪問越界的檢測方法,其特征在于,步驟(S25)包括如下步驟:
(251)判斷package_method_table_count來確定類組件中是否存在其他數組,若有,則定位到該數組的末尾;
(252)判斷interface_count,對接口數組進行判斷和定位;
(253)通過類組件bitfield中的ACC_ROMOTE判斷類組件bitfield是否有遠程接口,若有,定位至遠程接口的末尾,該遠程接口的類型是remote_interface_info;
(254)定位到類組件末尾,判斷是否能訪問到類組件的結束標識符,訪問到結束標識符表示該方法表的元素數是正確的,結束檢查;否則說明該類組件的大小存在問題,則拋出異常,結束檢查。
3.如權利要求2所述的JAVA智能卡訪問越界的檢測方法,其特征在于,結束標識符為固定標識符或區分標識符。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州智慧城市發展研究院;中山大學,未經廣州智慧城市發展研究院;中山大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611228626.3/1.html,轉載請聲明來源鉆瓜專利網。





