两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種基于Linux進行服務(wù)器程序故障注入方法、裝置及系統(tǒng)的制作方法

文檔序號:9787288閱讀:890來源:國知局
一種基于Linux進行服務(wù)器程序故障注入方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種基于Linux進行服務(wù)器程序故障注入方法法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]故障注入是一種可靠性驗證技術(shù),通過受控實驗向系統(tǒng)中刻意引入故障,并觀察系統(tǒng)中存在故障時的行為。基于軟件的故障注入,是通過在軟件級生成錯誤,從而造成硬件級的故障。有很多注入方式,如修改內(nèi)存數(shù)據(jù),通過應(yīng)用軟件生成故障或者通過底層軟件如操作系統(tǒng)生成故障。有很多注入方式,如修改內(nèi)存數(shù)據(jù),通過應(yīng)用軟件生成故障或者通過底層軟件如操作系統(tǒng)生成故障。另外可以通過在模擬過程中,改變邏輯值來達到故障注入的效果。
[0003]然而,目前的故障注入通常為靜態(tài)注入,存在著無法檢測到軟件在底層的運行過程中可能產(chǎn)生的故障的技術(shù)問題。

【發(fā)明內(nèi)容】

[0004]本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法、裝置及系統(tǒng),解決了目前的故障注入通常為靜態(tài)注入,存在著無法檢測到軟件在底層的運行過程中可能產(chǎn)生的故障的技術(shù)問題。
[0005]本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法,包括:
[0006]確定目標主機待注入的進程;
[0007]通過Hook技術(shù)對所述待注入的進程進行分析,確定目標函數(shù)并進行注入函數(shù)替換;
[0008]對替換了所述注入函數(shù)的所述待注入的進程進行預置故障類型注入;
[0009]獲取所述預置故障類型注入后的所述進程運行結(jié)果。
[0010]優(yōu)選地,確定目標主機待注入的進程之前還包括:
[0011 ]確定選擇的目標主機,并與所述目標主機進行連接。
[0012]優(yōu)選地,通過Hook技術(shù)對所述待注入的進程進行分析,確定目標函數(shù)并進行注入函數(shù)替換具體包括:
[0013]根據(jù)所述待注入的所述進程按照優(yōu)先選擇Inline Hook,次級選擇ELF Hook的規(guī)則對所述進程中的ELF文件進行分析;
[0014]確定所述ELF文件中的所述目標函數(shù)并進行所述注入函數(shù)的替換。
[0015]優(yōu)選地,對替換了所述注入函數(shù)的所述待注入的進程進行預置故障類型注入具體包括:
[0016]對替換了所述注入函數(shù)的所述待注入的進程進行異常返回值的故障類型或函數(shù)等待的故障類型的注入;
[0017]根據(jù)選擇的預置時長進行故障自動恢復處理。
[0018]優(yōu)選地,所述異常返回值包括整形值和/或布爾值和/或空指針。
[0019]本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入裝置,包括:
[0020]第一確定單元,用于確定目標主機待注入的進程;
[0021]函數(shù)替換單元,用于通過Hook技術(shù)對所述待注入的進程進行分析,確定目標函數(shù)并進行注入函數(shù)替換;
[0022]故障注入單元,用于對替換了所述注入函數(shù)的所述待注入的進程進行預置故障類型注入;
[0023]獲取單元,用于獲取所述預置故障類型注入后的所述進程運行結(jié)果。
[0024]優(yōu)選地,所述基于Linux進行服務(wù)器程序故障注入裝置還包括:
[0025]第二確定單元,用于確定選擇的目標主機,并與所述目標主機進行連接。
[0026]優(yōu)選地,函數(shù)替換單元具體包括:
[0027]分析子單元,用于根據(jù)所述待注入的所述進程按照優(yōu)先選擇Inline Hook,次級選擇ELF Hook的規(guī)則對所述進程中的ELF文件進行分析;
[0028]函數(shù)替換子單元,用于確定所述ELF文件中的所述目標函數(shù)并進行所述注入函數(shù)的替換。
[0029]優(yōu)選地,故障注入單元具體包括:
[0030]故障注入子單元,用于對替換了所述注入函數(shù)的所述待注入的進程進行異常返回值的故障類型或函數(shù)等待的故障類型的注入,所述異常返回值包括整形值和/或布爾值和/或空指針;
[0031 ]故障恢復子單元,用于根據(jù)選擇的預置時長進行故障自動恢復處理。
[0032]本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入系統(tǒng),包括:
[0033]后臺agent、TcpProxy,以及如權(quán)利要求6至9中任意一項所述的基于Linux進行服務(wù)器程序故障注入裝置;
[0034]所述基于Linux進行服務(wù)器程序故障注入裝置通過所述TcpProxy與所述后臺agent連接;
[0035]所述后臺agent通過獲取到來自于所述基于Linux進行服務(wù)器程序故障注入裝置的指令對目標主機進行故障注入及進程運行結(jié)果的采集,并反饋給所述基于Linux進行服務(wù)器程序故障注入裝置。
[0036]從以上技術(shù)方案可以看出,本發(fā)明實施例具有以下優(yōu)點:
[0037]本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法、裝置及系統(tǒng),其中,基于Linux進行服務(wù)器程序故障注入方法包括:確定目標主機待注入的進程;通過Hook技術(shù)對待注入的進程進行分析,確定目標函數(shù)并進行注入函數(shù)替換;對替換了注入函數(shù)的待注入的進程進行預置故障類型注入;獲取預置故障類型注入后的進程運行結(jié)果。本實施例中,通過Hook技術(shù)對待注入的進程進行分析,確定目標函數(shù)并進行注入函數(shù)替換,然后對替換了注入函數(shù)的待注入的進程進行預置故障類型注入,最后獲取預置故障類型注入后的進程運行結(jié)果,便實現(xiàn)了通過動態(tài)注入方法,實現(xiàn)對服務(wù)器程序故障注入,解決了目前的故障注入通常為靜態(tài)注入,存在著無法檢測到軟件在底層的運行過程中可能產(chǎn)生的故障的技術(shù)問題。
【附圖說明】
[0038]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其它的附圖。
[0039]圖1為本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法的一個實施例的流程示意圖;
[0040]圖2為本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法的另一個實施例的流程示意圖;
[0041]圖3為本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入裝置的一個實施例的結(jié)構(gòu)示意圖;
[0042]圖4為本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入裝置的另一個實施例的結(jié)構(gòu)示意圖;
[0043]圖5為本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入系統(tǒng)的一個實施例的結(jié)構(gòu)示意圖;
[0044]圖6為圖2實施例的界面示意圖。
【具體實施方式】
[0045]本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法、裝置及系統(tǒng),解決了目前的故障注入通常為靜態(tài)注入,存在著無法檢測到軟件在底層的運行過程中可能產(chǎn)生的故障的技術(shù)問題。
[0046]Hook技術(shù)是Windows消息處理機制的一個平臺,應(yīng)用程序可以在上面設(shè)置子程以監(jiān)視指定窗口的某種消息,而且所監(jiān)視的窗口可以是其他進程所創(chuàng)建的。當消息到達后,在目標窗口處理函數(shù)之前處理它。鉤子機制允許應(yīng)用程序截獲處理window消息或特定事件。鉤子實際上是一個處理消息的程序段,通過系統(tǒng)調(diào)用,把它掛入系統(tǒng)。每當特定的消息發(fā)出,在沒有到達目的窗口前,鉤子程序就先捕獲該消息,亦即鉤子函數(shù)先得到控制權(quán)。這時鉤子函數(shù)即可以加工處理(改變)該消息,也可以不作處理而繼續(xù)傳遞該消息,還可以強制結(jié)束消息的傳遞。
[0047]動態(tài)注入:注入進程找到目標進程的dlopen函數(shù)的入口地址,注入進程調(diào)用ptrace函數(shù)attach到目標進程T。
[0048]為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,下面所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0049]請參閱圖1,本發(fā)明實施例提供的一種基于Linux進行服務(wù)器程序故障注入方法的一個實施例包括:
[0050]101、確定目標主機待注入的進程;[0051 ]本實施例中,當需要基于Linux進行服務(wù)器程序故障注入時,首先需要確定目標主機待注入的進程。
[0052]102、通過Hook技術(shù)對待注入的進程進行分析,確定目
當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
固阳县| 安岳县| 龙里县| 桑日县| 长武县| 合水县| 阳山县| 新绛县| 河南省| 浑源县| 连州市| 延边| 随州市| 东乌珠穆沁旗| 乐东| 应用必备| 凤凰县| 丰原市| 玛纳斯县| 平原县| 剑河县| 舟曲县| 洞头县| 得荣县| 陇川县| 琼结县| 青田县| 嘉兴市| 乌鲁木齐市| 鸡西市| 大名县| 五河县| 游戏| 河西区| 潍坊市| 辽阳市| 丰县| 乌鲁木齐市| 成武县| 拜城县| 怀安县|