[發明專利]基于代碼執行順序的源代碼加固方法及裝置有效
| 申請號: | 201810146265.0 | 申請日: | 2018-02-12 |
| 公開(公告)號: | CN108446535B | 公開(公告)日: | 2021-11-12 |
| 發明(設計)人: | 闞志剛;陳彪;王文洋;李世杰;尉爽生;方寧;盧佐華 | 申請(專利權)人: | 北京梆梆安全科技有限公司 |
| 主分類號: | G06F21/12 | 分類號: | G06F21/12;G06F21/14;G06F21/56 |
| 代理公司: | 北京國昊天誠知識產權代理有限公司 11315 | 代理人: | 許志勇 |
| 地址: | 100083 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 代碼 執行 順序 源代碼 加固 方法 裝置 | ||
1.一種基于代碼執行順序的源代碼加固方法,其特征在于,所述方法包括:
基于應用程序的原始源代碼在編譯或運行時的跳轉邏輯,將所述原始源代碼拆分成多個代碼塊;
基于所述原始源代碼在編譯或運行時的跳轉邏輯,建立表征所述多個代碼塊的執行順序的跳轉表,所述跳轉表中保存有代碼塊標記與代碼塊的地址的對應關系;其中,所述地址為加固后的源代碼在編譯或運行時、代碼塊在內存中的地址,所述代碼塊標記用于訪問對應的代碼塊的地址;
將所述原始源代碼的代碼塊之間的跳轉邏輯,通過所述跳轉表中的代碼塊標記實現,以生成所述加固后的源代碼;
其中,所述將所述原始源代碼的代碼塊之間的跳轉邏輯,通過所述跳轉表中的代碼塊標記實現,包括:
確定第一代碼塊在所述原始源代碼中的初始位置;
在所述原始源代碼的第一位置插入所述第一代碼塊,所述第一位置與所述初始位置不同;
將位于所述初始位置的所述第一代碼塊替換為第一預設代碼,所述第一預設代碼包括:第一預設跳轉語句和第一代碼塊標記;其中,所述第一預設跳轉語句用于訪問所述第一代碼塊標記,所述第一代碼塊標記用于訪問所述第一代碼塊對應的地址,以執行所述第一代碼塊;
確定第二代碼塊,所述第二代碼塊為所述原始源代碼在編譯或運行時,執行完所述第一代碼塊后需要執行的下一代碼塊;
在插入所述第一位置的第一代碼塊的結尾插入第二預設代碼,所述第二預設代碼包括:第二預設跳轉語句和第二代碼塊標記;其中,所述第二預設跳轉語句用于訪問所述第二代碼塊標記,所述第二代碼塊標記用于訪問所述第二代碼塊對應的地址,以執行所述第二代碼塊。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
對所述第一預設代碼和/或所述第二預設代碼進行加密。
3.根據權利要求1-2任一項所述的方法,其特征在于,所述方法還包括:
對所述跳轉表進行加密。
4.根據權利要求3所述的方法,其特征在于,所述方法還包括:
將加固后的所述源代碼存儲至第一文件中;
將加密后的所述跳轉表存儲至第二文件中;
其中,所述第一文件和所述第二文件為不同的文件。
5.一種基于代碼執行順序的源代碼加固裝置,其特征在于,所述裝置包括:
代碼塊拆分模塊,用于基于應用程序的原始源代碼在編譯或運行時的跳轉邏輯,將所述原始源代碼拆分成多個代碼塊;
跳轉表建立模塊,用于基于所述原始源代碼在編譯或運行時的跳轉邏輯,建立表征所述多個代碼塊的執行順序的跳轉表,所述跳轉表中保存有代碼塊標記與代碼塊的地址的對應關系;其中,所述地址為加固后的源代碼在編譯或運行時、代碼塊在內存中的地址,所述代碼塊標記用于訪問對應的代碼塊的地址;
源代碼加固模塊,用于將所述原始源代碼的代碼塊之間的跳轉邏輯,通過所述跳轉表中的代碼塊標記實現,以生成所述加固后的源代碼;
其中,所述源代碼加固模塊包括:
第一確定子模塊,用于確定第一代碼塊在所述原始源代碼中的初始位置;
第一插入子模塊,用于在所述原始源代碼的第一位置插入所述第一代碼塊,所述第一位置與所述初始位置不同;
替換子模塊,用于將位于所述初始位置的所述第一代碼塊替換為第一預設代碼,所述第一預設代碼包括:第一預設跳轉語句和第一代碼塊標記;其中,所述第一預設跳轉語句用于訪問所述第一代碼塊標記,所述第一代碼塊標記用于訪問所述第一代碼塊對應的地址,以執行所述第一代碼塊;
第二確定子模塊,用于確定第二代碼塊,所述第二代碼塊為所述原始源代碼在編譯或運行時,執行完所述第一代碼塊后需要執行的下一代碼塊;
第二插入子模塊,用于在插入所述第一位置的第一代碼塊的結尾插入第二預設代碼,所述第二預設代碼包括:第二預設跳轉語句和第二代碼塊標記;其中,所述第二預設跳轉語句用于訪問所述第二代碼塊標記,所述第二代碼塊標記用于訪問所述第二代碼塊對應的地址,以執行所述第二代碼塊。
6.根據權利要求5所述的裝置,其特征在于,所述裝置還包括:
第一加密模塊,用于對所述第一預設代碼和/或所述第二預設代碼進行加密。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京梆梆安全科技有限公司,未經北京梆梆安全科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810146265.0/1.html,轉載請聲明來源鉆瓜專利網。





