[發明專利]一種堆內存破壞檢測方法、裝置、電子設備及存儲介質在審
| 申請號: | 202110504336.1 | 申請日: | 2021-05-10 |
| 公開(公告)號: | CN113157513A | 公開(公告)日: | 2021-07-23 |
| 發明(設計)人: | 崔立飛 | 申請(專利權)人: | 北京字節跳動網絡技術有限公司 |
| 主分類號: | G06F11/22 | 分類號: | G06F11/22 |
| 代理公司: | 北京開陽星知識產權代理有限公司 11710 | 代理人: | 祝樂芳 |
| 地址: | 100041 北京市石景山區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 內存 破壞 檢測 方法 裝置 電子設備 存儲 介質 | ||
1.一種堆內存破壞檢測方法,其特征在于,所述方法包括:
基于第一堆內存破壞接口攜帶的發生堆內存破壞的函數信息,確定堆內存破壞類型;
基于所述堆內存破壞類型,確定發生堆內存破壞的第一內存塊,并獲取所述第一內存塊的相關信息、以及與所述第一內存塊相鄰的第二內存塊的相關信息;
輸出所述第一內存塊的相關信息和所述第二內存塊的相關信息。
2.根據權利要求1所述的方法,其特征在于,所述堆內存破壞類型包括第一類型和第二類型;
所述第一類型包括存儲容量小于256字節的內存塊,所述第二類型包括存儲容量大于或等于256字節的內存塊。
3.根據權利要求2所述的方法,其特征在于,所述基于堆內存破壞類型,確定發生堆內存破壞的第一內存塊包括:
基于所述堆內存破壞類型為第一類型,以雙向鏈表管理邏輯排查內存,得到發生堆內存破壞的第一內存塊;
基于所述堆內存破壞類型為第二類型,以樹管理邏輯和雙向鏈表管理邏輯排查內存,得到發生堆內存破壞的第一內存塊。
4.根據權利要求3所述的方法,其特征在于,所述以雙向鏈表管理邏輯排查內存之前,所述方法還包括:
解析預先加載的標準庫,獲取用于記錄堆內存的管理數據的全局變量地址;
基于所述全局變量地址,確定全局變量中用于記錄雙向鏈表的數組;
遍歷所述數組,確定至少一個雙向鏈表的入口;
相應地,所述以雙向鏈表管理邏輯排查內存包括:
基于所述至少一個雙向鏈表的入口,以所述雙向鏈表管理邏輯排查內存。
5.根據權利要求3所述的方法,其特征在于,所述以樹管理邏輯和雙向鏈表管理邏輯排查內存包括:
對樹中各節點以樹管理邏輯進行排查;
在以樹管理邏輯進行排查后,對所述樹中以雙向鏈表管理的節點以雙向鏈表管理邏輯進行排查。
6.根據權利要求1所述的方法,其特征在于,所述第二內存塊的相關信息包括以下至少一種:所述第二內存塊本身的信息、與所述第二內存塊相鄰的內存塊本身的信息和所述第二內存塊上存儲的應用數據。
7.根據權利要求1所述的方法,其特征在于,所述確定堆內存破壞類型前,所述方法還包括:
監控第一堆內存破壞接口;
在監控到調用所述第一堆內存破壞接口后,調用第二堆內存破壞接口;
在調用所述第二堆內存破壞接口后,執行所述確定堆內存破壞類型;
所述確定堆內存破壞信息后,所述方法還包括:
返回所述第一堆內存破壞接口對應的函數,以執行所述第一堆內存破壞接口對應的函數。
8.一種堆內存破壞檢測裝置,其特征在于,所述裝置包括:
確定單元,用于基于第一堆內存破壞接口攜帶的發生堆內存破壞的函數信息,確定堆內存破壞類型;
獲取單元,用于基于堆內存破壞類型,確定發生堆內存破壞的第一內存塊,并獲取與所述第一內存塊相鄰的第二內存塊的相關信息以及所述第一內存塊的相關信息;
輸出單元,用于輸出所述第一內存塊的相關信息和所述第二內存塊的相關信息。
9.一種電子設備,其特征在于,包括:處理器和存儲器;
所述處理器通過調用所述存儲器存儲的程序或指令,用于執行如權利要求1至7任一項所述方法的步驟。
10.一種非暫態計算機可讀存儲介質,其特征在于,所述非暫態計算機可讀存儲介質存儲程序或指令,所述程序或指令使計算機執行如權利要求1至7任一項所述方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京字節跳動網絡技術有限公司,未經北京字節跳動網絡技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110504336.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種無邊框裝飾畫成型工藝
- 下一篇:一種用于汽車變速器的倒擋鎖止裝置





