行。
[0055]本方法能夠解決windows系統(tǒng)下64位進(jìn)程啟動(dòng)并遠(yuǎn)程注入32位進(jìn)程的問(wèn)題,提高安全軟件對(duì)用戶進(jìn)程行為的審計(jì)和控制的準(zhǔn)確性。
[0056]舉例來(lái)說(shuō),以32位進(jìn)程啟動(dòng)64位進(jìn)程為例,本實(shí)施例的32位進(jìn)程和64位進(jìn)程交叉注入方法可以包括:
[0057]P1、在32位進(jìn)程啟動(dòng)64位進(jìn)程時(shí),將所述64位進(jìn)程創(chuàng)建為一個(gè)暫停的進(jìn)程,并獲取所述64位進(jìn)程的進(jìn)程信息和所述32位進(jìn)程中需注入所述64位進(jìn)程的模塊信息。
[0058]P2、將所述64位進(jìn)程的進(jìn)程信息和所述32位進(jìn)程中需注入所述64位進(jìn)程的模塊信息保存到共享內(nèi)存中。
[0059]P3、將所述64位進(jìn)程的進(jìn)程信息和所述32位進(jìn)程中需注入所述64位進(jìn)程的模塊信息發(fā)送給所述64位進(jìn)程的守護(hù)進(jìn)程。
[0060]P4、所述64位進(jìn)程的守護(hù)進(jìn)程根據(jù)接收的所述64位進(jìn)程的進(jìn)程信息和所述32位進(jìn)程中需注入所述64位進(jìn)程的模塊信息,獲取相應(yīng)的注入信息,并根據(jù)所述注入信息,對(duì)所述64位進(jìn)程進(jìn)行遠(yuǎn)程注入。
[0061]P5、所述64位進(jìn)程的守護(hù)進(jìn)程在對(duì)所述64位進(jìn)程的遠(yuǎn)程注入完成之后,向所述32位進(jìn)程發(fā)送注入完成信息。
[0062]P6、所述32位進(jìn)程在接收到所述64位進(jìn)程的守護(hù)進(jìn)程發(fā)送的注入完成信息之后,使注入完成之后的64位進(jìn)程繼續(xù)運(yùn)行。
[0063]本方法能夠解決windows系統(tǒng)下32位進(jìn)程啟動(dòng)并遠(yuǎn)程注入64位進(jìn)程的問(wèn)題,提高安全軟件對(duì)用戶進(jìn)程行為的審計(jì)和控制的準(zhǔn)確性。
[0064]圖3示出了本發(fā)明一實(shí)施例提供的一種32位進(jìn)程和64位進(jìn)程交叉注入裝置的結(jié)構(gòu)示意圖,如圖3所示,本實(shí)施例的32位進(jìn)程和64位進(jìn)程交叉注入裝置,包括:獲取模塊31、第一發(fā)送模塊32和遠(yuǎn)程注入模塊33 ;
[0065]獲取模塊31,用于在第一進(jìn)程啟動(dòng)第二進(jìn)程時(shí),將所述第二進(jìn)程創(chuàng)建為一個(gè)暫停的進(jìn)程,并獲取所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息;
[0066]第一發(fā)送模塊32,用于將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息發(fā)送給第三進(jìn)程;
[0067]遠(yuǎn)程注入模塊33,用于所述第三進(jìn)程根據(jù)接收的所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息,獲取相應(yīng)的注入信息,并根據(jù)所述注入信息,對(duì)所述第二進(jìn)程進(jìn)行遠(yuǎn)程注入;
[0068]其中,所述第三進(jìn)程為所述第二進(jìn)程的守護(hù)進(jìn)程,所述第一進(jìn)程與所述第二進(jìn)程中的一個(gè)進(jìn)程為64位進(jìn)程、另一個(gè)進(jìn)程為32位進(jìn)程。
[0069]在具體應(yīng)用中,本實(shí)施例所述第一進(jìn)程為64位進(jìn)程,所述第二進(jìn)程為32位進(jìn)程;
[0070]或者,本實(shí)施例所述第一進(jìn)程為32位進(jìn)程,所述第二進(jìn)程為64位進(jìn)程。
[0071]在具體應(yīng)用中,如圖4所示,本實(shí)施例所述裝置,還包括:
[0072]第二發(fā)送模塊34,用于所述第三進(jìn)程在對(duì)所述第二進(jìn)程的遠(yuǎn)程注入完成之后,向所述第一進(jìn)程發(fā)送注入完成信息;
[0073]運(yùn)行模塊35,用于所述第一進(jìn)程在接收到所述第三進(jìn)程發(fā)送的注入完成信息之后,使注入完成之后的第二進(jìn)程繼續(xù)運(yùn)行。
[0074]在具體應(yīng)用中,本實(shí)施例所述裝置,還可包括圖中未示出的:
[0075]保存模塊,用于將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息保存到共享內(nèi)存中。
[0076]本實(shí)施例的32位進(jìn)程和64位進(jìn)程交叉注入裝置,能夠解決windows系統(tǒng)下32位進(jìn)程和64位進(jìn)程交叉遠(yuǎn)程注入的問(wèn)題,提高安全軟件對(duì)用戶進(jìn)程行為的審計(jì)和控制的準(zhǔn)確性。
[0077]本實(shí)施例的32位進(jìn)程和64位進(jìn)程交叉注入裝置,可以用于執(zhí)行前述圖1或圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0078]在本發(fā)明實(shí)施方式中“第一”、“第二”和“第三”等并不是對(duì)先后順序做出規(guī)定,只是對(duì)名稱做出區(qū)別,在本發(fā)明實(shí)施方式中,不做出任何的限定。
[0079]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述各方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成。前述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。該程序在執(zhí)行時(shí),執(zhí)行包括上述各方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0080]最后應(yīng)說(shuō)明的是:以上各實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述各實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【主權(quán)項(xiàng)】
1.一種32位進(jìn)程和64位進(jìn)程交叉注入方法,其特征在于,包括: 在第一進(jìn)程啟動(dòng)第二進(jìn)程時(shí),將所述第二進(jìn)程創(chuàng)建為一個(gè)暫停的進(jìn)程,并獲取所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息; 將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息發(fā)送給第三進(jìn)程; 所述第三進(jìn)程根據(jù)接收的所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息,獲取相應(yīng)的注入信息,并根據(jù)所述注入信息,對(duì)所述第二進(jìn)程進(jìn)行遠(yuǎn)程注入; 其中,所述第三進(jìn)程為所述第二進(jìn)程的守護(hù)進(jìn)程,所述第一進(jìn)程與所述第二進(jìn)程中的一個(gè)進(jìn)程為64位進(jìn)程、另一個(gè)進(jìn)程為32位進(jìn)程。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述對(duì)所述第二進(jìn)程進(jìn)行遠(yuǎn)程注入之后,還包括: 所述第三進(jìn)程在對(duì)所述第二進(jìn)程的遠(yuǎn)程注入完成之后,向所述第一進(jìn)程發(fā)送注入完成信息; 所述第一進(jìn)程在接收到所述第三進(jìn)程發(fā)送的注入完成信息之后,使注入完成之后的第二進(jìn)程繼續(xù)運(yùn)行。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述獲取所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息之后,在所述將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息發(fā)送給第三進(jìn)程之前,還包括: 將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息保存到共享內(nèi)存中。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一進(jìn)程為64位進(jìn)程,所述第二進(jìn)程為32位進(jìn)程。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一進(jìn)程為32位進(jìn)程,所述第二進(jìn)程為64位進(jìn)程。6.一種32位進(jìn)程和64位進(jìn)程交叉注入裝置,其特征在于,包括: 獲取模塊,用于在第一進(jìn)程啟動(dòng)第二進(jìn)程時(shí),將所述第二進(jìn)程創(chuàng)建為一個(gè)暫停的進(jìn)程,并獲取所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息; 第一發(fā)送模塊,用于將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息發(fā)送給第三進(jìn)程; 遠(yuǎn)程注入模塊,用于所述第三進(jìn)程根據(jù)接收的所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息,獲取相應(yīng)的注入信息,并根據(jù)所述注入信息,對(duì)所述第二進(jìn)程進(jìn)行遠(yuǎn)程注入; 其中,所述第三進(jìn)程為所述第二進(jìn)程的守護(hù)進(jìn)程,所述第一進(jìn)程與所述第二進(jìn)程中的一個(gè)進(jìn)程為64位進(jìn)程、另一個(gè)進(jìn)程為32位進(jìn)程。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 第二發(fā)送模塊,用于所述第三進(jìn)程在對(duì)所述第二進(jìn)程的遠(yuǎn)程注入完成之后,向所述第一進(jìn)程發(fā)送注入完成信息; 運(yùn)行模塊,用于所述第一進(jìn)程在接收到所述第三進(jìn)程發(fā)送的注入完成信息之后,使注入完成之后的第二進(jìn)程繼續(xù)運(yùn)行。8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 保存模塊,用于將所述第二進(jìn)程的進(jìn)程信息和所述第一進(jìn)程中需注入所述第二進(jìn)程的模塊信息保存到共享內(nèi)存中。9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一進(jìn)程為64位進(jìn)程,所述第二進(jìn)程為32位進(jìn)程。10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述第一進(jìn)程為32位進(jìn)程,所述第二進(jìn)程為64位進(jìn)程。
【專利摘要】本發(fā)明提供32位進(jìn)程和64位進(jìn)程交叉注入方法及裝置,方法包括:在第一進(jìn)程啟動(dòng)第二進(jìn)程時(shí),將第二進(jìn)程創(chuàng)建為一個(gè)暫停的進(jìn)程,并獲取第二進(jìn)程的進(jìn)程信息和第一進(jìn)程中需注入第二進(jìn)程的模塊信息并發(fā)送給第三進(jìn)程;第三進(jìn)程根據(jù)接收的第二進(jìn)程的進(jìn)程信息和第一進(jìn)程中需注入第二進(jìn)程的模塊信息,獲取相應(yīng)的注入信息,并根據(jù)注入信息對(duì)第二進(jìn)程進(jìn)行遠(yuǎn)程注入;其中第三進(jìn)程為第二進(jìn)程的守護(hù)進(jìn)程;第一進(jìn)程與第二進(jìn)程中的一個(gè)進(jìn)程為64位進(jìn)程、另一個(gè)進(jìn)程為32位進(jìn)程。該方法能解決windows系統(tǒng)下32位進(jìn)程和64位進(jìn)程交叉遠(yuǎn)程注入的問(wèn)題,提高對(duì)用戶進(jìn)程的審計(jì)和控制的準(zhǔn)確性。
【IPC分類】G06F21/52
【公開(kāi)號(hào)】CN105184151
【申請(qǐng)?zhí)枴緾N201510611519
【發(fā)明人】楊華, 孔令超, 孫增豪
【申請(qǐng)人】北京北信源軟件股份有限公司
【公開(kāi)日】2015年12月23日
【申請(qǐng)日】2015年9月23日