[發明專利]一種基于對抗逆向的程序加固方法及裝置在審
| 申請號: | 201810450815.8 | 申請日: | 2018-05-11 |
| 公開(公告)號: | CN108647500A | 公開(公告)日: | 2018-10-12 |
| 發明(設計)人: | 黃紹莽;潘劍 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14;G06F21/12 |
| 代理公司: | 北京華沛德權律師事務所 11302 | 代理人: | 房德權 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序加固 軟件產品 對抗 軟件開發技術 可執行程序 源程序文件 用戶編輯 工程師 指令 創建 應用 | ||
本發明公開了一種基于對抗逆向的程序加固方法及裝置,應用于軟件開發技術領域,該方法包括:在用戶編輯的源程序文件中創建一個以上不可達分支;在所述一個以上不可達分支的每個不可達分支中添加對抗逆向指令,得到新的程序;生成與所述新的程序對應的可執行程序文件。通過本發明提高了軟件產品被逆向工程師逆向的難度,從而解決了軟件產品的安全性不高的技術問題。
技術領域
本發明涉及軟件開發技術領域,尤其涉及一種基于對抗逆向的程序加固方法及裝置。
背景技術
高級語言編寫的源程序文件經過編譯變成可執行程序文件,用于機器執行,而反編譯是其逆過程,可以將可執行程序文件通過反編譯得到可讀的源程序文件。計算機軟件反向工程(Reversepengineering)也稱為計算機軟件還原工程,就是指通過對他人軟件的目標程序(可執行程序文件)進行“逆向分析、研究”工作,以推導出他人的軟件產品所使用的思路、原理、結構、算法、處理過程、運行方法等設計要素,從而作為自己開發軟件時的參考,或者直接用于自己的軟件產品中。
因此,用戶所自主開發的軟件產品很容易被競爭對手通過計算機軟件反向工程,反編譯而知曉該軟件產品所使用的思路、原理、結構、算法、處理過程、運行方法,導致軟件產品被模仿,甚至盜取。因此,目前的軟件產品的安全性不高。
發明內容
本發明實施例提供一種基于對抗逆向的程序加固方法及裝置,解決了軟件產品的安全性不高的技術問題。
第一方面,本發明實施例提供一種基于對抗逆向的程序加固方法,包括:
在用戶編輯的源程序文件中創建一個以上不可達分支;
在所述一個以上不可達分支的每個不可達分支中添加對抗逆向指令,得到新的程序;
生成與所述新的程序對應的可執行程序文件。
可選的,所述在用戶編輯的源程序文件中創建一個以上不可達分支,包括:
從所述源程序文件確定一個以上的分支插入位置;
在每個所述分支插入位置添加所述不可達分支。
可選的,所述從所述源程序文件確定一個以上的分支插入位置,包括:
從所述源程序文件隨機確定一個分支插入位置或者多個分散的分支插入位置。
可選的,所述在用戶編輯的源程序文件中創建一個以上不可達分支,包括:
從所述源程序文件確定一個以上的目標代碼段;
變換每個所述目標代碼段,獲得包括可達分支和所述不可達分支的新指令段,其中,對應的目標代碼段攜帶在所述新指令段的可達分支中。
可選的,所述從所述源程序文件確定一個以上的目標代碼段,包括:
從所述源程序文件隨機確定一個目標代碼段或者多個分散的目標代碼段。
可選的,所述在所述一個以上不可達分支的每個不可達分支中添加對抗逆向指令,包括:
在每個所述不可達分支中添加非指令數據。
可選的,所述在所述一個以上不可達分支的每個不可達分支中添加對抗逆向指令,包括:
識別每個所述不可達分支所在的位置;
在每個所述可不達分支中添加與該不可達分支所在的位置相匹配的對抗逆向指令。
可選的,所述在每個所述可不達分支中添加與該不可達分支所在的位置相匹配的對抗逆向指令,包括:對每個所述不可達分支執行如下步驟:
判斷所述不可達分支是否處于所述源程序文件的堆棧代碼塊中;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810450815.8/2.html,轉載請聲明來源鉆瓜專利網。





