[發明專利]一種對遞歸下降式分析器反編譯的干擾方法及裝置有效
| 申請號: | 201710041552.0 | 申請日: | 2017-01-20 |
| 公開(公告)號: | CN108334756B | 公開(公告)日: | 2020-05-12 |
| 發明(設計)人: | 胡衛誼 | 申請(專利權)人: | 武漢斗魚網絡科技有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京眾達德權知識產權代理有限公司 11570 | 代理人: | 劉杰 |
| 地址: | 430000 湖北省武漢市東湖開*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 遞歸 下降 分析器 反編譯 干擾 方法 裝置 | ||
本發明公開一種對遞歸下降式分析器反編譯的干擾方法及裝置,該方法包括:設置中央處理器為ARM狀態;獲取程序計數寄存器的初始地址和目標函數相對于所述程序計數寄存器的相對地址;根據所述相對地址和所述初始地址,確定所述目標函數的絕對地址;根據所述絕對地址,按預設規則向所述目標函數中插入BLX指令,以誤導所述分析器判斷函數邊界;恢復所述中央處理器為Thumb狀態,以使所述目標函數能運行。本申請提供的方法和裝置可以解決現有技術中的軟件產品存在的較大的被反編譯、被盜用的風險的技術問題。實現了有效增加反編譯的難度和逆向提取函數的成本,減少了軟件產品被反編譯、被盜用的風險的技術效果。
技術領域
本發明涉及計算機技術領域,尤其涉及一種對遞歸下降式分析器反編譯的干擾方法及裝置。
背景技術
當前,隨著網絡技術的發展,各種不同類型及風格的軟件產品層出不窮,軟件產品在發布到公眾領域后即面臨著被逆向分析和攻擊的風險,核心算法甚至可能直接被從軟件鏡像中剝離和進行未授權的再使用。
一般情況下,算法的剝離和再使用依賴于對原始二進制文件的反匯編和高級語言代碼重建工作。在現代智能鏡像分析工具的協助下,反匯編和代碼重建能夠自動進行且具有極高的還原度。甚至在大多數情況下工具自動重建的高級語言(如C語言)代碼可以直接使用C編譯器進行編譯和運行。
可見,現有技術中的軟件產品存在較大的被反編譯、被盜用的風險,故為了維護軟件開發人員及公司的利益,當前急需能保護軟件產品被反編譯的方法。
發明內容
本發明提供一種對遞歸下降式分析器反編譯的干擾方法及裝置,用以解決現有技術中的軟件產品存在較大的被反編譯、被盜用的風險的技術問題。
第一方面,本發明提供了一種對遞歸下降式分析器反編譯的干擾方法,包括:
設置中央處理器為ARM狀態;
獲取程序計數寄存器的初始地址和目標函數相對于所述程序計數寄存器的相對地址;
根據所述相對地址和所述初始地址,確定所述目標函數的絕對地址;
根據所述絕對地址,按預設規則向所述目標函數中插入BLX指令,以誤導所述分析器判斷函數邊界;
恢復所述中央處理器為Thumb狀態,以使所述目標函數能運行。
可選的,所述方法應用于ARMv7架構的中央處理器。
可選的,所述設置中央處理器為ARM狀態,包括:判斷所述中央處理器是否為ARM狀態;如果所述中央處理器為ARM狀態,則保持所述中央處理器為ARM狀態;如果所述中央處理器不為ARM狀態,則在準備環境的Thumb指令的前后,分別使用偽操作指令.code 16和.code32引導編譯器在生成機器碼序列時自動插入對齊指令來實現地址對齊,以使所述中央處理器為ARM狀態。
可選的,所述按預設規則向所述目標函數中插入BLX指令,包括:向所述目標函數中插入N個BLX指令,其中,所述N個BLX指令中的第一BLX指令的跳轉地址指向所述N個BLX指令中的第二BLX指令,N為大于2的整數。
可選的,所述按預設規則向所述目標函數中插入BLX指令,包括:向所述目標函數中插入BLX指令,其中,所述BLX指令的跳轉地址指向另一函數中插入的另一BLX指令;所述另一函數位于所述目標函數之前或之后。
可選的,所述恢復所述中央處理器為Thumb狀態,包括:使用.code 16偽指令引導編譯器,以恢復所述中央處理器為Thumb狀態。
第二方面,本發明提供一種對遞歸下降式分析器反編譯的干擾裝置,包括:
準備模塊,用于設置中央處理器為ARM狀態;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢斗魚網絡科技有限公司,未經武漢斗魚網絡科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710041552.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:隱私空間創建方法和裝置、存儲介質、電子設備
- 下一篇:一種賬戶管理系統





