[發明專利]字符串混淆方法、裝置、電子設備和存儲介質在審
| 申請號: | 201910429808.4 | 申請日: | 2019-05-22 |
| 公開(公告)號: | CN111984939A | 公開(公告)日: | 2020-11-24 |
| 發明(設計)人: | 李鶴仙;曹陽 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F8/41;G06F7/58 |
| 代理公司: | 北京市隆安律師事務所 11323 | 代理人: | 權鮮枝 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 字符串 混淆 方法 裝置 電子設備 存儲 介質 | ||
本發明公開了字符串混淆方法、裝置、電子設備和存儲介質。所述方法包括:對代碼文件進行掃描,確定符合掃描規則的待混淆字符串;為待混淆字符串添加混淆宏處理;所述混淆宏在代碼編譯過程中,對相應的待混淆字符串根據編譯時間進行混淆。該技術方案的有益效果在于能夠自動化地實現字符串混淆,無需開發人員手動去混淆,減輕開發人員的工作量;并且具體的混淆是在代碼編譯過程時進行,不會影響程序運行時的性能,效率也很高;混淆字符串時根據編譯時間來進行,保證每次編譯得到的混淆后的字符串不同,提高了破解難度。
技術領域
本發明涉及信息安全領域,具體涉及字符串混淆方法、裝置、電子設備和存儲介質。
背景技術
在破解二進制文件時,字符串往往會成為突破的關鍵點,因為在代碼中硬編碼的字符串可以原封不動的在二進制文件中查找到。所以,為了增加破解的難度,對字符串進行混淆是很重要的一步。對字符串的混淆可以從以下幾個角度入手:1)編譯之前調用應用程序對字符串進行處理;2)代碼組直接寫入混淆后的字符串;3)對生成的二進制文件進行處理。
現有技術中的字符串混淆方法,還存在一些缺點,例如:由于采用的混淆算法固定,相同的字符串每次混淆結果都一樣,如果攻擊者發現某個字符串出現了多次,這個字符串也會成為突破口;開發者需要挨個替換源代碼中的字符串,如果源代碼比較龐大時,會增加開發者的工作量,等等,因此需要一種效果更好的方案。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的字符串混淆方法、裝置、電子設備和存儲介質。
依據本發明的一個方面,提供了一種字符串混淆方法,包括:
對代碼文件進行掃描,確定符合掃描規則的待混淆字符串;
為待混淆字符串添加混淆宏處理;
所述混淆宏在代碼編譯過程中,對相應的待混淆字符串根據編譯時間進行混淆。
可選地,所述方法還包括:在完成字符串混淆的代碼文件中添加所述混淆宏的頭文件;
所述對代碼文件進行掃描,確定符合掃描規則的待混淆字符串包括:若掃描到一個代碼文件中包含所述混淆宏的頭文件,則不執行對該代碼文件的字符串混淆。
可選地,所述對代碼文件進行掃描,確定符合掃描規則的待混淆字符串包括:
若一個字符串與#include、#warning、#error以及#pragma中的任一個處于同一行,則不將該字符串作為待混淆字符串;
和/或,
若一個字符串用于初始化數組,則不將該字符串作為待混淆字符串;
和/或,
若一個字符串位于注釋區,則不將該字符串作為待混淆字符串。
可選地,所述對相應的待混淆字符串根據編譯時間進行混淆包括:
根據編譯時間確定混淆密鑰;
從預設的混淆方法中隨機選擇出一種混淆方法,根據確定的混淆密鑰以及選擇的混淆方法對待混淆字符串進行混淆。
可選地,所述根據編譯時間確定混淆密鑰包括:
使用_TIME_宏作為偽隨機發生器的種子,使用_COUNTER_宏、_LINE_宏和_FILE_宏中的任一種作為偽隨機發生器的迭代次數來產生隨機數;
將產生的隨機數作為所述混淆密鑰。
可選地,所述根據確定的混淆密鑰以及選擇的混淆方法對待混淆字符串進行混淆包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910429808.4/2.html,轉載請聲明來源鉆瓜專利網。





