欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種結(jié)合全量型檢查點與增量型重做的目標程序逆向執(zhí)行實現(xiàn)方法與流程

文檔序號:11432179閱讀:301來源:國知局
一種結(jié)合全量型檢查點與增量型重做的目標程序逆向執(zhí)行實現(xiàn)方法與流程

本發(fā)明涉及程序逆向執(zhí)行,尤其涉及一種結(jié)合全量型檢查點與增量型重做的目標程序逆向執(zhí)行實現(xiàn)方法。



背景技術(shù):

傳統(tǒng)的軟件調(diào)試方法已經(jīng)逐漸不能滿足用戶的需求了,基于模擬器的負載程序逆向執(zhí)行、調(diào)試越來越得到工程師與研究人員的關(guān)注。負載逆向執(zhí)行功能能夠幫助開發(fā)者調(diào)試程序,當開發(fā)者需要讓程序回退時,不必從頭開始執(zhí)行,而是可以讓程序從當前位置進行回退,從而減少了程序調(diào)試的時間。

傳統(tǒng)的軟件逆向執(zhí)行方法,通常是通過保存全量型檢查點的方法來保存系統(tǒng)狀態(tài),然后通過恢復到保存時間較早的檢查點將系統(tǒng)恢復到時間較早的狀態(tài),以達到程序回退的功能。但是由于一個全量型檢查點需要占用較大的磁盤空間,導致對全量型檢查點的個數(shù)有限,所以這種軟件回退的方法是一種粗粒度的回退。當對軟件回退的精度要求很高時,比如逆向單步,那么這種方法顯然就滿足不了要求。為了應(yīng)對這種場景,一種可行的方法是采取逆操作的方法,然而這種方法在代碼上不易實現(xiàn)、維護困難,給工程帶來了具大的挑戰(zhàn)。



技術(shù)實現(xiàn)要素:

本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種新的負載逆向執(zhí)行功能的實現(xiàn)。

本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的:一種結(jié)合全量型檢查點與增量型重做的目標程序逆向執(zhí)行功能實現(xiàn)方法,具體包括如下步驟:

(1)加載目標程序到模擬器。

(2)生成第一個全量型檢查點,全量型檢查點記錄的內(nèi)容包括cpu狀態(tài)、內(nèi)存狀態(tài)和系統(tǒng)時鐘,將第一個全量型檢查點記錄的內(nèi)容作為模擬器的初始狀態(tài)。

(3)開始執(zhí)行目標程序,每次向前迭代一個時鐘,且每隔一定的系統(tǒng)時鐘數(shù)生成一個全量型檢查點,保存相應(yīng)時刻的全量型檢查點,將這些全量型檢查點作為模擬器的對應(yīng)時刻的狀態(tài)。

(4)在執(zhí)行過程中,遇到斷點時目標程序暫停執(zhí)行,用戶可選擇逆向單步執(zhí)行,首先,下一次目標程序暫停時的時鐘數(shù)為當前時鐘數(shù)減一,其次,模擬器恢復到最近的一個已保存狀態(tài),即從最近生成的一個全量型檢查點中,恢復cpu狀態(tài)、內(nèi)存狀態(tài)和系統(tǒng)時鐘;然后,模擬器從恢復的狀態(tài)開始繼續(xù)正向執(zhí)行程序,并且判斷當前的系統(tǒng)時鐘數(shù)是否與下一次目標程序暫停的時鐘數(shù)一致,若一致則表示逆向單步執(zhí)行完畢,否則目標程序繼續(xù)正向執(zhí)行。

本發(fā)明的有益效果是,在正確實現(xiàn)功能的基礎(chǔ)上,使得檢查點記錄的量與系統(tǒng)恢復速度之間有一個較好的平衡,即在時間效率與空間效率上取得一個較好的平衡:

(1)定期保存全量型檢查點,可使模擬器迅速恢復到某個時刻的狀態(tài)。在正向執(zhí)行的過程中,模擬器每隔一定的時鐘數(shù)就記錄一個全量型檢查點,保存整個系統(tǒng)的狀態(tài),并將這些檢查點持久化到磁盤中,可供未來恢復系統(tǒng)狀時使用。兩個檢查點之間間隔的時鐘數(shù)越少,則整個系統(tǒng)記錄的檢查點個數(shù)就越多,在恢復系統(tǒng)狀態(tài)時,可供選擇的系統(tǒng)狀態(tài)就越多,但占用的磁盤空間也越大。所以,兩次檢查點之間間隔的時鐘數(shù)需要根據(jù)具體的系統(tǒng),在實踐中獲得。檢查點保存的內(nèi)容也需根據(jù)具體的系統(tǒng)來確定,但一些必不可少的要素有:內(nèi)存的狀態(tài),cpu的態(tài),全局變量的狀態(tài)等。其中內(nèi)存不必保存整個內(nèi)存空間的狀態(tài),只需要保存被使用過的內(nèi)存頁即可,cpu的狀主要包括一些通過寄存器和控制、狀態(tài)寄存器等。全局變量主要包括虛擬化系統(tǒng)在實現(xiàn)時用到的一些全局變量,比如延遲槽的狀態(tài),日志文件的當前讀寫位置等。

(2)通過增量型重做,可使模擬器迅速恢復到兩個檢查點之間任何一個時刻的狀態(tài)。全量型的檢查點只能讓模擬器恢復到某個時鐘的狀態(tài),比如第0個時鐘的狀態(tài),第n個時鐘的狀態(tài),第n*2個時鐘的狀態(tài),第n*3個時鐘的狀態(tài)等等,并不能讓我們隨意恢復到任意一個時鐘比如第n+9個時鐘時的狀態(tài)。通過增量型的重做技術(shù),就可以讓模擬器的狀態(tài)恢復到兩個檢查點之間的任意一個時鐘的狀態(tài)。比如系統(tǒng)處在第n個時鐘,要恢復到第n+9個時鐘的狀,只需要重新執(zhí)行一次n+1、n+2、n+2、n+4、n+5、n+6、n+7、n+8個時鐘時指令即可。

