本發(fā)明涉及內(nèi)存監(jiān)測(cè),特別涉及一種內(nèi)存監(jiān)測(cè)系統(tǒng)、訪存時(shí)序記錄方法和內(nèi)存查看及修改方法。
背景技術(shù):
1、當(dāng)前越來(lái)越多的嵌入式設(shè)備,如路由器、調(diào)制解調(diào)器等,綜合采用固件加密、可信芯片保護(hù)、受限的shell工具集等手段,以達(dá)到隱藏文件系統(tǒng)、阻止用戶調(diào)試等目的,但是這給設(shè)備隱藏后門及潛在脆弱點(diǎn)分析工作帶來(lái)了很大的困難。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明所要解決的技術(shù)問(wèn)題是:提供一種內(nèi)存監(jiān)測(cè)系統(tǒng)、訪存時(shí)序記錄方法和內(nèi)存查看及修改方法,可以監(jiān)控設(shè)備的內(nèi)存讀寫操作并記錄時(shí)序關(guān)系,以支持固件加載流程分析,同時(shí)能夠?qū)υO(shè)備的內(nèi)存進(jìn)行主動(dòng)式讀寫,結(jié)合內(nèi)存補(bǔ)丁技術(shù),能夠?yàn)樵O(shè)備的動(dòng)態(tài)調(diào)試分析提供支撐。
2、為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的第一種技術(shù)方案為:
3、一種內(nèi)存監(jiān)測(cè)系統(tǒng),包括內(nèi)存底座、內(nèi)存信號(hào)接口、fpga控制模塊、主內(nèi)存模塊、備內(nèi)存模塊和usb接口模塊,所述fpga控制模塊分別與內(nèi)存信號(hào)接口、主內(nèi)存模塊、備內(nèi)存模塊和usb接口模塊電連接,所述usb接口模塊與外部分析設(shè)備電連接,所述內(nèi)存底座用于插接待分析設(shè)備的內(nèi)存信號(hào)接口,所述主內(nèi)存模塊用于供待分析設(shè)備正常讀寫,所述備內(nèi)存模塊用于供用戶讀取內(nèi)存數(shù)據(jù);
4、所述fpga控制模塊包括地址內(nèi)存模塊和數(shù)據(jù)內(nèi)存模塊,所述地址內(nèi)存模塊用于記錄cpu訪存地址,所述數(shù)據(jù)內(nèi)存模塊用于記錄cpu訪存數(shù)據(jù)。
5、本發(fā)明采用的第二種技術(shù)方案為:
6、一種內(nèi)存訪問(wèn)時(shí)序記錄方法,應(yīng)用于上述的內(nèi)存監(jiān)測(cè)系統(tǒng),包括以下步驟:
7、s1、接收待分析設(shè)備的cpu訪存信號(hào),并根據(jù)所述cpu訪存信號(hào)獲取cpu訪存地址;
8、s2、將所述cpu訪存地址寫入地址內(nèi)存模塊中地址為訪存順序號(hào)的存儲(chǔ)單元;
9、s3、解析待分析設(shè)備的cpu訪存信號(hào),判斷所述cpu訪存信號(hào)的類型;
10、s4、若所述cpu訪存信號(hào)的類型為讀信號(hào)類型,則將讀寫標(biāo)識(shí)位置為零,并執(zhí)行步驟s7;若所述cpu訪存信號(hào)的類型為寫信號(hào)類型,則將讀寫標(biāo)識(shí)位置為一,并執(zhí)行步驟s5;
11、s5、解析所述cpu訪存信號(hào)中要寫入數(shù)據(jù)內(nèi)存模塊的字節(jié)數(shù)據(jù),并將其與一個(gè)第一預(yù)設(shè)字節(jié)數(shù)據(jù)拼接為雙字節(jié)寫數(shù)據(jù);
12、s6、將所述雙字節(jié)寫數(shù)據(jù)寫入數(shù)據(jù)內(nèi)存模塊中地址為訪存順序號(hào)的存儲(chǔ)單元,并執(zhí)行步驟s9;
13、s7、接收并解析主內(nèi)存模塊中返回給待分析設(shè)備的內(nèi)存數(shù)據(jù),并將其與一個(gè)第二預(yù)設(shè)字節(jié)數(shù)據(jù)拼接為雙字節(jié)讀數(shù)據(jù);
14、s8、將所述雙字節(jié)讀數(shù)據(jù)寫入數(shù)據(jù)內(nèi)存模塊中地址為訪存順序號(hào)的存儲(chǔ)單元;
15、s9、將當(dāng)前所述訪存順序號(hào)加一作為目標(biāo)訪存順序號(hào),并判斷所述目標(biāo)訪存順序號(hào)是否小于預(yù)設(shè)的最大訪存次數(shù);
16、s10、若是,則執(zhí)行步驟s1;否則執(zhí)行步驟s11;
17、s11、將訪存時(shí)序記錄使能標(biāo)識(shí)置為零,并退出。
18、本發(fā)明采用的第三種技術(shù)方案為:
19、一種內(nèi)存查看及修改方法,應(yīng)用于上述的內(nèi)存監(jiān)測(cè)系統(tǒng),包括將待分析設(shè)備的cpu訪存信號(hào)的寫操作的內(nèi)存地址和內(nèi)存數(shù)據(jù)放入寫操作隊(duì)列中,以及將外部分析設(shè)備的用戶訪存信號(hào)的讀寫內(nèi)存操作分別放入讀操作隊(duì)列和寫操作隊(duì)列中,具體包括以下步驟:
20、cpu訪存信號(hào)的寫操作排序操作步驟:
21、s101、將寫操作的指令計(jì)數(shù)值置為零;
22、s102、接收并解析待分析設(shè)備的cpu訪存信號(hào),判斷所述cpu訪存信號(hào)的類型;
23、s103、若所述cpu訪存信號(hào)的類型為讀信號(hào)類型,則執(zhí)行步驟s102;若所述cpu訪存信號(hào)的類型為寫信號(hào)類型,則執(zhí)行步驟s104;
24、s104、根據(jù)所述cpu訪存信號(hào),獲取寫操作的內(nèi)存地址和內(nèi)存數(shù)據(jù);
25、s105、將所述寫操作的內(nèi)存地址和內(nèi)存數(shù)據(jù)寫入寫操作緩沖模塊內(nèi);
26、s106、將當(dāng)前寫操作的指令計(jì)數(shù)值加一作為目標(biāo)寫操作的指令計(jì)數(shù)值;
27、用戶訪存信號(hào)排序操作步驟:
28、s201、將讀操作的指令計(jì)數(shù)值置為零;
29、s202、接收并解析外部分析設(shè)備的用戶訪存信號(hào);
30、s203、根據(jù)所述用戶訪存信號(hào),獲取寫操作的內(nèi)存地址和讀操作的內(nèi)存地址;
31、s204、判斷所述用戶訪存信號(hào)的類型;
32、s205、若所述用戶訪存信號(hào)的類型為讀信號(hào)類型,則執(zhí)行步驟s209;若所述用戶訪存信號(hào)的類型為寫信號(hào)類型,則執(zhí)行步驟s206;
33、s206、根據(jù)所述用戶訪存信號(hào),獲取寫操作的內(nèi)存數(shù)據(jù);
34、s207、將所述寫操作的內(nèi)存地址和內(nèi)存數(shù)據(jù)寫入寫操作緩沖模塊內(nèi);
35、s208、將當(dāng)前寫操作的指令計(jì)數(shù)值加一作為目標(biāo)寫操作的指令計(jì)數(shù)值,并執(zhí)行步驟s202;
36、s209、將所述讀操作的內(nèi)存地址寫入讀操作緩沖模塊內(nèi);
37、s210、將當(dāng)前讀操作的指令計(jì)數(shù)值加一作為目標(biāo)讀操作的指令計(jì)數(shù)值,執(zhí)行步驟s202。
38、本發(fā)明的有益效果在于:
39、本方案通過(guò)設(shè)置內(nèi)存底座、內(nèi)存信號(hào)接口、fpga控制模塊、主內(nèi)存模塊、備內(nèi)存模塊和usb接口模塊,待分析設(shè)備的cpu訪存信號(hào)經(jīng)由內(nèi)存底座及內(nèi)存信號(hào)接口傳遞給fpga控制模塊,經(jīng)fpga控制模塊的處理后,傳送給主內(nèi)存模塊和備內(nèi)存模塊,由主內(nèi)存模塊和備內(nèi)存模塊接收cpu訪存信號(hào),并產(chǎn)生輸出信號(hào)(即輸出待分析設(shè)備待讀取的內(nèi)存數(shù)據(jù)),該輸出信號(hào)同樣經(jīng)由fpga控制模塊送回至待分析設(shè)備;fpga控制模塊包括地址內(nèi)存模塊和數(shù)據(jù)內(nèi)存模塊,地址內(nèi)存模塊用于記錄cpu訪存地址,數(shù)據(jù)內(nèi)存模塊用于記錄cpu訪存數(shù)據(jù),從而能夠?qū)崿F(xiàn)得到待分析設(shè)備的內(nèi)存訪問(wèn)時(shí)序;本方案設(shè)計(jì)的內(nèi)存監(jiān)測(cè)系統(tǒng)對(duì)待分析設(shè)備而言相當(dāng)于一塊內(nèi)存芯片,不改變?cè)到y(tǒng)的信號(hào)處理邏輯,而對(duì)嵌入式設(shè)備分析人員而言,其能夠輔助記錄待分析設(shè)備的內(nèi)存讀寫時(shí)序,同時(shí)支持用戶讀取和修改內(nèi)存數(shù)據(jù)。
1.一種內(nèi)存監(jiān)測(cè)系統(tǒng),其特征在于,包括內(nèi)存底座、內(nèi)存信號(hào)接口、fpga控制模塊、主內(nèi)存模塊、備內(nèi)存模塊和usb接口模塊,所述fpga控制模塊分別與內(nèi)存信號(hào)接口、主內(nèi)存模塊、備內(nèi)存模塊和usb接口模塊電連接,所述usb接口模塊與外部分析設(shè)備電連接,所述內(nèi)存底座用于插接待分析設(shè)備的內(nèi)存信號(hào)接口,所述主內(nèi)存模塊用于供待分析設(shè)備正常讀寫,所述備內(nèi)存模塊用于供用戶讀取內(nèi)存數(shù)據(jù);
2.根據(jù)權(quán)利要求1所述的內(nèi)存監(jiān)測(cè)系統(tǒng),其特征在于,所述fpga控制模塊還包括寫操作緩沖模塊,所述寫操作緩沖模塊分別與主內(nèi)存模塊和備內(nèi)存模塊電連接。
3.根據(jù)權(quán)利要求1所述的內(nèi)存監(jiān)測(cè)系統(tǒng),其特征在于,所述fpga控制模塊還包括讀操作緩沖模塊,所述讀操作緩沖模塊分別與主內(nèi)存模塊和備內(nèi)存模塊電連接。
4.一種訪存時(shí)序記錄方法,應(yīng)用于權(quán)利要求1-3任意一項(xiàng)所述的內(nèi)存監(jiān)測(cè)系統(tǒng),其特征在于,包括以下步驟:
5.一種內(nèi)存查看及修改方法,應(yīng)用于權(quán)利要求1-3任意一項(xiàng)所述的內(nèi)存監(jiān)測(cè)系統(tǒng),其特征在于,包括將待分析設(shè)備的cpu訪存信號(hào)的寫操作的內(nèi)存地址和內(nèi)存數(shù)據(jù)放入寫操作隊(duì)列中,以及將外部分析設(shè)備的用戶訪存信號(hào)的讀寫內(nèi)存操作分別放入讀操作隊(duì)列和寫操作隊(duì)列中,具體包括以下步驟:
6.根據(jù)權(quán)利要求5所述的內(nèi)存查看及修改方法,其特征在于,還包括對(duì)備內(nèi)存模塊執(zhí)行讀寫操作,具體包括以下步驟:
7.根據(jù)權(quán)利要求6所述的內(nèi)存查看及修改方法,其特征在于,還包括以下步驟: