[發明專利]一種函數調用的方法、裝置及終端在審
| 申請號: | 201810575042.6 | 申請日: | 2018-06-06 |
| 公開(公告)號: | CN108897533A | 公開(公告)日: | 2018-11-27 |
| 發明(設計)人: | 易新;王浩 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F8/30 | 分類號: | G06F8/30 |
| 代理公司: | 北京華沛德權律師事務所 11302 | 代理人: | 房德權 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 目標應用程序 結構體 運行時 成員變量 調用系統 函數調用 應用程序接口API 終端 獲取系統 訪問 校驗 應用層 預設 調用 | ||
本發明實施例提供一種函數調用的方法、裝置及終端,方法包括:獲取系統應用層中設置的運行時結構體標記;校驗所述運行時結構體標記是否存在標記值;若存在,則調用修改函數將運行時結構體中目標成員變量的屬性值修改為預設的值,以使得用于限制目標應用程序訪問非SDK接口的機制處于關閉狀態,從而允許所述目標應用程序訪問所述非SDK接口,以調用系統的私有應用程序接口API函數;如此,對目標成員變量的屬性值進行修改后,可以關閉用于限制目標應用程序訪問非SDK接口的機制,允許目標應用程序調用系統的私有API函數。
技術領域
本發明屬于應用開發技術領域,尤其涉及一種函數調用的方法、裝置及終端。
背景技術
隨著科學技術的不斷發展,電子技術也得到了飛速的發展,終端的操作系統也在不斷發展、改進。
以安卓操作系統android p為例,為了提高操作系統的穩定性,引入了新的機制,即應用程序引用非SDK接口時受限,非SDK接口對應的應用程序接口(API,ApplicationProgramming Interface)函數是系統的私有API,一般不允許或者禁止開發者調用,進而影響了絕大部分的應用程序的功能。
發明內容
鑒于上述問題,本發明提出了一種函數調用的方法、裝置及系統,用于解決現有技術中在android p操作系統中應用程序在調用非SDK接口時受限,不能調用系統的私有API函數,導致應用程序功能受到影響的技術問題。
第一方面,本發明實施例提供一種函數調用的方法,所述方法包括:
獲取系統應用層中設置的運行時結構體標記;
校驗所述運行時結構體標記是否存在標記值;
若存在,則調用修改函數將運行時結構體中目標成員變量的屬性值修改為預設的值,以使得用于限制目標應用程序訪問非SDK接口的機制處于關閉狀態,從而允許所述目標應用程序訪問所述非SDK接口,以調用系統的私有應用程序接口API函數;
其中,所述目標成員變量的屬性值用于控制所述系統是否開啟限制所述目標應用程序訪問非SDK接口的機制。
可選的,在所述獲取系統的應用層中設置的運行時結構體標記之前,還包括:
在系統的應用層中設置所述運行時結構體標記;
其中,所述在系統的應用層中設置所述運行時結構體標記,包括:為所述目標應用程序創建一個新進程;檢測所述目標應用程序是否為非系統應用程序;若所述目標應用程序為非系統應用程序,則在為所述新進程布局參數環境時,在所述系統的應用層中設置所述運行時結構體標記。
可選的,所述校驗所述運行時結構體標記是否存在標記值,包括:
將所述運行時結構體標記傳送至所述系統的本地庫層;
在所述本地庫層中校驗所述運行時結構體標記是否存在標記值。
可選的,所述調用修改函數將目標成員變量的屬性值修改為預設的值,包括:
確定所述運行時結構體中目標成員變量的實際地址;
基于所述實際地址,調用修改函數將所述目標成員變量的屬性值修改為預設的值。
可選的,所述獲取所述運行時結構體中目標成員變量的實際地址,包括:
對所述系統的虛擬機本地庫libart.so進行反匯編,根據目標橋梁函數的名稱獲取所述目標橋梁函數的反匯編代碼;所述目標橋梁函數中包含有所述目標成員變量的初始化調用地址;
基于所述目標成員變量的初始化調用地址,在所述目標橋梁函數的反匯編代碼中查找所述目標成員變量的匯編代碼;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810575042.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種類工廠注冊的方法、裝置及電子設備
- 下一篇:一次編譯生成多張組態圖的方法





