基于QEMU的動(dòng)態(tài)函數(shù)調(diào)用跟蹤
文內(nèi)圖片:
圖片說明: 使用而不是再重新翻譯.而考慮到避免在控制代碼和客戶機(jī)代碼之間因?yàn)榻?jīng)常跳轉(zhuǎn)所帶來的開銷,QEMU又使用了塊鏈接的機(jī)制,即翻譯好代碼塊后就嘗試將其與之前的翻譯塊鏈接起來,如果之前的翻譯塊與這個(gè)將要執(zhí)行的翻譯塊的客戶機(jī)代碼不跨內(nèi)存分頁(yè)的話,則在它們之間建立直接跳轉(zhuǎn),形成鏈表,這樣大部分的跳轉(zhuǎn)是在翻譯塊之間進(jìn)行的,它們處于同一個(gè)運(yùn)行時(shí)上下文,因此沒有返回QEMU代碼時(shí)所需的切換上下文等復(fù)雜的操作[10],如圖1所示:Fig.1QEMUblockchaining圖1QEMU塊鏈接示意圖QEMU的運(yùn)行流程是啟動(dòng)后從客戶機(jī)的第1條代碼開始,首先查看客戶機(jī)當(dāng)前的指令指針(programcounter,PC)對(duì)應(yīng)的翻譯塊是否在翻譯緩存中,如果沒有的話則進(jìn)行翻譯,并加入翻譯緩存后再執(zhí)行;否則直接執(zhí)行緩存好的代碼,如此循環(huán),如圖2所示:Fig.2QEMUexecutionflowchart圖2QEMU運(yùn)行流程圖本文要解決的核心問題是:如何在多種平臺(tái)下如x86和ARM中動(dòng)態(tài)地獲取函數(shù)調(diào)用與返回的信息,生成函數(shù)調(diào)用關(guān)系數(shù)據(jù),保證完整和全面;同時(shí)考慮到性能,提高執(zhí)行速度,減少模擬速度慢導(dǎo)致的軟件運(yùn)行異常.1.2設(shè)計(jì)思路如1.1節(jié)所述,QEMU模擬器使用動(dòng)態(tài)二進(jìn)制翻譯技術(shù),,所有指令在執(zhí)行前都會(huì)被翻譯,所以可以通過在翻譯時(shí)識(shí)別函數(shù)調(diào)用和返回指令,對(duì)代碼塊進(jìn)行標(biāo)記.在執(zhí)行這些塊之前使用QEMU提供的API獲取如時(shí)間、讀取客戶機(jī)內(nèi)存中的進(jìn)程標(biāo)識(shí)、線程標(biāo)志等信息,利用QEMU已有的輸出日志功能保存到文件中.其中需要額外注意的是信息的完整和全面性問
文內(nèi)圖片:
圖片說明: 因此沒有返回QEMU代碼時(shí)所需的切換上下文等復(fù)雜的操作[10],如圖1所示:Fig.1QEMUblockchaining圖1QEMU塊鏈接示意圖QEMU的運(yùn)行流程是啟動(dòng)后從客戶機(jī)的第1條代碼開始,首先查看客戶機(jī)當(dāng)前的指令指針(programcounter,PC)對(duì)應(yīng)的翻譯塊是否在翻譯緩存中,如果沒有的話則進(jìn)行翻譯,并加入翻譯緩存后再執(zhí)行;否則直接執(zhí)行緩存好的代碼,如此循環(huán),如圖2所示:Fig.2QEMUexecutionflowchart圖2QEMU運(yùn)行流程圖本文要解決的核心問題是:如何在多種平臺(tái)下如x86和ARM中動(dòng)態(tài)地獲取函數(shù)調(diào)用與返回的信息,生成函數(shù)調(diào)用關(guān)系數(shù)據(jù),保證完整和全面;同時(shí)考慮到性能,提高執(zhí)行速度,減少模擬速度慢導(dǎo)致的軟件運(yùn)行異常.1.2設(shè)計(jì)思路如1.1節(jié)所述,QEMU模擬器使用動(dòng)態(tài)二進(jìn)制翻譯技術(shù),所有指令在執(zhí)行前都會(huì)被翻譯,所以可以通過在翻譯時(shí)識(shí)別函數(shù)調(diào)用和返回指令,對(duì)代碼塊進(jìn)行標(biāo)記.在執(zhí)行這些塊之前使用QEMU提供的API獲取如時(shí)間、讀取客戶機(jī)內(nèi)存中的進(jìn)程標(biāo)識(shí)、線程標(biāo)志等信息,利用QEMU已有的輸出日志功能保存到文件中.其中需要額外注意的是信息的完整和全面性問題,QEMU原本的塊鏈接機(jī)制會(huì)造成其中的一些函數(shù)調(diào)用由于沒有返回到主控代碼中而無法輸出到日志中,因此需要禁用塊鏈接,每次執(zhí)行翻譯塊之后都會(huì)返回控制代碼中檢查是否發(fā)生了函數(shù)調(diào)用或返回,保證能夠獲取到所有的函數(shù)調(diào)用關(guān)系.Fig.3Dynamicfunctioncalltracingarchitecturedesign圖3動(dòng)態(tài)函數(shù)調(diào)用跟蹤的
【作者單位】: 清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系;北京理工大學(xué)計(jì)算機(jī)學(xué)院;
【基金】:“核高基”國(guó)家科技重大專項(xiàng)基金項(xiàng)目(2012ZX01039-004-41,2012ZX01039-003)~~
【分類號(hào)】:TP316.81
【參考文獻(xiàn)】
相關(guān)期刊論文 前2條
1 賈荻;向勇;孫衛(wèi)真;曹睿東;;基于數(shù)據(jù)庫(kù)的在線函數(shù)調(diào)用圖工具[J];小型微型計(jì)算機(jī)系統(tǒng);2016年03期
2 劉雨辰;王佳;陳云霽;焦帥;;計(jì)算機(jī)系統(tǒng)模擬器研究綜述[J];計(jì)算機(jī)研究與發(fā)展;2015年01期
【共引文獻(xiàn)】
相關(guān)期刊論文 前3條
1 向勇;曹睿東;毛英明;;基于QEMU的動(dòng)態(tài)函數(shù)調(diào)用跟蹤[J];計(jì)算機(jī)研究與發(fā)展;2017年07期
2 金濤;劉淑芬;齊紅;;無人艇保衛(wèi)目標(biāo)的仿真技術(shù)[J];吉林大學(xué)學(xué)報(bào)(理學(xué)版);2017年01期
3 曹立勇;姚程寬;盧燦舉;光峰;張新華;;硬件模擬器對(duì)仿真加速的測(cè)試平臺(tái)研究[J];西昌學(xué)院學(xué)報(bào)(自然科學(xué)版);2016年02期
【二級(jí)參考文獻(xiàn)】
相關(guān)期刊論文 前9條
1 向勇;湯衛(wèi)東;杜香燕;孫衛(wèi)真;;基于內(nèi)核跟蹤的動(dòng)態(tài)函數(shù)調(diào)用圖生成方法[J];計(jì)算機(jī)應(yīng)用研究;2015年04期
2 孫衛(wèi)真;杜香燕;向勇;湯衛(wèi)東;侯鴻儒;;基于RTL的函數(shù)調(diào)用圖生成工具CG-RTL[J];小型微型計(jì)算機(jī)系統(tǒng);2014年03期
3 方錦清;;大數(shù)據(jù)浪潮沖擊下網(wǎng)絡(luò)科學(xué)與工程面臨的挑戰(zhàn)與機(jī)遇[J];自然雜志;2013年05期
4 仰燕蘭;葉樺;費(fèi)樹岷;;車輛定位監(jiān)控系統(tǒng)數(shù)據(jù)庫(kù)的設(shè)計(jì)與優(yōu)化[J];東南大學(xué)學(xué)報(bào)(自然科學(xué)版);2010年S1期
5 孟祥福;馬宗民;嚴(yán)麗;張霄雁;;一種基于知識(shí)的關(guān)系數(shù)據(jù)庫(kù)模糊查詢方法[J];東北大學(xué)學(xué)報(bào)(自然科學(xué)版);2009年03期
6 陳偉清;劉彥花;;城市規(guī)劃多源數(shù)據(jù)整合與數(shù)據(jù)庫(kù)建設(shè)[J];廣西大學(xué)學(xué)報(bào)(自然科學(xué)版);2009年01期
7 劉如九;張振山;柴天佑;;一種通用的多數(shù)據(jù)庫(kù)間數(shù)據(jù)抽取方法及應(yīng)用[J];北京交通大學(xué)學(xué)報(bào);2008年04期
8 孟祥福;馬宗民;嚴(yán)麗;;數(shù)據(jù)庫(kù)模糊查詢結(jié)果自動(dòng)排序方法[J];東北大學(xué)學(xué)報(bào)(自然科學(xué)版);2008年07期
9 李越,錢德沛;基于NS的分布式并行網(wǎng)絡(luò)模擬器[J];電子學(xué)報(bào);2004年02期
【相似文獻(xiàn)】
相關(guān)期刊論文 前10條
1 王詠武;遠(yuǎn)程函數(shù)調(diào)用的原理與實(shí)現(xiàn)步驟[J];中國(guó)金融電腦;2001年09期
2 李玉斌;API函數(shù)在Visual Basic中的應(yīng)用[J];電子科技;2005年03期
3 劉志芳;杜瑞慶;;淺談C語(yǔ)言中函數(shù)入門的講解[J];中國(guó)科技信息;2007年13期
4 張鋒;;淺談C++中的虛函數(shù)[J];湖南工業(yè)職業(yè)技術(shù)學(xué)院學(xué)報(bào);2008年01期
5 李艷芳;;C語(yǔ)言函數(shù)的教學(xué)探討[J];湖南科技學(xué)院學(xué)報(bào);2009年12期
6 潘莉;;C語(yǔ)言函數(shù)教學(xué)探討[J];科技信息;2011年10期
7 黎路;;C語(yǔ)言函數(shù)教學(xué)探析[J];福建電腦;2011年11期
8 鄭麗英;C~(++)的多態(tài)機(jī)制及虛函數(shù)實(shí)現(xiàn)技術(shù)[J];甘肅工業(yè)大學(xué)學(xué)報(bào);1995年02期
9 郭招娣;API函數(shù)在VB中的應(yīng)用[J];計(jì)算機(jī)應(yīng)用與軟件;2003年09期
10 石小云;C語(yǔ)言函數(shù)疑難問題探索[J];株洲師范高等專科學(xué)校學(xué)報(bào);2004年02期
相關(guān)會(huì)議論文 前1條
1 潘新紅;李慶忠;;用結(jié)構(gòu)化函數(shù)內(nèi)聯(lián)方法處理結(jié)構(gòu)上遞歸的NewsML查詢[A];全國(guó)第十五屆計(jì)算機(jī)科學(xué)與技術(shù)應(yīng)用學(xué)術(shù)會(huì)議論文集[C];2003年
相關(guān)重要報(bào)紙文章 前5條
1 北京信息工程學(xué)院 張澤虹;C函數(shù)編程技巧[N];中國(guó)電腦教育報(bào);2006年
2 孫顧天 笨笨;深入理解函數(shù)和過程的精髓[N];電腦報(bào);2008年
3 鄭州 牛霜霞;用MFC編制Windows打印程序[N];中國(guó)計(jì)算機(jī)報(bào);2000年
4 廣東 林志航;PB調(diào)用API函數(shù)技巧三則[N];電腦報(bào);2001年
5 航天部二院 陳峰;OpenGL中文本的顯示[N];計(jì)算機(jī)世界;2000年
相關(guān)碩士學(xué)位論文 前10條
1 劉陽(yáng);函數(shù)抽取重構(gòu)的檢測(cè)與分析[D];北京理工大學(xué);2015年
2 譚慧;內(nèi)核函數(shù)執(zhí)行時(shí)間和路徑的分析展現(xiàn)[D];北京理工大學(xué);2014年
3 繆小川;基于敏感路徑識(shí)別的安卓應(yīng)用安全性分析方法[D];南京大學(xué);2016年
4 楊羨環(huán);基于函數(shù)調(diào)用序列的漏洞定位方法研究[D];華中科技大學(xué);2013年
5 杜香燕;支持路由協(xié)議分析的內(nèi)核函數(shù)調(diào)用圖工具設(shè)計(jì)[D];首都師范大學(xué);2014年
6 湯衛(wèi)東;動(dòng)態(tài)函數(shù)調(diào)用分析及其在內(nèi)核模塊逆向工程的應(yīng)用[D];清華大學(xué);2014年
7 趙丹;基于靜態(tài)類型分析的Java程序函數(shù)調(diào)用圖構(gòu)建方法研究[D];湖南大學(xué);2006年
8 劉星;基于函數(shù)調(diào)用圖的惡意代碼同源分析[D];國(guó)防科學(xué)技術(shù)大學(xué);2012年
9 黃雙玲;面向C/C++程序函數(shù)調(diào)用關(guān)系的靜態(tài)分析方法研究[D];中國(guó)科學(xué)技術(shù)大學(xué);2015年
10 張苗;進(jìn)化測(cè)試中嵌套If-Else和函數(shù)調(diào)用結(jié)構(gòu)的適值函數(shù)設(shè)計(jì)[D];西安電子科技大學(xué);2008年
本文編號(hào):2513149
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2513149.html