[發明專利]調試方法和調試設備有效
| 申請號: | 201010142081.0 | 申請日: | 2010-04-06 |
| 公開(公告)號: | CN102214137A | 公開(公告)日: | 2011-10-12 |
| 發明(設計)人: | 李毅超;劉丹;陳沁源;劉澤鵬;仇冰雪;張大成 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 深圳市深佳知識產權代理事務所(普通合伙) 44285 | 代理人: | 彭愿潔;李文紅 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 調試 方法 設備 | ||
技術領域
本發明涉及計算機技術領域,具體涉及一種調試方法和調試設備。
背景技術
調試技術被廣泛運用于代碼分析、逆向工程領域、惡意代碼分析領域。對軟件進行調試,包含以下幾個方面的內容:一是對目標程序執行路徑下斷點,并使之能在執行時停下來;二是能對目標程序進行單步跟蹤;三是能夠提供目標程序運行時的豐富信息。
在對現有技術的研究和實踐過程中,本發明的發明人發現,目前較常用的調試方法是通過修改目標程序代碼來實現斷點機制,容易被反調試技術發現被修改的代碼并恢復目標程序,因此現有的調試方法隱蔽性較差。
發明內容
本發明實施例提供一種調試方法和調試設備,能夠在不修改目標程序代碼的情況下對目標程序進行調試,隱蔽性較高。
本發明實施例提供了一種調試方法,包括:
將系統處理器的中斷描述符表中,頁面屬性故障對應的故障處理函數地址,修改為自定義故障處理函數地址;
當目標程序出現指定的頁面屬性故障時,獲取目標程序的現場信息;
將獲取的現場信息保存到當前線程對應的虛擬執行緩沖區;
將所述虛擬執行緩沖區中的現場信息壓棧保存;
判斷目標程序擴展指令指針是否與出現故障的頁面的預置斷點地址匹配;
若匹配,則與用戶交互;
否則拷貝構造目標程序擴展指令指針所指向指令到當前線程對應的虛擬執行緩沖區;
從棧中彈出現場信息,執行所述虛擬執行緩沖區中的指令,并重復判斷目標程序擴展指令指針是否與預置斷點地址匹配。
本發明實施例還提供了一種調試設備,包括:
第一修改模塊,用于將系統處理器的中斷描述符表中,頁面屬性故障對應的故障處理函數地址,修改為自定義故障處理函數地址;
獲取模塊,用于當目標程序出現指定的頁面屬性故障時,獲取目標程序的現場信息;
第一保存模塊,用于將獲取的現場信息保存到當前線程對應的虛擬執行緩沖區;
第二保存模塊,用于將當前線程對應的虛擬執行緩沖區中的現場信息壓棧保存;
第一判斷模塊,用于判斷目標程序擴展指令指針是否與出現故障的頁面的預置斷點地址匹配,若匹配,則觸發交互模塊執行相關操作,否則觸發拷貝模塊執行相關操作;
交互模塊,用于與用戶交互;
拷貝模塊,用于拷貝構造目標程序擴展指令指針所指向指令到虛擬執行緩沖區;
執行模塊,用于從棧中彈出現場信息,執行虛擬執行緩沖區中的指令,并觸發第一判斷模塊執行相關操作。
從以上技術方案可以看出,本發明實施例具有如下有益效果:
本發明實施例中,通過修改頁面屬性故障對應的故障處理函數地址,使得在目標程序出現頁面屬性故障時,調試設備能夠截獲對目標程序的控制權,在截獲控制權后,調試設備將現場信息保存到當前線程對應的緩沖區并壓棧保存,再對目標程序的指令拷貝構造并執行,使目標程序運行到預置斷點位置,與用戶交互,讓用戶對目標程序進行調試,從而實現在不修改目標程序代碼的情況下對目標程序進行調試,隱蔽性較高。
附圖說明
圖1是本發明實施例中調試方法的一個實施例的示意圖;
圖2是本發明實施例中調試方法的另一實施例的示意圖;
圖3是本發明實施例中調試方法的另一實施例的多處理器流程示意圖;
圖4是本發明實施例中調試方法的另一實施例的多線程流程示意圖;
圖5是本發明實施例中調試方法的另一實施例的單步處理流程示意圖;
圖6是本發明實施例中調試方法的另一實施例的抗結構化異常處理流程示意圖;
圖7是本發明實施例中調試設備的一個實施例的示意圖;
圖8是本發明實施例中調試設備的另一實施例的示意圖。
具體實施方式
本發明實施例提供一種調試方法和調試設備。以下分別進行詳細說明。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010142081.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:電子書閱讀器與其信息收集方法
- 下一篇:一種生物質氣化燃燒環保鍋爐





