本申請涉及計算機,尤其是涉及到一種應(yīng)用程序的運行控制方法及裝置、存儲介質(zhì)、計算機設(shè)備。
背景技術(shù):
1、應(yīng)用程序(app,英文全稱:application),指能夠完成某項或多項特定工作的計算機程序。應(yīng)用程序在當(dāng)今社會扮演著非常重要的角色,大大豐富了人們的日常生活,例如,游戲應(yīng)用程序、購物應(yīng)用程序、閱讀應(yīng)用程序等。
2、當(dāng)前市場上存在著很多山寨和破解版的應(yīng)用程序,會導(dǎo)致開發(fā)者的合法權(quán)益無法得到保障,同時也會侵害用戶的數(shù)據(jù)安全,甚至?xí)孤队脩舻膫€人隱私。當(dāng)前開發(fā)者在開發(fā)應(yīng)用程序時,為了避免應(yīng)用程序被破解,通常對代碼進(jìn)行加固混淆,提升應(yīng)用程序被破解的難度。然而,這種方法在應(yīng)用程序被破解之后,并不能防止被破解的應(yīng)用程序被繼續(xù)使用。
技術(shù)實現(xiàn)思路
1、有鑒于此,本申請?zhí)峁┝艘环N應(yīng)用程序的運行控制方法及裝置、存儲介質(zhì)、計算機設(shè)備,通過應(yīng)用程序安裝包的根目錄下的第一數(shù)字證書和第一簽名信息,對應(yīng)用程序的全部文件或部分文件的完整性和安全性進(jìn)行第一層面的校驗,通過java層文件中的哈希值存儲文件,對應(yīng)用程序的java層的指定文件的完整性和安全性進(jìn)行第二層面的校驗,從而在應(yīng)用程序的主進(jìn)程被啟動之后,首先從兩個方面對應(yīng)用程序的安全性進(jìn)行校驗,校驗通過后才運行應(yīng)用程序,可以避免應(yīng)用程序被篡改之后還能正常運行,從而保障應(yīng)用程序開發(fā)者的權(quán)益,以及用戶的數(shù)據(jù)安全。
2、根據(jù)本申請的一個方面,提供了一種應(yīng)用程序的運行控制方法,包括:
3、當(dāng)檢測到應(yīng)用程序的主進(jìn)程被啟動時,從應(yīng)用程序安裝包的根目錄下查找目標(biāo)文件夾,以及從所述應(yīng)用程序安裝包的java層文件中查找目標(biāo)對象和哈希值存儲文件,其中,所述目標(biāo)對象包括目標(biāo)文件和/或目標(biāo)代碼段;
4、從所述目標(biāo)文件夾中查找第一證書文件,并從所述第一證書文件中識別第一數(shù)字證書和第一簽名信息,通過所述第一數(shù)字證書中的第一公鑰對所述第一簽名信息進(jìn)行校驗,得到第一校驗結(jié)果;
5、通過目標(biāo)哈希算法,計算所述目標(biāo)對象的第一哈希值,并通過所述哈希值存儲文件中存儲的第二哈希值對所述第一哈希值進(jìn)行校驗,得到第二校驗結(jié)果,其中,所述第二哈希值是在構(gòu)建所述目標(biāo)對象時,通過所述目標(biāo)哈希算法計算得到的;
6、當(dāng)所述第一校驗結(jié)果與所述第二校驗結(jié)果均指示通過安全性校驗時,繼續(xù)啟動所述應(yīng)用程序的主進(jìn)程。
7、根據(jù)本申請的另一方面,提供了一種應(yīng)用程序的運行控制裝置,包括:
8、檢測模塊,用于當(dāng)檢測到應(yīng)用程序的主進(jìn)程被啟動時,從應(yīng)用程序安裝包的根目錄下查找目標(biāo)文件夾,以及從所述應(yīng)用程序安裝包的java層文件中查找目標(biāo)對象和哈希值存儲文件,其中,所述目標(biāo)對象包括目標(biāo)文件和/或目標(biāo)代碼段;
9、第一校驗?zāi)K,用于從所述目標(biāo)文件夾中查找第一證書文件,并從所述第一證書文件中識別第一數(shù)字證書和第一簽名信息,通過所述第一數(shù)字證書中的第一公鑰對所述第一簽名信息進(jìn)行校驗,得到第一校驗結(jié)果;
10、第二校驗?zāi)K,用于通過目標(biāo)哈希算法,計算所述目標(biāo)對象的第一哈希值,并通過所述哈希值存儲文件中存儲的第二哈希值對所述第一哈希值進(jìn)行校驗,得到第二校驗結(jié)果,其中,所述第二哈希值是在構(gòu)建所述目標(biāo)對象時,通過所述目標(biāo)哈希算法計算得到的;
11、啟動模塊,用于當(dāng)所述第一校驗結(jié)果與所述第二校驗結(jié)果均指示通過安全性校驗時,繼續(xù)啟動所述應(yīng)用程序的主進(jìn)程。
12、依據(jù)本申請又一個方面,提供了一種存儲介質(zhì),其上存儲有計算機程序,所述程序被處理器執(zhí)行時實現(xiàn)上述應(yīng)用程序的運行控制方法。
13、依據(jù)本申請再一個方面,提供了一種計算機設(shè)備,包括存儲介質(zhì)、處理器及存儲在存儲介質(zhì)上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)上述應(yīng)用程序的運行控制方法。
14、借由上述技術(shù)方案,本申請?zhí)峁┑囊环N應(yīng)用程序的運行控制方法及裝置、存儲介質(zhì)、計算機設(shè)備,當(dāng)檢測到應(yīng)用程序的主進(jìn)程被啟動時,可以從該應(yīng)用程序的安裝包的根目錄下查找目標(biāo)文件夾。與此同時,還可以從應(yīng)用程序安裝包的java層文件中找到目標(biāo)對象和哈希值存儲文件。查找到目標(biāo)文件夾之后,可以進(jìn)一步從該目標(biāo)文件夾中查找第一證書文件,從該第一證書文件中識別出第一數(shù)字證書和第一簽名信息,并從第一數(shù)字證書中提取出第一公鑰。之后,可以使用與第一簽名信息相同的哈希算法對應(yīng)用程序的相應(yīng)部分進(jìn)行哈希計算,得到一個新的哈希值。使用第一公鑰對第一簽名信息進(jìn)行解密,得到原始的哈希值。接著,將新計算出的哈希值與解密得到的原始哈希值進(jìn)行比較,得到第一校驗結(jié)果。此外,還可以先使用目標(biāo)哈希算法來計算目標(biāo)對象的當(dāng)前哈希值,稱之為第一哈希值。計算得到第一哈希值后,將其與哈希值存儲文件中的第二哈希值進(jìn)行比較,得到第二校驗結(jié)果。如果第一校驗結(jié)果和第二校驗結(jié)果均指示通過安全性校驗,那么說明應(yīng)用程序的簽名信息和java層下的第一哈希值均未出現(xiàn)異常,此時可以繼續(xù)啟動應(yīng)用程序的主進(jìn)程,控制應(yīng)用程序正常運行。本申請實施例通過應(yīng)用程序安裝包的根目錄下的第一數(shù)字證書和第一簽名信息,對應(yīng)用程序的全部文件或部分文件的完整性和安全性進(jìn)行第一層面的校驗,通過java層文件中的哈希值存儲文件,對應(yīng)用程序的java層的指定文件的完整性和安全性進(jìn)行第二層面的校驗,從而在應(yīng)用程序的主進(jìn)程被啟動之后,首先從兩個方面對應(yīng)用程序的安全性進(jìn)行校驗,校驗通過后才運行應(yīng)用程序,可以避免應(yīng)用程序被篡改之后還能正常運行,從而保障應(yīng)用程序開發(fā)者的權(quán)益,以及用戶的數(shù)據(jù)安全。
15、上述說明僅是本申請技術(shù)方案的概述,為了能夠更清楚了解本申請的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本申請的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本申請的具體實施方式。
1.一種應(yīng)用程序的運行控制方法,其特征在于,包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述繼續(xù)啟動所述應(yīng)用程序的主進(jìn)程之后,所述方法還包括:
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)檢測到應(yīng)用程序的主進(jìn)程被啟動之后,所述方法還包括:
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述當(dāng)所述第四校驗結(jié)果指示通過安全性校驗之后,所述方法還包括:
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述方法還包括:
6.根據(jù)權(quán)利要求2至5中任一項所述的方法,其特征在于,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括:
8.一種應(yīng)用程序的運行控制裝置,其特征在于,包括:
9.一種存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至7中任一項所述的方法。
10.一種計算機設(shè)備,包括存儲介質(zhì)、處理器及存儲在存儲介質(zhì)上并可在處理器上運行的計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權(quán)利要求1至7中任一項所述的方法。