[發明專利]一種基于中間語言的字符串加密方法有效
| 申請號: | 201711089034.2 | 申請日: | 2017-11-08 |
| 公開(公告)號: | CN107908933B | 公開(公告)日: | 2020-08-28 |
| 發明(設計)人: | 馬明 | 申請(專利權)人: | 北京頂象技術有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F8/41;H04L9/06;H04L9/08 |
| 代理公司: | 北京超凡志成知識產權代理事務所(普通合伙) 11371 | 代理人: | 齊云 |
| 地址: | 100089 北京市海淀區*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 中間 語言 字符串 加密 方法 | ||
1.一種基于中間語言的字符串加密方法,其特征在于,包括以下步驟:
步驟1、利用不同語言的前端編譯器將源代碼文件編譯為中間代碼文件;
步驟2、解析中間代碼文件,遍歷中間代碼文件中的所有常量,提取所述常量的字符串常量;
步驟3、對步驟2提取的字符串常量加密,寫入中間代碼;
步驟4、為步驟2中提取出的每一個字符串常量生成解密函數;
步驟5、針對步驟2中提取出的每一個字符串常量,遍歷他們在代碼區的所有字符串引用,在字符串引用之前增加對其解密函數的調用;
步驟6、替換字符串引用,完成字符串加密操作;
步驟7、將以上處理后的中間代碼文件編譯為目標二進制文件,完成編譯;
所述步驟4具體包括:
a)創建與原字符串常量相同空間大小的全局變量,用符號buffer表示,和一個1字節的全局變量,用于標識字符串常量是否已經解密,用符號flag表示,初始值置0;
b)將預編譯為中間語言的C算法解密函數,插入代碼區;
c)生成字符串常量解密函數,在函數體中先判斷flag,若為0則開始解密:讀取密文和密鑰,調用C算法對應的解密函數,對字符串常量進行解密,并將解密后的明文寫入buffer,然后將flag置1,避免多次解密。
2.如權利要求1所述的一種基于中間語言的字符串加密方法,其特征在于,所述步驟2提取所述常量的字符串常量包括c語言風格和objective-c語言風格兩種不同格式的字符串,區分提取,具體為:
a)c語言風格字符串為字符數組格式,直接提取字符串本身;
b)如果是objective-c語言風格字符串,該字符串只是一個包含字符數組的結構體,根據結構體中的引用符號提取對應的字符數組。
3.如權利要求1所述的一種基于中間語言的字符串加密方法,其特征在于,所述步驟3具體包括:
a)提取字符串常量的值;
b)從預設的多種加密算法中,隨機提取一種加密算法,用符號C表示,并隨機生成密鑰,對字符串常量的值進行加密,獲得字符串常量值經過加密后的密文;
c)將密文和密鑰保存在常量區,并刪除原字符串常量。
4.如權利要求1所述的一種基于中間語言的字符串加密方法,其特征在于,所述步驟6具體包括:
a)對于C語言風格字符串,遍歷原字符串的所有引用,全部替換為引用buffer;
b)對于Objective-C語言風格字符串,將其結構體中的字符數組引用替換為buffer。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京頂象技術有限公司,未經北京頂象技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711089034.2/1.html,轉載請聲明來源鉆瓜專利網。





