一種基于沙箱的軟件注冊(cè)表重定向方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及軟件處理領(lǐng)域,尤其涉及一種基于沙箱的軟件注冊(cè)表重定向方法及系統(tǒng)。
【背景技術(shù)】
[0002]在操作系統(tǒng)中安裝應(yīng)用程序時(shí),需要向注冊(cè)表中寫入大量數(shù)據(jù),形成新增的注冊(cè)表項(xiàng),而在此應(yīng)用程序卸載時(shí),這些新增的注冊(cè)表項(xiàng)并不能夠清理干凈,即使使用現(xiàn)有的注冊(cè)表清理工具也無(wú)法保證這些新增的注冊(cè)表純凈性。而且由于不同版本的軟件在安裝的時(shí)候都會(huì)在注冊(cè)表中的相同位置寫入一些配置信息,這樣就導(dǎo)致不同版本的軟件在同一操作系統(tǒng)中不能同時(shí)并存,也就是說(shuō)沒(méi)法保證注冊(cè)表很好的隔離開來(lái)。
[0003]因此需要用一種新的平臺(tái)去保證注冊(cè)表的純凈性和隔離性,從而實(shí)現(xiàn)不同版本軟件可以同時(shí)并存,安裝不同版本的軟件時(shí),也不會(huì)對(duì)現(xiàn)有注冊(cè)表產(chǎn)生垃圾。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的在于提供一種基于沙箱的軟件注冊(cè)表重定向方法及系統(tǒng),從而解決現(xiàn)有技術(shù)中存在的前述問(wèn)題。
[0005]為了實(shí)現(xiàn)上述目的,本發(fā)明的一種沙箱軟件注冊(cè)表重定向方法,采用的技術(shù)方案如下:
[0006]S1、當(dāng)軟件A運(yùn)行時(shí),沙箱系統(tǒng)捕獲到所述軟件A的進(jìn)程父ID,判斷所述軟件A的進(jìn)程父ID與沙箱系統(tǒng)中存儲(chǔ)的需要重定向的軟件的進(jìn)程ID是否相同;
[0007]如果相同,則確定所述軟件A是需要重定向的軟件,進(jìn)入S2 ;
[0008]如果不相同,則確定所述軟件A不是需要重定向的軟件,保持所述軟件A的注冊(cè)表操作不變,操作系統(tǒng)直接訪問(wèn)所述軟件A的注冊(cè)表運(yùn)行所述當(dāng)前軟件;
[0009]S2、將所述軟件A的注冊(cè)表操作替換為所述軟件A的注冊(cè)表映射文件的操作;
[0010]S3、直接訪問(wèn)所述軟件A的注冊(cè)表的映射文件,在所述沙箱系統(tǒng)中運(yùn)行所述軟件A0
[0011]優(yōu)選地,在步驟S1前存在以下操作:
[0012]S0-1、需要重定向的軟件與沙箱系統(tǒng)通信,并將所述需要重定向的軟件的進(jìn)程ID發(fā)送給所述沙箱系統(tǒng);
[0013]S0-2、依據(jù)操作系統(tǒng)中存儲(chǔ)的所述需要重定向的軟件的注冊(cè)表信息,在所述沙箱系統(tǒng)中形成所述需要重定向的軟件的注冊(cè)表的映射文件;
[0014]優(yōu)選地,步驟S0-1中,所述需要進(jìn)行重定向的軟件,包括:病毒程序和/或不安全的應(yīng)用程序運(yùn)行載體和/或不能在操作系統(tǒng)中同時(shí)并存的軟件。
[0015]優(yōu)選地,步驟S1中,所述軟件A為操作系統(tǒng)啟動(dòng)的任意一個(gè)軟件。
[0016]優(yōu)選地,步驟S1中,所述軟件A包括:操作系統(tǒng)中已安裝的軟件或未安裝的軟件。
[0017]優(yōu)選地,步驟S2中,當(dāng)所述軟件A為操作系統(tǒng)中已安裝的軟件時(shí),操作系統(tǒng)捕獲所述軟件A的進(jìn)程父ID。
[0018]優(yōu)選地,步驟S2中,當(dāng)所述軟件A為操作系統(tǒng)中未安裝的軟件時(shí),操作系統(tǒng)捕獲所述軟件A的進(jìn)程父ID。
[0019]優(yōu)選地,步驟S3中,當(dāng)確定所述軟件A是需要重定向的軟件,所述沙箱系統(tǒng)向用戶發(fā)出提示消息。
[0020]優(yōu)選地,步驟S5中,在所述沙箱中運(yùn)行所述需要進(jìn)行重定向的軟件時(shí),運(yùn)行過(guò)程中產(chǎn)生的垃圾文件被存儲(chǔ)在所述注冊(cè)表的映射文件中。
[0021]本發(fā)明的一種基于沙箱的軟件注冊(cè)表重定向系統(tǒng),該系統(tǒng)包括:沙箱系統(tǒng)模塊、判斷模塊和重定向模塊;
[0022]沙箱系統(tǒng)模塊,負(fù)責(zé)獲取需要重定向軟件的進(jìn)程ID、軟件A的進(jìn)程父ID,還負(fù)責(zé)執(zhí)行需要重定向軟件運(yùn)行;
[0023]判斷模塊,負(fù)責(zé)判斷所述系統(tǒng)獲取的需要重定向軟件的進(jìn)程ID和所述軟件A的進(jìn)程父ID是否相同,并將“相同”的結(jié)果發(fā)送給重定向模塊,將“不相同,保持注冊(cè)表操作不變”的結(jié)果發(fā)送給系統(tǒng)模塊;
[0024]重定向模塊,在接收到判斷模塊發(fā)送的“相同”結(jié)果后,將所述需要進(jìn)行重定向的軟件的注冊(cè)表操作替換為所述注冊(cè)表的映射文件的操作,并將結(jié)果發(fā)送給沙箱系統(tǒng)模塊。
[0025]本發(fā)明的有益效果是:
[0026]因?yàn)樵谶\(yùn)行軟件時(shí),直接運(yùn)行存儲(chǔ)在沙箱系統(tǒng)中所述軟件的注冊(cè)表的映射文件或在所述軟件的注冊(cè)表的映射文件上寫入配置信息,并不會(huì)在原有注冊(cè)表上進(jìn)行操作,所以本發(fā)明保護(hù)原有注冊(cè)表的純凈性以及不同軟件之間注冊(cè)表的隔離性的方法,更優(yōu)于現(xiàn)有注冊(cè)表保護(hù)的方法,不會(huì)產(chǎn)生不同版本軟件沖突、不會(huì)生成較大軟件包和軟件運(yùn)行遲緩問(wèn)題的方法。
【附圖說(shuō)明】
[0027]圖1是具體實(shí)施例1 一種基于沙箱的軟件注冊(cè)表重定向方法的流程圖;
[0028]圖2是具體實(shí)施例3 —種基于沙箱的軟件注冊(cè)表重定向結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0029]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的【具體實(shí)施方式】?jī)H僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0030]本發(fā)明的核心是:在軟件運(yùn)行過(guò)程中的注冊(cè)表操作全部重定向?yàn)槲募僮鳎撐募褪菍?duì)所述軟件的原有注冊(cè)表的一個(gè)映射,在運(yùn)行該軟件的操作過(guò)程中產(chǎn)生的垃圾都會(huì)存儲(chǔ)在映射文件中,如果系統(tǒng)判定所述軟件是需要被保護(hù)的軟件,在運(yùn)行所述軟件時(shí),系統(tǒng)直接訪問(wèn)映射文件,完全不需要對(duì)原注冊(cè)表進(jìn)行任何的操作,這樣既保證了原注冊(cè)表的純凈又可以保證不同版本軟件隔離,也不會(huì)產(chǎn)生過(guò)大的軟件包以及運(yùn)行緩慢的問(wèn)題。
[0031]參照?qǐng)D1,具體實(shí)施例1,一種基于沙箱的軟件注冊(cè)表重定向方法,該方法包括:
[0032]S1、需要重定向的軟件與沙箱系統(tǒng)通信,并將所述需要重定向的軟件的進(jìn)程ID存儲(chǔ)到所述沙箱系統(tǒng)中;
[0033]S2、依據(jù)操作系統(tǒng)中存儲(chǔ)的所述需要重定向的軟件的注冊(cè)表信息,在沙箱系統(tǒng)中形成所述需要重定向的軟件的注冊(cè)表的映射文件;
[0034]S3、當(dāng)軟件A運(yùn)行時(shí),沙箱系統(tǒng)捕獲到軟件A的進(jìn)程ID以及所述軟件A的進(jìn)程父ID,判斷所述軟件A的進(jìn)程父ID與步驟S1獲取的所述軟件的進(jìn)程ID是否相同;
[0035]如果相同,則確定所述軟件A是需要重定向的軟件,進(jìn)入S4,同時(shí),向用戶提示所述軟件A為需要重定向的軟件;
[0036]如果不相同,則確定所述軟件A不是需要重定向的軟件,保持所述軟件A的注冊(cè)表操作不變,直接訪問(wèn)所述注冊(cè)表運(yùn)行所述當(dāng)前軟件;
[0037]S4、將所述需要重定向的軟件的注冊(cè)表操作替換為所述注冊(cè)表的映射文件的操作;
[0038]S5、直接訪問(wèn)所述注冊(cè)表的映射文件,在所述沙箱系統(tǒng)中運(yùn)行所述需要重定向的軟件。
[0039]所述軟件A為office2007軟件。
[0040]所述需要重定向的軟件運(yùn)行過(guò)程中產(chǎn)生的垃圾文件或中間緩存文件被存儲(chǔ)在所述注冊(cè)表的映射文件中。
[0041]本具體實(shí)施例中所述當(dāng)前軟件是在當(dāng)前操作系統(tǒng)中已安裝的軟件時(shí),則系統(tǒng)驅(qū)動(dòng)捕獲到啟動(dòng)所述當(dāng)前軟件的進(jìn)程ID以及其進(jìn)程父ID。更具體為:所述當(dāng)前軟件指:在安裝了 Office2007軟件的操作系統(tǒng)中已安裝的office2007軟件,在步驟S2中系統(tǒng)捕獲到啟動(dòng)所述已安裝的offiCe2007軟件的進(jìn)程ID以及其進(jìn)程父ID。
[0042]即本具體實(shí)施例1是在安裝了 office2007軟件的操作系統(tǒng)的基礎(chǔ)上將啟動(dòng)的offiCe2007軟件作為當(dāng)前軟件進(jìn)行注冊(cè)表重定向技術(shù)。
當(dāng)前第1頁(yè)
1 
2