[發(fā)明專利]一種加載系統(tǒng)動(dòng)態(tài)庫(kù)的方法和裝置有效
| 申請(qǐng)?zhí)枺?/td> | 201810344656.3 | 申請(qǐng)日: | 2018-04-17 |
| 公開(公告)號(hào): | CN108595218B | 公開(公告)日: | 2021-08-27 |
| 發(fā)明(設(shè)計(jì))人: | 吳昕 | 申請(qǐng)(專利權(quán))人: | 網(wǎng)宿科技股份有限公司 |
| 主分類號(hào): | G06F9/445 | 分類號(hào): | G06F9/445 |
| 代理公司: | 北京華智則銘知識(shí)產(chǎn)權(quán)代理有限公司 11573 | 代理人: | 劉榮鑫 |
| 地址: | 200030 上海市徐匯區(qū)*** | 國(guó)省代碼: | 上海;31 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 加載 系統(tǒng) 動(dòng)態(tài) 方法 裝置 | ||
1.一種加載系統(tǒng)動(dòng)態(tài)庫(kù)的方法,其特征在于,所述方法包括:
目標(biāo)進(jìn)程劫持dlopen函數(shù),確定內(nèi)存中dlopen_ext函數(shù)的第一邏輯地址,并確定所述dlopen函數(shù)的預(yù)定調(diào)用者的第二邏輯地址;
目標(biāo)進(jìn)程將所述第二邏輯地址作為調(diào)用參數(shù),根據(jù)所述第一邏輯地址調(diào)用所述dlopen_ext函數(shù);
所述目標(biāo)進(jìn)程通過所述dlopen_ext函數(shù)加載所述目標(biāo)系統(tǒng)動(dòng)態(tài)庫(kù);
所述目標(biāo)進(jìn)程劫持dlopen函數(shù)包括:目標(biāo)進(jìn)程掃描其對(duì)應(yīng)的資源映射文件,使用new_dlopen函數(shù)替換所述資源映射文件中所有動(dòng)態(tài)庫(kù)的重定位表所鏈接的dlopen函數(shù),其中,所述new_dlopen函數(shù)預(yù)先寫入所述目標(biāo)進(jìn)程所屬應(yīng)用程序提供的動(dòng)態(tài)庫(kù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定內(nèi)存中dlopen_ext函數(shù)的第一邏輯地址,包括:
目標(biāo)進(jìn)程根據(jù)其對(duì)應(yīng)的資源映射文件,確定加載器文件的加載基地址;
所述目標(biāo)進(jìn)程解析所述加載器文件,獲取dlopen_ext函數(shù)的地址偏移量;
所述目標(biāo)進(jìn)程根據(jù)所述加載基地址和所述地址偏移量,確定內(nèi)存中所述dlopen_ext函數(shù)的第一邏輯地址。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述目標(biāo)進(jìn)程解析所述加載器文件,獲取dlopen_ext函數(shù)的地址偏移量,包括:
目標(biāo)進(jìn)程根據(jù)加載器文件的ELF頭部數(shù)據(jù)獲取節(jié)頭表;
所述目標(biāo)進(jìn)程根據(jù)所述節(jié)頭表查找并讀取字符串表和靜態(tài)符號(hào)表;
所述目標(biāo)進(jìn)程在所述字符串表中查找dlopen_ext對(duì)應(yīng)的目標(biāo)符號(hào)索引;
所述目標(biāo)進(jìn)程將所述靜態(tài)符號(hào)表中所述目標(biāo)符號(hào)索引對(duì)應(yīng)的符號(hào)地址作為dlopen_ext函數(shù)的地址偏移量。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定所述dlopen函數(shù)的預(yù)定調(diào)用者的第二邏輯地址,包括:
目標(biāo)進(jìn)程掃描其對(duì)應(yīng)的資源映射文件,在系統(tǒng)動(dòng)態(tài)庫(kù)目錄下隨機(jī)選擇一個(gè)動(dòng)態(tài)庫(kù)的內(nèi)存加載地址作為所述第二邏輯地址。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述確定所述dlopen函數(shù)的預(yù)定調(diào)用者的第二邏輯地址,包括:
當(dāng)需要調(diào)用dlopen函數(shù)時(shí),目標(biāo)進(jìn)程通過_builtin_return_address編譯器內(nèi)建指令讀取dlopen函數(shù)的實(shí)際調(diào)用者地址作為所述第二邏輯地址。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述目標(biāo)進(jìn)程將所述第二邏輯地址作為調(diào)用參數(shù),根據(jù)所述第一邏輯地址調(diào)用dlopen_ext函數(shù),包括:
目標(biāo)進(jìn)程獲取所述dlopen函數(shù)的初始調(diào)用參數(shù),將所述初始調(diào)用參數(shù)和所述第二邏輯地址作為調(diào)用參數(shù);
所述目標(biāo)進(jìn)程訪問所述第一邏輯地址,通過所述調(diào)用參數(shù)調(diào)用dlopen_ext函數(shù)。
7.一種加載系統(tǒng)動(dòng)態(tài)庫(kù)的裝置,其特征在于,所述裝置包括:
確定模塊,用于劫持dlopen函數(shù),確定內(nèi)存中dlopen_ext函數(shù)的第一邏輯地址,并確定所述dlopen函數(shù)的預(yù)定調(diào)用者的第二邏輯地址;目標(biāo)進(jìn)程劫持dlopen函數(shù)的處理具體包括:掃描其對(duì)應(yīng)的資源映射文件,使用new_dlopen函數(shù)替換資源映射文件中所有動(dòng)態(tài)庫(kù)的重定位表所鏈接的dlopen函數(shù),其中,所述new_dlopen函數(shù)預(yù)先寫入所述目標(biāo)進(jìn)程所屬應(yīng)用程序提供的動(dòng)態(tài)函數(shù)庫(kù);
調(diào)用模塊,用于將所述第二邏輯地址作為調(diào)用參數(shù),根據(jù)所述第一邏輯地址調(diào)用所述dlopen_ext函數(shù);
加載模塊,用于通過所述dlopen_ext函數(shù)加載目標(biāo)系統(tǒng)動(dòng)態(tài)庫(kù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述確定模塊,具體用于:
根據(jù)其對(duì)應(yīng)的資源映射文件,確定加載器文件的加載基地址;
解析所述加載器文件,獲取dlopen_ext函數(shù)的地址偏移量;
根據(jù)所述加載基地址和所述地址偏移量,確定內(nèi)存中所述dlopen_ext函數(shù)的第一邏輯地址。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于網(wǎng)宿科技股份有限公司,未經(jīng)網(wǎng)宿科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810344656.3/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 動(dòng)態(tài)矢量譯碼方法和動(dòng)態(tài)矢量譯碼裝置
- 動(dòng)態(tài)口令的顯示方法及動(dòng)態(tài)令牌
- 動(dòng)態(tài)庫(kù)管理方法和裝置
- 動(dòng)態(tài)令牌的身份認(rèn)證方法及裝置
- 令牌、動(dòng)態(tài)口令生成方法、動(dòng)態(tài)口令認(rèn)證方法及系統(tǒng)
- 一種動(dòng)態(tài)模糊控制系統(tǒng)
- 一種基于動(dòng)態(tài)信號(hào)的POS機(jī)和安全保護(hù)方法
- 圖像動(dòng)態(tài)展示的方法、裝置、系統(tǒng)及介質(zhì)
- 一種基于POS機(jī)聚合碼功能分離顯示動(dòng)態(tài)聚合碼的系統(tǒng)
- 基于動(dòng)態(tài)口令的身份認(rèn)證方法、裝置和動(dòng)態(tài)令牌
- 一種數(shù)據(jù)庫(kù)讀寫分離的方法和裝置
- 一種手機(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ì)





