[發明專利]一種程序的運行方法、裝置、電子設備及介質在審
| 申請號: | 202210958708.2 | 申請日: | 2022-08-10 |
| 公開(公告)號: | CN115455380A | 公開(公告)日: | 2022-12-09 |
| 發明(設計)人: | 周志剛 | 申請(專利權)人: | 武漢斗魚魚樂網絡科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F9/448 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 查薇 |
| 地址: | 430000 湖北省武漢市東湖新技術開發區軟件園東路*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 程序 運行 方法 裝置 電子設備 介質 | ||
本發明公開了一種程序的運行方法、裝置、電子設備及介質,運行方法通過獲取程序的指針數組,將指針數組中的第一函數指針和第二函數指針進行替換,使第一函數指針和第二函數指針指向的函數與開放源代碼存在差異,基于第二函數指針調用第一函數指針的對應函數時,使程序運行使用的對應函數既能保證正常使用,同時具有一定的隱蔽性,若程序被反編譯,無法直接從反編譯代碼中看出程序使用第二函數指針對應函數的調用意圖,進而提高了程序運行的安全性。
技術領域
本申請涉及程序運行的技術領域,尤其涉及一種程序的運行方法、裝置、電子設備及介質。
背景技術
軟件程序使用的安全性一直是各廠商關注的重點,以安卓(Android)系統的程序為例,出于系統使用的安全性考慮,會將系統核心功能核心代碼使用開源源碼(或稱native)的so文件進行開發,目的是so文件的安全性比Java層高,原因在于其破解門檻比java層高,而so文件中,則是使用JNI(Java Native Interface,Java本地接口)來開發,通過JNI可以調用于Java交換的數據、接口、功能等等。但是通過應用發現,該種方式開發的程序易被反編譯破解。
因此,如何提高程序運行的安全性,是目前亟待解決的技術問題。
發明內容
本發明的一種程序的運行方法、裝置、電子設備及介質,能夠提高程序運行的安全性。
本發明實施例提供了以下方案:
第一方面,本發明實施例提供了一種程序的運行方法,所述方法包括:
獲取程序的指針數組,其中,所述指針數組中的每個函數指針均指向對應的函數;
將所述指針數組中的第一函數指針和第二函數指針進行替換;
基于所述第二函數指針調用所述第一函數指針的對應函數,以運行所述程序。
在一種可選的實施例中,所述獲取程序的指針數組,包括:
基于所述程序的開發源碼,獲得包含所述指針數組的目標結構體;
根據所述指針數組中第一函數指針的運行路徑,獲得與原始函數的功能相同的替換函數,其中,所述原始函數為所述第一函數指針在所述目標結構體中指向的函數;
根據所述第一函數指針和所述替換函數對應的第二函數指針,獲得所述指針數組。
在一種可選的實施例中,所述根據所述指針數組中第一函數指針的運行路徑,獲得與原始函數的功能相同的替換函數,包括:
根據所述第一函數指針在所述目標結構體的創建記錄,獲得所述運行路徑的創建路徑;
根據所述第一函數指針在所述目標結構體的初始化記錄,獲得所述運行路徑的初始化路徑;
根據所述第一函數指針在所述目標結構體的調用記錄,獲得所述運行路徑的調用鏈路徑;
根據所述創建路徑、所述初始化路徑和所述調用鏈路徑,在所述開發源碼的函數庫中確定所述替換函數。
在一種可選的實施例中,所述將所述指針數組中的第一函數指針和第二函數指針進行替換,包括:
根據所述程序中函數的功能定義,進行函數類別劃分;
在所述第一函數指針指向函數的所述函數類別中,確定出替換函數和對應的所述第二函數指針;
將所述第一函數指針的第一變量和所述第二函數指針的第二變量進行替換。
在一種可選的實施例中,所述根據所述程序中函數的功能定義,進行函數類別劃分,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚魚樂網絡科技有限公司,未經武漢斗魚魚樂網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210958708.2/2.html,轉載請聲明來源鉆瓜專利網。





