[發明專利]一種構造終端應用行為的運行時模型的方法有效
| 申請號: | 201910498727.X | 申請日: | 2019-06-10 |
| 公開(公告)號: | CN110347448B | 公開(公告)日: | 2021-02-12 |
| 發明(設計)人: | 蔡華謙;黃罡;張穎;劉譞哲 | 申請(專利權)人: | 北京大學 |
| 主分類號: | G06F9/448 | 分類號: | G06F9/448 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 莎日娜 |
| 地址: | 100871*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 構造 終端 應用 行為 運行 模型 方法 | ||
1.一種構造終端應用行為的運行時模型的方法,其特征在于,所述運行時模型包括運行時棧模型和運行時堆模型,所述方法包括構造所述終端應用行為的運行時棧模型的步驟和構造所述終端應用行為的運行時堆模型的步驟;
所述構造所述終端應用行為的運行時棧模型的步驟包括:
在所述終端應用運行時,獲取所述終端應用的內存中真正執行的代碼,并對所述真正執行的代碼進行抽象,生成控制流圖;
針對所述控制流圖,將需要監測的控制流圖輸入至預設的行為解釋器;
利用所述行為解釋器對所述需要監測的控制流圖進行解釋執行,生成所述終端應用運行時的棧活動;
在所述終端應用運行時,生成所述棧活動的控制流間的依賴關系,得到所述終端應用行為的運行時棧模型;
所述構造所述終端應用行為的運行時堆模型的步驟包括:
在所述終端應用運行時,生成堆區的初始狀態;
生成堆操作活動,得到所述終端應用行為的運行時堆模型;
其中,所述依賴關系包括同步依賴和通信依賴;
在生成所述同步依賴關系時,對于一個方法的結束依賴另一個方法的結束的情況,利用時間戳由后往前尋找其他線程中可匹配的活動,如果找到,則對應于一個同步依賴關系;
對于一個活動的開始依賴另一個活動的結束的情況,先對當前線程進行檢查,如果該活動為當前線程中的第一個執行的活動,則該活動是依賴另一個線程結束活動的,否則該活動僅是正常的方法調用,并不依賴另一個線程的活動。
2.如權利要求1所述的方法,其特征在于,所述方法包括類篩選器和活動類型篩選器;其中,所述類篩選器基于包和類名正則匹配的粗粒度篩選,用于去除開發人員不關心的程序活動;所述活動類型篩選器基于活動類型的細粒度篩選,用于去除與開發者不關心的活動類型。
3.如權利要求2所述的方法,其特征在于,所述棧活動的活動類型包括方法開始與方法結束,字段讀,數組讀和同步指令;
利用所述行為解釋器對所述需要監測的控制流圖進行解釋執行,生成所述終端應用運行時的棧活動的步驟包括:
利用對所述終端應用的應用行為具有監測功能的行為解釋器對所述需要監測的控制流圖進行解釋執行,獲得所述終端應用運行時的活動;
根據所關注的類,利用所述類篩選器對所述終端應用運行時的活動進行粗粒度篩選,生成由所述類引起的棧活動;
針對所述棧活動的活動類型,利用所述活動類型篩選器對所述棧活動進行細粒度篩選。
4.如權利要求1所述的方法,其特征在于,所述構造所述終端應用行為的運行時堆模型的步驟包括:
所述終端應用運行時的活動包括實例化活動、修改活動和回收活動。
5.如權利要求2所述的方法,其特征在于,所述堆操作活動的活動類型包括對象實例化,數組實例化,對象字段寫,數組元素寫,清除活動和壓縮活動;
所述生成堆操作活動的步驟包括:
根據所關注的類,利用所述類篩選器對所述終端應用運行時的活動進行粗粒度篩選,生成由所述類引起的堆操作活動;
針對所述堆操作活動的活動類型,利用所述活動類型篩選器對所述堆操作活動進行細粒度篩選。
6.如權利要求1所述的方法,其特征在于,在生成所述棧活動的控制流間的依賴關系時,對所有與活動間通信依賴相關的類進行總結,并將所述類的相關方法與線程依賴相關的方法一起作為生成通信依賴的知識庫。
7.如權利要求1所述的方法,其特征在于,在所述運行時模型生成時,將所述運行時模型中的活動序列存放于可配置大小的緩沖區中,當活動數量超過預設時,則將所述緩沖區的活動進行序列化,并持久化到本地存儲中。
8.如權利要求1所述的方法,其特征在于,所述運行時堆模型以巴科斯范式的形式表示。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京大學,未經北京大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910498727.X/1.html,轉載請聲明來源鉆瓜專利網。





