[發(fā)明專(zhuān)利]一種dex文件的存儲(chǔ)方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201611139089.5 | 申請(qǐng)日: | 2016-12-12 |
| 公開(kāi)(公告)號(hào): | CN106815301B | 公開(kāi)(公告)日: | 2020-10-30 |
| 發(fā)明(設(shè)計(jì))人: | 劉敏 | 申請(qǐng)(專(zhuān)利權(quán))人: | 北京奇虎科技有限公司 |
| 主分類(lèi)號(hào): | G06F21/62 | 分類(lèi)號(hào): | G06F21/62 |
| 代理公司: | 深圳市世紀(jì)恒程知識(shí)產(chǎn)權(quán)代理事務(wù)所 44287 | 代理人: | 胡海國(guó) |
| 地址: | 100088 北京市西城區(qū)新*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 dex 文件 存儲(chǔ) 方法 裝置 | ||
1.一種dex文件的存儲(chǔ)方法,其特征在于,所述方法包括:
解析待加載的dex文件,提取解析后的dex文件的非文件頭header中的第一指定數(shù)據(jù);
申請(qǐng)第一內(nèi)存和第二內(nèi)存,所述第一內(nèi)存用于存儲(chǔ)所述第一指定數(shù)據(jù),所述第二內(nèi)存用于存儲(chǔ)dex文件中除第一指定數(shù)據(jù)之外的其他數(shù)據(jù);所述第一內(nèi)存和第二內(nèi)存不連續(xù);
根據(jù)所述第一內(nèi)存的內(nèi)存地址信息,修改dex文件的文件頭header中所述第一指定數(shù)據(jù)的偏移地址,使其指向第一內(nèi)存;
其中,所述第一指定數(shù)據(jù)的種類(lèi)大于一種,所述第一內(nèi)存至少包括兩段不連續(xù)的內(nèi)存空間,不連續(xù)的第一內(nèi)存空間的段數(shù)不大于第一指定數(shù)據(jù)的種類(lèi)數(shù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,完成文件頭header中所述第一指定數(shù)據(jù)的偏移地址的修改后,還包括:
根據(jù)修改后的dex文件的文件頭header信息,完成解析后的dex文件的加載,將所述第一指定數(shù)據(jù)加載到第一內(nèi)存中,將所述其他 數(shù)據(jù)加載到第二內(nèi)存中。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述第一指定數(shù)據(jù)包括以下幾種數(shù)據(jù)中的至少一種:
字符串列表區(qū)段string_ids、數(shù)據(jù)類(lèi)型列表區(qū)段type_ids、方法原型列表區(qū)段proto_ids、類(lèi)成員列表區(qū)段field_ids、方法列表區(qū)段method_ids、類(lèi)列表區(qū)段class_defs、數(shù)據(jù)區(qū)區(qū)段data。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第一內(nèi)存為一段連續(xù)的內(nèi)存空間。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,完成解析后的dex文件的加載后,還包括:
刪除所述第二內(nèi)存中的dex文件的文件頭header中的第二指定數(shù)據(jù)。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述第二指定數(shù)據(jù)包括以下數(shù)據(jù)中的至少一種:
魔數(shù)字段magic、校驗(yàn)碼字段checksum、簽名字段signature、文件總長(zhǎng)度字段fileSize、文件頭長(zhǎng)度字段header_size、字節(jié)順序常量標(biāo)識(shí)字段endian_tag、map數(shù)據(jù)基地址字段map_off。
7.一種dex文件的存儲(chǔ)裝置,其特征在于,所述裝置包括:
指定數(shù)據(jù)提取模塊,用于解析待加載的dex文件,提取解析后的dex文件的非文件頭header中的第一指定數(shù)據(jù);
內(nèi)存申請(qǐng)模塊,用于申請(qǐng)第一內(nèi)存和第二內(nèi)存,所述第一內(nèi)存用于存儲(chǔ)所述第一指定數(shù)據(jù),所述第二內(nèi)存用于存儲(chǔ)dex文件中除第一指定數(shù)據(jù)之外的其他數(shù)據(jù);所述第一內(nèi)存和第二內(nèi)存不連續(xù);
文件頭修改模塊,用于根據(jù)所述第一內(nèi)存的內(nèi)存地址信息,修改dex文件的文件頭header中所述第一指定數(shù)據(jù)的偏移地址,使其指向第一內(nèi)存;
其中,所述內(nèi)存申請(qǐng)模塊包括:多內(nèi)存申請(qǐng)單元,用于在所述第一指定數(shù)據(jù)的種類(lèi)大于一種時(shí),申請(qǐng)至少兩段不連續(xù)的內(nèi)存空間,其中,不連續(xù)的第一內(nèi)存空間的段數(shù)不大于第一指定數(shù)據(jù)的種類(lèi)數(shù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,該裝置還包括:
Dex內(nèi)存加載模塊,用于在完成文件頭header中所述第一指定數(shù)據(jù)的偏移地址的修改后,根據(jù)修改后的dex文件的文件頭header信息,完成解析后的dex文件的加載,將所述第一指定數(shù)據(jù)加載到第一內(nèi)存中,將所述其他 數(shù)據(jù)加載到第二內(nèi)存中。
9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述第一指定數(shù)據(jù)包括以下幾種數(shù)據(jù)中的至少一種:
字符串列表區(qū)段string_ids、數(shù)據(jù)類(lèi)型列表區(qū)段type_ids、方法原型列表區(qū)段proto_ids、類(lèi)成員列表區(qū)段field_ids、方法列表區(qū)段method_ids、類(lèi)列表區(qū)段class_defs、數(shù)據(jù)區(qū)區(qū)段data。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第一內(nèi)存為一段連續(xù)的內(nèi)存空間。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于北京奇虎科技有限公司,未經(jīng)北京奇虎科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611139089.5/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過(guò)保護(hù)計(jì)算機(jī)的特定內(nèi)部部件
G06F21-04 .通過(guò)保護(hù)特定的外圍設(shè)備,如鍵盤(pán)或顯示器
G06F21-06 .通過(guò)感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過(guò)限制訪問(wèn)計(jì)算機(jī)系統(tǒng)或計(jì)算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過(guò)限制訪問(wèn)或處理程序或過(guò)程
- Android系統(tǒng)中保護(hù)dex文件不被反編譯的方法
- 一種基于Android可執(zhí)行文件重組的加固方法
- 一種在安卓art環(huán)境中動(dòng)態(tài)加載dex的方法及裝置
- 一種多dex文件分析方法及系統(tǒng)
- 一種dex文件的存儲(chǔ)方法和裝置
- 應(yīng)用程序脫殼方法及裝置
- 一種Android加固應(yīng)用程序通用自動(dòng)化脫殼方法和裝置
- 一種DEX的保護(hù)方法
- 應(yīng)用程序的dex優(yōu)化方法及終端
- 一種數(shù)據(jù)處理方法、裝置、存儲(chǔ)介質(zhì)及計(jì)算機(jī)設(shè)備
- 動(dòng)態(tài)存儲(chǔ)管理裝置及方法
- 一種存儲(chǔ)方法、服務(wù)器及存儲(chǔ)控制器
- 一種基于存儲(chǔ)系統(tǒng)的控制方法及裝置
- 一種信息的存儲(chǔ)控制方法
- 一種數(shù)據(jù)存儲(chǔ)方法及裝置
- 數(shù)據(jù)存儲(chǔ)方法、裝置、計(jì)算機(jī)設(shè)備以及存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)存儲(chǔ)控制方法及裝置
- 存儲(chǔ)設(shè)備、存儲(chǔ)系統(tǒng)及存儲(chǔ)方法
- 物料存儲(chǔ)方法及系統(tǒng)
- 基于雙芯智能電表的數(shù)據(jù)分類(lèi)存儲(chǔ)方法和裝置
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





