[發(fā)明專利]一種代碼混淆方法、設(shè)備及計算機可讀存儲介質(zhì)在審
| 申請?zhí)枺?/td> | 201711214176.7 | 申請日: | 2017-11-28 |
| 公開(公告)號: | CN108197440A | 公開(公告)日: | 2018-06-22 |
| 發(fā)明(設(shè)計)人: | 袁夢龍 | 申請(專利權(quán))人: | 五八有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F8/41 |
| 代理公司: | 工業(yè)和信息化部電子專利中心 11010 | 代理人: | 焉明濤 |
| 地址: | 300450 天津市濱海新區(qū)經(jīng)濟技術(shù)開*** | 國省代碼: | 天津;12 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 混淆 代碼混淆 預(yù)編譯 碼頭 打包 替換 計算機可讀存儲介質(zhì) 計算機存儲介質(zhì) 全局 譯文 保證 后代 清晰 創(chuàng)建 開發(fā) | ||
本發(fā)明公開了一種代碼混淆方法、設(shè)備及計算機存儲介質(zhì)。該方法包括:對需要混淆的關(guān)鍵字進行混淆處理,并將混淆后的信息以預(yù)編譯宏的模式創(chuàng)建至混淆代碼頭文件中;將混淆代碼頭文件導(dǎo)入至全局預(yù)編譯文件中,以在預(yù)編譯時根據(jù)混淆代碼頭文件中的預(yù)編譯宏對全局中需要混淆的關(guān)鍵字進行替換。本發(fā)明通過App在每次打包預(yù)編時,進行宏替換的代碼混淆,保證了開發(fā)時代碼清晰,打包后代碼混淆難懂的作用,有效保證App發(fā)版后的安全性。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種代碼混淆方法、設(shè)備及計算機可讀存儲介質(zhì)。
背景技術(shù)
目前現(xiàn)有技術(shù)中,在編寫App應(yīng)用程序時,代碼方法(function)、類名(class)、抽象接口名(或者協(xié)議名protocol)以及屬性名都是語義化很明確的名字。基于此,開發(fā)人員易于理解代碼的意圖和邏輯,也方便后續(xù)開發(fā)的調(diào)試和維護。然而,破解人員也可以根據(jù)代碼方法、類名、抽象接口名以及屬性名對應(yīng)用程序進行反編譯工作,獲取應(yīng)用程序的代碼及實現(xiàn)邏輯,僅通過在應(yīng)用程序的關(guān)鍵邏輯的地方加入自己的一些邏輯,就可實現(xiàn)自己所要的意圖。
因此,現(xiàn)有的應(yīng)用程序開發(fā)中,如何提高代碼的安全性是開發(fā)人員所面臨解決的一個重要問題。
發(fā)明內(nèi)容
本發(fā)明提供一種代碼混淆方法、設(shè)備及計算機可讀存儲介質(zhì),用以解決現(xiàn)有的應(yīng)用程序開發(fā)中,代碼的安全性得不到保障的問題。
為實現(xiàn)上述發(fā)明目的,本發(fā)明采用下述的技術(shù)方案:
根據(jù)本發(fā)明的一個方面,提供一種代碼混淆方法,包括:
對需要混淆的關(guān)鍵字進行混淆處理,并將混淆后的信息以預(yù)編譯宏的模式創(chuàng)建至混淆代碼頭文件中;
將所述混淆代碼頭文件導(dǎo)入至全局預(yù)編譯文件中,以在預(yù)編譯時根據(jù)所述混淆代碼頭文件中的預(yù)編譯宏對全局中所述需要混淆的關(guān)鍵字進行替換。
可選的,所述對需要混淆的關(guān)鍵字進行混淆處理之前,所述方法還包括:
通過shell腳本提取所述需要混淆的關(guān)鍵字。
可選的,所述對需要混淆的關(guān)鍵字進行混淆處理,并將混淆后的信息以預(yù)編譯宏的模式創(chuàng)建至混淆代碼頭文件中,包括:
對所述需要混淆的關(guān)鍵字通過隨機算法進行隨機混淆處理;
將隨機混淆后的隨機字符串保存至所述混淆代碼頭文件的預(yù)編譯宏中。
可選的,所述隨機算法為BASE64算法。
可選的,所述將隨機混淆后的隨機字符串保存至所述混淆代碼頭文件的預(yù)編譯宏中,具體包括:
判斷所述隨機字符串是否存在于預(yù)設(shè)列表文件中:
當不存在時,將所述隨機字符串保存至所述預(yù)設(shè)列表文件和所述預(yù)編譯宏中;當存在時,繼續(xù)進行隨機混淆處理,直至混淆后的隨機字符串不存在于所述預(yù)設(shè)列表文件,將所述隨機字符串保存至所述預(yù)設(shè)列表文件和所述預(yù)編譯宏中。
可選的,所述方法還包括:
將所述需要混淆的關(guān)鍵字以及所述隨機字符串以鍵值對的形式寫入本地數(shù)據(jù)庫中。
可選的,所述將所述混淆代碼頭文件導(dǎo)入至全局預(yù)編譯文件中,包括:
將所述混淆代碼頭文件導(dǎo)入混淆代碼預(yù)編譯文件中;
將所述混淆代碼預(yù)編譯文件的路徑添加至所述全局預(yù)編譯文件中。
可選的,所述關(guān)鍵字為以下任一種:類名、協(xié)議名、屬性名以及方法名。
該專利技術(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/201711214176.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 對于象素著色器硬件的傳統(tǒng)處理
- 一種分布式預(yù)編譯的結(jié)果發(fā)布方法及系統(tǒng)
- 預(yù)編譯托存托管代碼
- 一種Java程序預(yù)編譯方法和預(yù)編譯器
- 有選擇地加載預(yù)編譯的頭部和/或其部分
- 選擇性地提供緩存和當前編譯的應(yīng)用的方法和裝置
- 一種iOS應(yīng)用的構(gòu)建方法及終端
- 腳本編譯的方法、腳本執(zhí)行的方法、相關(guān)裝置及系統(tǒng)
- 應(yīng)用程序預(yù)編譯的方法、裝置、電子設(shè)備以及服務(wù)器
- 一種鏡像構(gòu)建方法、系統(tǒng)、設(shè)備及介質(zhì)