(3)結(jié)合全量型檢查點與增量型重做,可使模擬器迅速恢復到之前任何一個時鐘的狀態(tài),從而達到軟件逆向執(zhí)行的功能。無論當前模擬器處于任何一個時鐘,都可以迅速恢復到這之前的任何一個時鐘的狀,其方法是:選擇要恢復到的那個時鐘之前的一個離它最近的全量型檢查點,恢復該檢查點的系統(tǒng)狀態(tài),然后從該點開始正向執(zhí)行,直到系統(tǒng)時鐘數(shù)與我們要恢復的時鐘數(shù)相等為止。

附圖說明

圖1表示了逆向單步的方法流程圖;

圖2是整個模擬器中全量型檢查點示意圖;

圖3是兩個相鄰的全量型檢查點示意圖;

圖4是逆向單步功能的方法示意圖。

具體實施方式

下面結(jié)合附圖對本發(fā)明做進一步的說明。

如圖1所示,一種結(jié)合全量型檢查點與增量型重做的目標程序逆向執(zhí)行實現(xiàn)方法,具體包括如下步驟:

(1)加載目標程序,解析該目標文件,得到程序代碼段,以及程序的入口點。記錄下該入口點,其為程序運行的第一條指令。

(2)生成第一個全量型檢查點,全量型檢查點記錄的內(nèi)容包括cpu狀態(tài)、內(nèi)存狀態(tài)和系統(tǒng)時鐘,將全量型檢查點記錄的內(nèi)容作為模擬器的初始狀態(tài),初始狀態(tài)下cpu的pc寄存器為步驟(1)得到的程序入口點,其余寄存器清零,內(nèi)存清零,初始時鐘數(shù)清零。

(3)開始執(zhí)行目標程序,每次向前迭代一個時鐘,且每隔一定的系統(tǒng)時鐘數(shù),比如n個時鐘,生成一個全量型檢查點,保存相應(yīng)時刻的全量型檢查點,將這些全量型檢查點作為模擬器的對應(yīng)時刻的狀態(tài)。如圖2所示,模擬器將在第0個時鐘、第n個時鐘、第2*n個時鐘等處各生成一個全量型檢查點,保存相應(yīng)時刻的模擬器狀態(tài)。檢查點通過寫二進制文件將其持久化到磁盤中。由于整個內(nèi)存空間較大,而實際使用到的內(nèi)存只占很小的一部分,所以在保存內(nèi)存狀態(tài)時只需要保存被使用過的內(nèi)存頁即可,其余未使用到的內(nèi)存單元視其值為零。

(4)如圖3、4所示,目標程序在執(zhí)行過程中,在t時鐘處遇到斷點,此時目標程序暫停執(zhí)行,用戶可選擇逆向單步執(zhí)行,首先,下一次目標程序暫停時的時鐘數(shù)為當前時鐘數(shù)減一,即t-1,其次,模擬器恢復到最近的一個已保存狀態(tài),即從最近生成的一個全量型檢查點n中,恢復cpu狀態(tài)、內(nèi)存狀態(tài)和系統(tǒng)時鐘;然后,模擬器從恢復的狀態(tài)開始繼續(xù)正向執(zhí)行程序,并且判斷當前的系統(tǒng)時鐘數(shù)是否與下一次目標程序暫停的時鐘數(shù)t-1一致,若一致則表示逆向單步執(zhí)行完畢,否則目標程序繼續(xù)正向執(zhí)行。



技術(shù)特征:

技術(shù)總結(jié)
本發(fā)明公開了一種結(jié)合全量型檢查點與增量型重做技術(shù)的逆向執(zhí)行功能實現(xiàn),主要思想是:(1)通過定期保存全量型檢查點,使系統(tǒng)迅速恢復到某個時刻的狀態(tài);(2)通過增量型重做,可以使系統(tǒng)恢復到兩個檢查點之間的任何一個時刻的狀態(tài)。(3)結(jié)合全量型檢查點,使系統(tǒng)恢復到之前的任何一個時刻的狀態(tài),從而實現(xiàn)負載逆向執(zhí)行的功能。通過結(jié)合全量型檢查點與增量型重做,可以彌補傳統(tǒng)全量型檢查點帶來的記錄內(nèi)容量過大的問題,同時也避免了采用逆操作等方法帶來的實現(xiàn)不優(yōu)雅、易出錯、不易維護調(diào)試等問題。本發(fā)明在正確實現(xiàn)功能的基礎(chǔ)上,使得檢查點記錄的量與系統(tǒng)恢復速度之間有一個較好的平衡,即在時間效率與空間效率上取得一個較好的平衡。

技術(shù)研發(fā)人員:盧建鵬
受保護的技術(shù)使用者:浙江大學
技術(shù)研發(fā)日:2017.03.16
技術(shù)公布日:2017.08.29
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
农安县| 封丘县| 鄂尔多斯市| 抚顺县| 孝义市| 浦北县| 土默特右旗| 云浮市| 九台市| 天长市| 安徽省| 萍乡市| 攀枝花市| 宁都县| 隆回县| 姚安县| 中卫市| 三河市| 康乐县| 德钦县| 大同市| 元阳县| 陆川县| 龙南县| 荣昌县| 武义县| 资源县| 大姚县| 枝江市| 沐川县| 丽水市| 宾阳县| 东宁县| 石阡县| 寿阳县| 宣威市| 石城县| 邢台市| 密云县| 册亨县| 昌黎县|