[發(fā)明專利]代碼混淆方法、裝置、設(shè)備、介質(zhì)以及程序產(chǎn)品在審
| 申請?zhí)枺?/td> | 202210291741.4 | 申請日: | 2022-03-22 |
| 公開(公告)號: | CN114756833A | 公開(公告)日: | 2022-07-15 |
| 發(fā)明(設(shè)計)人: | 曠亞和;程佩哲;牟天宇;魏興 | 申請(專利權(quán))人: | 中國工商銀行股份有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 中科專利商標(biāo)代理有限責(zé)任公司 11021 | 代理人: | 張體南 |
| 地址: | 100140 北*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 代碼 混淆 方法 裝置 設(shè)備 介質(zhì) 以及 程序 產(chǎn)品 | ||
本公開提供了一種代碼混淆方法,可以應(yīng)用于信息安全技術(shù)領(lǐng)域。該代碼混淆方法包括:獲取第一待混淆函數(shù)和第二待混淆函數(shù);對所述第一待混淆函數(shù)執(zhí)行第一混淆處理,得到第一代碼片段,所述第一混淆處理包括改寫所述第一待混淆函數(shù)的函數(shù)內(nèi)容和調(diào)用關(guān)系;對所述第二待混淆函數(shù)執(zhí)行第二混淆處理,得到第二代碼片段,所述第二混淆處理包括改寫所述第二待混淆函數(shù)的調(diào)用關(guān)系;以及在所述第一待混淆函數(shù)和所述第二待混淆函數(shù)完成相應(yīng)的混淆處理后,得到混淆后的代碼。本公開還提供了一種代碼混淆裝置、設(shè)備、存儲介質(zhì)和程序產(chǎn)品。
技術(shù)領(lǐng)域
本公開涉及計算機技術(shù)領(lǐng)域,具體信息安全技術(shù)領(lǐng)域,更具體地涉及一種代碼混淆方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品。
背景技術(shù)
隨著應(yīng)用軟件逆向、反編譯技術(shù)的快速發(fā)展,不法分子可以通過這些技術(shù)對發(fā)布后的應(yīng)用代碼進行調(diào)試分析,盜取軟件核心算法、挖掘軟件漏洞、甚至進行二次打包銷售。利用代碼混淆技術(shù)防止軟件被非法用戶惡意破解是一個非常有效的手段。但現(xiàn)有技術(shù)中,對于代碼混淆往往在提升反編譯難度的同時,會出現(xiàn)報錯情況,同時,現(xiàn)有的代碼混淆方法在操作系統(tǒng)的兼容性方面表現(xiàn)欠佳。
因此,如何在保證程序正常運行和操作系統(tǒng)兼容的前提下,提高反混淆難度,保證應(yīng)用代碼的安全性是本領(lǐng)域技術(shù)人員亟待解決的技術(shù)問題。
發(fā)明內(nèi)容
鑒于上述問題,本公開提供了提高場景兼容性和反混淆難度的代碼混淆方法、裝置、設(shè)備、介質(zhì)和程序產(chǎn)品。
根據(jù)本公開的第一個方面,提供了一種代碼混淆方法,包括:獲取第一待混淆函數(shù)和第二待混淆函數(shù);對所述第一待混淆函數(shù)執(zhí)行第一混淆處理,得到第一代碼片段,所述第一混淆處理包括改寫所述第一待混淆函數(shù)的函數(shù)內(nèi)容和調(diào)用關(guān)系;對所述第二待混淆函數(shù)執(zhí)行第二混淆處理,得到第二代碼片段,所述第二混淆處理包括改寫所述第二待混淆函數(shù)的調(diào)用關(guān)系;以及在所述第一待混淆函數(shù)和所述第二待混淆函數(shù)完成相應(yīng)的混淆處理后,得到混淆后的代碼。
根據(jù)本公開的實施例,所述獲取第一待混淆函數(shù)和第二待混淆函數(shù)包括:基于預(yù)設(shè)的關(guān)鍵函數(shù)清單,通過字符正則匹配篩選出所述第一待混淆函數(shù)和所述第二待混淆函數(shù)。
根據(jù)本公開的實施例,所述對所述第一待混淆函數(shù)執(zhí)行第一混淆處理,得到第一代碼片段,包括:提取所述第一待混淆函數(shù)中的函數(shù)內(nèi)容,所述函數(shù)內(nèi)容包括函數(shù)邏輯體信息;通過腳本語言的語法形式對所述函數(shù)邏輯體信息執(zhí)行改寫操作,得到第一腳本片段;遍歷待混淆代碼中調(diào)用所述第一待混淆函數(shù)的第一調(diào)用點;將所述第一調(diào)用點的所述第一待混淆函數(shù)替換為所述第一腳本片段;以及將所述第一調(diào)用點的調(diào)用關(guān)系改造成為反射調(diào)用,得到第一代碼片段。
根據(jù)本公開的實施例,在所述通過腳本語言的語法形式對所述函數(shù)邏輯體信息執(zhí)行改寫操作,得到第一腳本片段后,所述方法還包括:基于預(yù)設(shè)的第一加密算法對所述第一腳本片段進行加密處理,得到加密后的第一腳本片段。
根據(jù)本公開的實施例,所述對所述第二待混淆函數(shù)執(zhí)行第二混淆處理,得到第二代碼片段,包括:識別所述第二待混淆函數(shù)的函數(shù)調(diào)用關(guān)系;基于不同的函數(shù)調(diào)用關(guān)系采用相應(yīng)的反射調(diào)用改造手段進行改造,得到所述第二代碼片段。
根據(jù)本公開的實施例,在所述基于不同的函數(shù)調(diào)用關(guān)系采用相應(yīng)的反射調(diào)用改造手段進行改造,得到所述第二代碼片段后,所述方法還包括:提取反射調(diào)用涉及的第一關(guān)鍵詞;基于預(yù)設(shè)的第二加密算法對所述第一關(guān)鍵詞進行加密處理,得到第二關(guān)鍵詞;以及基于預(yù)設(shè)的第二加密算法對應(yīng)的解密算法添加解密函數(shù)調(diào)用,所述解密函數(shù)調(diào)用用于在運行第二代碼片段時,解密所述第二關(guān)鍵詞。
本公開的第二個方面,提供了一種代碼混淆裝置,包括:待混淆函數(shù)獲取模塊、第一混淆處理模塊、第二混淆處理模塊以及混淆代碼獲取模塊,其中,所述待混淆函數(shù)獲取模塊,用于獲取第一待混淆函數(shù)和第二待混淆函數(shù);
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于中國工商銀行股份有限公司,未經(jīng)中國工商銀行股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210291741.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





