[發明專利]反編譯過程中的堆棧跟蹤方法、裝置及反編譯器有效
| 申請號: | 201010545429.0 | 申請日: | 2010-11-16 |
| 公開(公告)號: | CN101976187A | 公開(公告)日: | 2011-02-16 |
| 發明(設計)人: | 陳耿標;林毓雙 | 申請(專利權)人: | 廣州迪慶電子科技有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30;G06F9/45 |
| 代理公司: | 廣州華進聯合專利商標代理有限公司 44224 | 代理人: | 黃曉慶;王茹 |
| 地址: | 510000 廣東省廣州市天*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 反編譯 過程 中的 堆棧 跟蹤 方法 裝置 編譯器 | ||
1.一種反編譯過程中的堆棧跟蹤方法,其特征在于,包括步驟:
順序執行指令,根據每條指令對堆棧指針寄存器ESP的值的影響,對預設整型變量進行相應的加減操作,所述預設整型變量用以表示系統當前ESP寄存器的值與函數入口處系統ESP寄存器的值之間的偏移量。
2.根據權利要求1所述的反編譯過程中的堆棧跟蹤方法,其特征在于,所述根據每條指令對堆棧指針寄存器ESP的值的影響、對預設整型變量進行相應的加減操作具體包括:
當運行到push指令時,將該push指令壓棧的數據保存到預定數組結構中的一個空數組元素結構體內,并將該push指令執行前的預設整形變量的值保存到該元素結構體中,以該預設整形變量的值作為該數組元素的索引;
當運行到pop指令時,將該pop指令執行后的堆棧寄存器ESP的值作為索引值,對所述預定數組結構進行檢索查詢,查詢到預設整形變量值與該pop指令執行后的堆棧寄存器ESP的值相匹配的數組元素結構體,獲得該數組元素結構體的入棧元素并賦值給所述pop指令的操作數;
當運行到系統調用指令時,根據調用約定,對預設整形變量進行相應的加減操作;
當運行到跳轉指令時,保存該跳轉指令執行時堆棧寄存器ESP的值以及該跳轉指令需跳轉到的地址值,并在最后一條指令地址小于跳轉地址的返回指令處恢復預設整形變量值,然后繼續執行后續指令。
3.根據權利要求2所述的反編譯過程中的堆棧跟蹤方法,其特征在于,在所述獲得該數組元素結構體的入棧元素并賦值給所述pop指令的操作數后,還包括步驟:清空該數組元素結構體內的所有數據。
4.根據權利要求1至3任意一項所述的反編譯過程中的堆棧跟蹤方法,其特征在于,還包括步驟:當運行到一條指令地址大于所有跳轉地址的返回指令時,結束堆棧跟蹤操作。
5.根據權利要求1至3任意一項所述的反編譯過程中的堆棧跟蹤方法,其特征在于:所述反編譯過程為C反編譯器中的C反編譯過程
6.一種反編譯過程中的堆棧跟蹤裝置,其特征在于,包括:
指令執行單元,用于順序執行指令;
堆棧跟蹤單元,用于根據每條指令對堆棧指針寄存器ESP的值的影響,對預設整型變量進行相應的加減操作,所述預設整型變量用以表示系統當前ESP寄存器的值與函數入口處系統ESP寄存器的值之間的偏移量。
7.根據權利要求6所述的反編譯過程中的堆棧跟蹤裝置,其特征在于,所述堆棧跟蹤單元根據每條指令對堆棧指針寄存器ESP的值的影響、對預設整型變量進行相應的加減操作具體包括:
在遇到push指令時,將push指令壓棧的數據保存到預定數組結構中的一個空數組元素結構體內,并將該push指令執行前的預設整形變量保存到該元素結構體中,以該預設整形變量作為該數組元素的索引;
在遇到pop指令時,將該pop指令執行后的堆棧寄存器ESP的值作為索引值,對所述預定數組結構進行檢索,查詢到預設整形變量與該pop指令執行后的堆棧寄存器ESP的值相匹配的數組元素結構體,獲得該數組元素結構體的入棧元素并賦值給所述pop指令的操作數;
在遇到系統調用指令時,根據調用約定,對預設整形變量進行相應的加減操作;
在遇到跳轉指令時,保存該跳轉指令執行時堆棧寄存器ESP的值以及該跳轉指令需跳轉到的地址值,并在最后一條指令地址小于跳轉地址的返回指令處恢復預設整形變量值,然后繼續執行后續指令。
8.根據權利要求7所述的反編譯過程中的堆棧跟蹤裝置,其特征在于,所述堆棧跟蹤單元在所述獲得該數組元素結構體的入棧元素并賦值給所述pop指令的操作數后,還用于清空該數組元素結構體內的所有數據。
9.根據權利要求6至8任意一項所述的反編譯過程中的堆棧跟蹤裝置,其特征在于:
所述堆棧跟蹤單元,還用于在運行到一條指令地址大于所有跳轉地址的返回指令時,結束堆棧跟蹤操作;
和/或
所述反編譯器為C反編譯器。
10.一種反編譯器,其特征在于,其包括如上述權利要求6至9任意一項所述的反編譯過程中的堆棧跟蹤裝置。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣州迪慶電子科技有限公司,未經廣州迪慶電子科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010545429.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種數據存儲方法
- 下一篇:筆記本電腦觸摸板結構





