[發明專利]一種仿真運行可執行文件時抓取現場的方法及計算設備在審
| 申請號: | 202211314934.3 | 申請日: | 2022-10-26 |
| 公開(公告)號: | CN115374017A | 公開(公告)日: | 2022-11-22 |
| 發明(設計)人: | 葉業順 | 申請(專利權)人: | 統信軟件技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京瀚方律師事務所 11774 | 代理人: | 姜瑩 |
| 地址: | 100176 北京市大興區北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 仿真 運行 可執行文件 抓取 現場 方法 計算 設備 | ||
1.一種仿真運行可執行文件時抓取現場的方法,在計算設備中執行,所述計算設備中包括第一架構處理器,并運行有第一操作系統;
所述第一操作系統上布置有仿真器以及第二操作系統的兼容層,以便通過所述仿真器仿真運行所述兼容層、并基于兼容層運行第二操作系統的第二應用程序;
所述方法包括:
通過所述仿真器,將所述第二應用程序的可執行文件的第二架構指令轉換為第一架構指令,由所述第一架構處理器執行,所述第一架構處理器的第一寄存器指向第二架構現場結構體;
在所述第一架構處理器的中斷現場,獲取輸入的第一調試擴展命令并執行,以偵測所述中斷現場的第二架構現場結構體上下文,基于所述第二架構現場結構體上下文中的第二寄存器進行棧回溯,以便獲取第二架構現場的調用棧;以及
在所述第一架構處理器的中斷現場,獲取輸入的第二調試擴展命令并執行,以偵測所述中斷現場的第二架構現場結構體上下文,獲取第二架構現場的寄存器信息。
2.如權利要求1所述的方法,其中,在基于所述第二架構現場結構體上下文中的第二寄存器進行棧回溯之前,包括:
基于所述第一架構處理器的第一寄存器,獲取所述第二架構現場結構體。
3.如權利要求1所述的方法,其中,所述兼容層適于加載所述可執行文件,并收集所述兼容層中預先置入的符號信息;在通過所述仿真器,將所述第二應用程序的可執行文件的第二架構指令轉換為第一架構指令之前,包括:
所述仿真器接收所述兼容層發送的符號信息;
在獲取第二架構現場的調用棧之后,包括:
將所述符號信息與所述調用棧進行匹配,以得到第二架構現場的帶符號調用棧。
4.如權利要求3所述的方法,其中,通過所述仿真器,將所述第二應用程序的可執行文件的第二架構指令轉換為第一架構指令,包括:
通過調試工具對所述仿真器進行調試,并通過所述仿真器,將所述第二應用程序的可執行文件的第二架構指令轉換為第一架構指令。
5.如權利要求4所述的方法,其中,在通過所述仿真器,將所述第二應用程序的可執行文件的第二架構指令轉換為第一架構指令之前,包括:
所述仿真器接收所述調試工具發送的獲取第二架構現場的請求;
所述方法還包括:
將所述第二架構現場的帶符號調用棧和所述第二架構現場的寄存器信息,返回至所述調試工具。
6.如權利要求1-5中任一項所述的方法,其中,通過所述仿真器,將所述第二應用程序的可執行文件的第二架構指令轉換為第一架構指令,由所述第一架構處理器執行,還包括:
所述仿真器攔截執行所述第一架構指令時調用的函數,并將所述函數封裝后轉發到第一操作系統。
7.如權利要求1-5中任一項所述的方法,其中,所述第一寄存器為r0寄存器,所述第二寄存器為ebp寄存器。
8.如權利要求1-5中任一項所述的方法,其中,
所述第一架構為ARM架構,所述第二架構為X86架構;
所述第一操作系統為Linux操作系統,所述第二操作系統為Windows操作系統。
9.一種計算設備,包括:
至少一個處理器;以及
存儲器,存儲有程序指令,其中,所述程序指令被配置為適于由所述至少一個處理器執行,所述程序指令包括用于執行如權利要求1-8中任一項所述的方法的指令。
10.一種存儲有程序指令的可讀存儲介質,當所述程序指令被計算設備讀取并執行時,使得所述計算設備執行如權利要求1-8中任一項所述方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于統信軟件技術有限公司,未經統信軟件技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211314934.3/1.html,轉載請聲明來源鉆瓜專利網。





