[發(fā)明專利]一種函數(shù)調(diào)用的方法、裝置及終端有效
| 申請(qǐng)?zhí)枺?/td> | 201810575335.4 | 申請(qǐng)日: | 2018-06-06 |
| 公開(kāi)(公告)號(hào): | CN108920220B | 公開(kāi)(公告)日: | 2021-11-30 |
| 發(fā)明(設(shè)計(jì))人: | 易新 | 申請(qǐng)(專利權(quán))人: | 北京奇虎科技有限公司 |
| 主分類(lèi)號(hào): | G06F9/448 | 分類(lèi)號(hào): | G06F9/448;G06F9/455 |
| 代理公司: | 北京律誠(chéng)同業(yè)知識(shí)產(chǎn)權(quán)代理有限公司 11006 | 代理人: | 王玉雙 |
| 地址: | 100088 北京市西城區(qū)新*** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 函數(shù) 調(diào)用 方法 裝置 終端 | ||
本發(fā)明公開(kāi)了提供一種函數(shù)調(diào)用的方法、裝置及終端,所述方法包括:獲取校驗(yàn)函數(shù)的名稱,所述校驗(yàn)函數(shù)用于校驗(yàn)系統(tǒng)虛擬機(jī)中待調(diào)用函數(shù)對(duì)應(yīng)的結(jié)構(gòu)體的訪問(wèn)標(biāo)志位,所述待調(diào)用函數(shù)為所述系統(tǒng)本身的應(yīng)用程序接口API函數(shù);基于所述校驗(yàn)函數(shù)的名稱確定所述校驗(yàn)函數(shù)的實(shí)際地址;基于所述校驗(yàn)函數(shù)的實(shí)際地址,利用內(nèi)聯(lián)掛鉤函數(shù)對(duì)所述校驗(yàn)函數(shù)進(jìn)行修改,使得所述校驗(yàn)函數(shù)對(duì)所述訪問(wèn)標(biāo)志位進(jìn)行校驗(yàn)后,能夠允許應(yīng)用程序訪問(wèn)并調(diào)用所述待調(diào)用函數(shù);如此,利用內(nèi)聯(lián)掛鉤函數(shù)對(duì)所述校驗(yàn)函數(shù)進(jìn)行修改后,當(dāng)應(yīng)用程序訪問(wèn)并調(diào)用系統(tǒng)API函數(shù)時(shí),使得校驗(yàn)函數(shù)對(duì)訪問(wèn)標(biāo)志位進(jìn)行校驗(yàn)后,能夠允許應(yīng)用程序調(diào)用相關(guān)的API函數(shù),確保了應(yīng)用程序的功能正常。
技術(shù)領(lǐng)域
本發(fā)明屬于應(yīng)用開(kāi)發(fā)技術(shù)領(lǐng)域,尤其涉及一種函數(shù)調(diào)用的方法、裝置及終端。
背景技術(shù)
隨著科學(xué)技術(shù)的不斷發(fā)展,電子技術(shù)也得到了飛速的發(fā)展,終端的操作系統(tǒng)也在不斷發(fā)展、改進(jìn)。
以安卓操作系統(tǒng)android p為例,為了提高操作系統(tǒng)的穩(wěn)定性,引入了新的機(jī)制,即應(yīng)用程序引用非SDK接口時(shí)受限,非SDK接口對(duì)應(yīng)的應(yīng)用程序接口(API,ApplicationProgramming Interface)函數(shù)是系統(tǒng)的私有API,一般不允許或者禁止開(kāi)發(fā)者調(diào)用,進(jìn)而影響了絕大部分的應(yīng)用程序的功能。
發(fā)明內(nèi)容
鑒于上述問(wèn)題,本發(fā)明提出了一種函數(shù)調(diào)用的方法、裝置及系統(tǒng),用于解決現(xiàn)有技術(shù)中在android p操作系統(tǒng)中應(yīng)用程序在調(diào)用非SDK接口時(shí)受限,導(dǎo)致應(yīng)用程序功能受到影響的技術(shù)問(wèn)題。
本發(fā)明的第一方面,提供了一種函數(shù)調(diào)用的方法,所述方法包括:
獲取校驗(yàn)函數(shù)的名稱,所述校驗(yàn)函數(shù)用于校驗(yàn)系統(tǒng)虛擬機(jī)中待調(diào)用函數(shù)對(duì)應(yīng)的結(jié)構(gòu)體的訪問(wèn)標(biāo)志位,所述待調(diào)用函數(shù)為所述系統(tǒng)本身的應(yīng)用程序接口API函數(shù);
基于所述校驗(yàn)函數(shù)的名稱確定所述校驗(yàn)函數(shù)的實(shí)際地址;
基于所述校驗(yàn)函數(shù)的實(shí)際地址,利用內(nèi)聯(lián)掛鉤函數(shù)對(duì)所述校驗(yàn)函數(shù)進(jìn)行修改,使得所述校驗(yàn)函數(shù)對(duì)所述訪問(wèn)標(biāo)志位進(jìn)行校驗(yàn)后,能夠允許應(yīng)用程序訪問(wèn)并調(diào)用所述待調(diào)用函數(shù)。
可選的,所述基于所述校驗(yàn)函數(shù)的名稱確定所述校驗(yàn)函數(shù)的實(shí)際地址,包括:
基于所述校驗(yàn)函數(shù)的名稱,在虛擬機(jī)本地庫(kù)libart.so中查找所述校驗(yàn)函數(shù)的符號(hào)名稱;
根據(jù)所述符號(hào)名稱確定所述校驗(yàn)函數(shù)的虛擬地址;
獲取所述虛擬機(jī)本地庫(kù)libart.so的基址;
根據(jù)所述校驗(yàn)函數(shù)的虛擬地址及所述虛擬機(jī)本地庫(kù)libart.so的基址確定所述校驗(yàn)函數(shù)的實(shí)際地址。
可選的,所述根據(jù)所述符號(hào)名稱確定所述校驗(yàn)函數(shù)的虛擬地址,包括:
對(duì)所述虛擬機(jī)本地庫(kù)libart.so中校驗(yàn)函數(shù)的文件格式進(jìn)行解析,獲取所述虛擬機(jī)本地庫(kù)libart.so的符號(hào)表;
在所述符號(hào)表中,根據(jù)所述符號(hào)名稱查找所述校驗(yàn)函數(shù)的虛擬地址。
可選的,所述基于所述校驗(yàn)函數(shù)的實(shí)際地址,利用內(nèi)聯(lián)掛鉤函數(shù)對(duì)所述校驗(yàn)函數(shù)進(jìn)行修改,包括:
基于所述校驗(yàn)函數(shù)的地址,利用所述內(nèi)聯(lián)掛鉤函數(shù)將所述校驗(yàn)函數(shù)的調(diào)用函數(shù)Method替換成自定義調(diào)用函數(shù);以及,
利用所述內(nèi)聯(lián)掛鉤函數(shù)將所述校驗(yàn)函數(shù)的反射函數(shù)Field替換成自定義反射函數(shù),當(dāng)執(zhí)行所述校驗(yàn)函數(shù)時(shí),使得所述校驗(yàn)函數(shù)的校驗(yàn)返回值為預(yù)設(shè)的返回值。
可選的,所述利用所述內(nèi)聯(lián)掛鉤函數(shù)將所述校驗(yàn)函數(shù)的調(diào)用函數(shù)Method替換成自定義調(diào)用函數(shù),包括:
確定所述調(diào)用函數(shù)Method在所述校驗(yàn)函數(shù)中的第一起始地址;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京奇虎科技有限公司,未經(jīng)北京奇虎科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810575335.4/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- IDL調(diào)用裝置及調(diào)用方法
- 調(diào)用方法及調(diào)用系統(tǒng)
- 一種服務(wù)調(diào)用方法及裝置
- 服務(wù)調(diào)用方法、服務(wù)調(diào)用裝置及服務(wù)調(diào)用系統(tǒng)
- 組件調(diào)用方法、裝置及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 身份驗(yàn)證方法及裝置
- 系統(tǒng)調(diào)用處理方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種數(shù)據(jù)調(diào)用方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 一種微服務(wù)請(qǐng)求重試的方法及終端
- 業(yè)務(wù)數(shù)據(jù)的處理方法、裝置及系統(tǒng)
- 一種數(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ì)





