[發明專利]基于代碼執行順序的源代碼加固方法及裝置有效
| 申請號: | 201810146265.0 | 申請日: | 2018-02-12 |
| 公開(公告)號: | CN108446535B | 公開(公告)日: | 2021-11-12 |
| 發明(設計)人: | 闞志剛;陳彪;王文洋;李世杰;尉爽生;方寧;盧佐華 | 申請(專利權)人: | 北京梆梆安全科技有限公司 |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F21/14;G06F21/56 |
| 代理公司: | 北京國昊天誠知識產權代理有限公司 11315 | 代理人: | 許志勇 |
| 地址: | 100083 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 代碼 執行 順序 源代碼 加固 方法 裝置 | ||
本申請公開了一種基于代碼執行順序的源代碼加固方法及裝置,可以基于應用程序的原始源代碼在編譯或運行時的跳轉邏輯,將原始源代碼拆分成多個代碼塊;基于原始源代碼在編譯或運行時的跳轉邏輯,建立表征代碼塊的執行順序的跳轉表,跳轉表中保存有代碼塊標記與代碼塊的地址的對應關系;其中,所述地址為加固后的源代碼在編譯或運行時、代碼塊在內存中的地址,代碼塊標記用于訪問對應的代碼塊的地址;將原始源代碼的代碼塊之間的跳轉邏輯,通過所述跳轉表中的代碼塊標記實現,以生成加固后的源代碼。由于通過跳轉表中的代碼塊標記實現了原始源代碼的代碼塊之間的跳轉邏輯,因此可以隱藏原始源代碼的執行順序,進而可以提高源代碼的防逆向分析能力。
技術領域
本申請涉及軟件安全技術領域,尤其涉及一種基于代碼執行順序的源代碼加固方法及裝置。
背景技術
現如今,移動互聯網、物聯網、車聯網等技術高速發展,終端的數量越來越多,終端中安裝的應用程序也越來越多,這給人們的工作和生活帶來了極大的便利。應用程序運行過程中會產生一些重要的信息,這引起了攻擊者的極大興趣,使得這些重要信息存在被泄露的風險。
目前,攻擊者常使用反匯編、反編譯等靜態分析工具,對應用程序的源代碼進行逆向分析破解,獲得應用程序的執行邏輯,從而非法竊取、非法篡改應用程序運行過程中產生的重要信息。
針對上述風險,現有技術常通過對應用程序的源代碼進行加固,提高源代碼的防逆向分析能力,降低應用程序運行過程中產生的重要信息被泄露的風險。但是,現有的控制流平坦化等源代碼加固方法依然存在被破解的風險,源代碼的防逆向分析能力還有待提高。
發明內容
本申請實施例提供一種基于代碼執行順序的源代碼加固方法及裝置,以提高源代碼的防逆向分析能力。
第一方面,提供了一種基于代碼執行順序的源代碼加固方法,所述方法包括:
基于應用程序的原始源代碼在編譯或運行時的跳轉邏輯,將所述原始源代碼拆分成多個代碼塊;
基于所述原始源代碼在編譯或運行時的跳轉邏輯,建立表征所述多個代碼塊的執行順序的跳轉表,所述跳轉表中保存有代碼塊標記與代碼塊的地址的對應關系;其中,所述地址為加固后的源代碼在編譯或運行時、代碼塊在內存中的地址,所述代碼塊標記用于訪問對應的代碼塊的地址;
將所述原始源代碼的代碼塊之間的跳轉邏輯,通過所述跳轉表中的代碼塊標記實現,以生成所述加固后的源代碼。
第二方面,提供了一種基于代碼執行順序的源代碼加固裝置,包括:
代碼塊拆分模塊,用于基于應用程序的原始源代碼在編譯或運行時的跳轉邏輯,將所述原始源代碼拆分成多個代碼塊;
跳轉表建立模塊,用于基于所述原始源代碼在編譯或運行時的跳轉邏輯,建立表征所述多個代碼塊的執行順序的跳轉表,所述跳轉表中保存有代碼塊標記與代碼塊的地址的對應關系;其中,所述地址為加固后的源代碼在編譯或運行時、代碼塊在內存中的地址,所述代碼塊標記用于訪問對應的代碼塊的地址;
源代碼加固模塊,用于將所述原始源代碼的代碼塊之間的跳轉邏輯,通過所述跳轉表中的代碼塊標記實現,以生成所述加固后的源代碼。
第三方面,本申請實施例還提供了一種電子設備,包括:存儲器、處理器及存儲在所述存儲器上并可在所述處理器上運行的計算機程序,所述計算機程序被所述處理器執行時實現如第一方面所述的方法的步驟。
第四方面,本申請實施例還提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質上存儲有計算機程序,所述計算機程序被處理器執行時實現如第一方面所述的方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京梆梆安全科技有限公司,未經北京梆梆安全科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810146265.0/2.html,轉載請聲明來源鉆瓜專利網。





