[發明專利]數據保護方法及裝置有效
| 申請號: | 201610929145.9 | 申請日: | 2016-10-31 |
| 公開(公告)號: | CN108021791B | 公開(公告)日: | 2021-08-10 |
| 發明(設計)人: | 張帆 | 申請(專利權)人: | 騰訊科技(深圳)有限公司 |
| 主分類號: | G06F21/14 | 分類號: | G06F21/14 |
| 代理公司: | 北京派特恩知識產權代理有限公司 11270 | 代理人: | 張穎玲;蔣雅潔 |
| 地址: | 518000 廣東省深圳*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據 保護 方法 裝置 | ||
1.一種數據保護方法,其特征在于,所述方法包括:
在源代碼的關鍵函數中添加異常指令;
在添加有所述異常指令的源代碼中添加反調試代碼,生成帶有反調試功能的代碼;
通過編譯帶有所述反調試代碼、以及所述異常指令的所述源代碼,生成帶有反調試功能的程序;
所述程序開始運行時,所述程序的主進程創建子進程并由所述子進程調試所述主進程,當所述主進程運行到所述異常指令后停止運行;
所述子進程接收到異常信號時,判斷所述主進程是否被其他調試器調試;
若所述主進程被其他調試器調試,向所述主進程發送終止信號,由所述主進程依據所述終止信號終止運行;
若所述主進程未被其他調試器調試,檢測所述主進程停止運行的原因;
當檢測到所述主進程停止運行的原因是因所述主進程的源代碼而產生時,向所述主進程發送恢復信號,恢復所述主進程繼續運行;
當檢測到所述主進程停止運行的原因是因所述主進程的異常指令而產生時,將所述主進程的異常指令恢復為正常指令并恢復所述主進程運行。
2.根據權利要求1所述的方法,其特征在于,所述程序的主進程創建子進程,包括:
所述程序的主進程先進入反調試初始化函數;
所述主進程基于所述反調試初始化函數查找編譯前添加的空函數對應的空函數指針,并創建子進程,以由所述子進程使用預設系統函數調試所述主進程。
3.根據權利要求1所述的方法,其特征在于,所述檢測所述主進程停止運行的原因,包括:
基于所述異常信號獲取錯誤函數指針地址;
根據所述錯誤函數指針地址判斷所述主進程停止運行的原因。
4.根據權利要求3所述的方法,其特征在于,所述將主進程的異常指令恢復為正常指令并恢復所述主進程運行,包括:
將所述錯誤函數指針修復為空函數指針,并向主進程發送恢復信號,恢復所述主進程運行。
5.根據權利要求4所述的方法,其特征在于,所述將所述錯誤函數指針修復為空函數指針,包括:
獲取主進程的當前寄存器列表;
將所述寄存器列表中程序計數器寄存器值由所述錯誤函數指針修復為通過反調試初始化函數中獲取的空函數指針;
將修復后的寄存器列表通過系統調用再設置回主進程,所述主進程基于所述修復后的寄存器列表從所述空函數開始執行。
6.根據權利要求1所述的方法,其特征在于,所述在源代碼的關鍵函數中添加異常指令,包括:
獲取函數列表;其中,所述函數列表中存儲有需保護的關鍵函數的函數標識;
基于函數列表確定源代碼的關鍵函數;
在所述源代碼的關鍵函數中添加預設錯誤函數指針以及對所述預設錯誤函數指針的調用。
7.根據權利要求1所述的方法,其特征在于,所述在添加有所述異常指令的源代碼中添加反調試代碼,包括:
將反調試靜態庫文件對應的反調試代碼以及反調試頭文件對應的反調試代碼引入源代碼;
在所述源代碼中添加對反調試初始化函數的調用;
在所述源代碼中添加空函數。
8.根據權利要求7所述的方法,其特征在于,所述將反調試靜態庫文件對應的反調試代碼以及反調試頭文件對應的反調試代碼引入源代碼,包括:
將反調試靜態庫文件以及反調試頭文件放入源代碼中;
通過修改源代碼的第一源文件的方式將所述反調試靜態庫文件對應的反調試代碼以及所述反調試頭文件對應的反調試代碼引入到源代碼中;其中,所述第一源文件中記錄有所述源代碼中各類文件的編譯順序以及需要編譯的文件。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于騰訊科技(深圳)有限公司,未經騰訊科技(深圳)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610929145.9/1.html,轉載請聲明來源鉆瓜專利網。
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





