[發(fā)明專利]一種代碼改動的檢測方法及裝置有效
| 申請?zhí)枺?/td> | 201310573480.6 | 申請日: | 2013-11-15 |
| 公開(公告)號: | CN103559449A | 公開(公告)日: | 2014-02-05 |
| 發(fā)明(設(shè)計(jì))人: | 周功程 | 申請(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 北京中博世達(dá)專利商標(biāo)代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 代碼 改動 檢測 方法 裝置 | ||
1.一種代碼改動的檢測方法,其特征在于,包括:
獲取修改后源代碼;
對修改后的源代碼進(jìn)行編譯,并在所述修改后的源代碼中添加預(yù)置調(diào)試信息,以獲得第一目標(biāo)文件,所述預(yù)置調(diào)試信息用于對編譯后的所述修改后的源代碼進(jìn)行分類;
重命名所述第一目標(biāo)文件,以獲得第一編譯信息;
調(diào)用預(yù)置的Dwarf程序讀取所述第一編譯信息以及預(yù)先生成的第二編譯信息,以獲取與所述第一編譯信息對應(yīng)的多個鏈表,以及與所述第二編譯信息對應(yīng)的多個鏈表,所述第二編譯信息為對添加有所述預(yù)置調(diào)試信息的未修改的源代碼編譯后生成的編譯信息;
對所述與所述第一編譯信息對應(yīng)的多個鏈表,以及與所述第二編譯信息對應(yīng)的多個鏈表分別進(jìn)行比較;
若存在不同,則確定與所述第二編譯信息對應(yīng)的多個鏈表不同的所述第一編譯信息對應(yīng)的鏈表。
2.根據(jù)權(quán)利要求1所述的代碼改動的檢測方法,其特征在于,所述調(diào)用預(yù)置的Dwarf程序讀取所述第一編譯信息以及預(yù)先生成的第二編譯信息,以獲取與所述第一編譯信息對應(yīng)的多個鏈表,以及與所述第二編譯信息對應(yīng)的多個鏈表,包括:
根據(jù)預(yù)置的Dwarf程序提取所述第一編譯信息內(nèi)的所述預(yù)置調(diào)試信息以及第二編譯信息內(nèi)的所述預(yù)置調(diào)試信息;
分別將所述第一編譯信息內(nèi)的所述預(yù)置調(diào)試信息以及第二編譯信息內(nèi)的所述預(yù)置調(diào)試信息內(nèi)的函數(shù)名稱、長度、參數(shù)、返回值、變量和內(nèi)容信息保存為一個鏈表;
分別將所述第一編譯信息內(nèi)的所述預(yù)置調(diào)試信息以及第二編譯信息內(nèi)的所述預(yù)置調(diào)試信息內(nèi)的數(shù)據(jù)結(jié)構(gòu)的名稱、類型、成員結(jié)構(gòu)信息保存為一個鏈表;
分別將所述第一編譯信息內(nèi)的所述預(yù)置調(diào)試信息以及第二編譯信息內(nèi)的所述預(yù)置調(diào)試信息內(nèi)的全局?jǐn)?shù)據(jù)、靜態(tài)數(shù)據(jù)的名稱、靜態(tài)數(shù)據(jù)的值、靜態(tài)數(shù)據(jù)的類型信息保存為一個鏈表。
3.根據(jù)權(quán)利要求1或2所述的代碼改動的檢測方法,其特征在于,在所述獲取修改后源代碼之前,所述方法還包括:
對未修改的源代碼進(jìn)行編譯,并在所述未修改的源代碼中添加預(yù)置調(diào)試信息,以獲得第二目標(biāo)文件,所述預(yù)置調(diào)試信息用于對編譯后的所述未修改的源代碼進(jìn)行分類;
重命名所述第二目標(biāo)文件,以獲得所述第二編譯信息。
4.根據(jù)權(quán)利要求1-3中任一項(xiàng)所述的代碼改動的檢測方法,其特征在于,在所述調(diào)用預(yù)置的Dwarf程序讀取所述第一編譯信息以及預(yù)先生成的第二編譯信息,以獲取與所述第一編譯信息對應(yīng)的多個鏈表,以及與所述第二編譯信息對應(yīng)的多個鏈表之后,所述方法還包括:
顯示與所述第一編譯信息對應(yīng)的多個鏈表,以及與所述第二編譯信息對應(yīng)的多個鏈表。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的代碼改動的檢測方法,其特征在于,在所述重命名所述第一目標(biāo)文件,以獲得第一編譯信息之后,所述方法還包括:
查找內(nèi)核系統(tǒng)中所有的靜態(tài)局部變量;
將所述靜態(tài)局部變量對應(yīng)的符號記錄為第一靜態(tài)局部變量符號;
建立第一查詢列表,所述第一查詢列表包括所述第一靜態(tài)局部變量符號、靜態(tài)局部變量名稱、函數(shù)名稱以及文件名的對應(yīng)關(guān)系。
6.根據(jù)權(quán)利要求5所述的代碼改動的檢測方法,其特征在于,在所述重命名所述第二目標(biāo)文件,以獲得第二編譯信息之后,所述方法還包括:
查找內(nèi)核系統(tǒng)中所有的靜態(tài)局部變量;
將所述靜態(tài)局部變量對應(yīng)的符號記錄為第二靜態(tài)局部變量符號;
建立第二查詢列表,所述第二查詢列表包括所述第二靜態(tài)局部變量符號、靜態(tài)局部變量名稱、函數(shù)名稱以及文件名的對應(yīng)關(guān)系;
根據(jù)所述第一查詢列表以及所述第二查詢列表確定在所述第一次編譯后的靜態(tài)局部變量在內(nèi)核中的地址,以使得內(nèi)核系統(tǒng)在加載補(bǔ)丁的過程中根據(jù)所述地址對內(nèi)核中的函數(shù)或變量進(jìn)行定位。
7.根據(jù)權(quán)利要求6所述的代碼改動的檢測方法,其特征在于,在所述若存在不同,則確定與所述第二編譯信息對應(yīng)的多個鏈表不同的所述第一編譯信息對應(yīng)的鏈表之后,還包括:
提取所述不同的第一編譯信息對應(yīng)的鏈表對應(yīng)的第一編譯信息內(nèi)的片段文件;
在提取出的所述不同的第一編譯信息對應(yīng)的鏈表對應(yīng)的第一編譯信息內(nèi)的片段文件內(nèi)寫入附加信息,所述附加信息用于指示加載熱補(bǔ)丁的指令信息以及地址信息以及所述第一查詢列表和第二查詢列表;
對所述寫入附加信息的第一編譯信息內(nèi)的片段文件進(jìn)行加密以及打包處理生成熱補(bǔ)丁包,以使得內(nèi)核系統(tǒng)完成對熱補(bǔ)丁包的加載。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310573480.6/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:渦流紡五彩紗線的加工工藝
- 下一篇:多股紗線直接加捻的倍捻機(jī)錠位
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程





