国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種卸載軟件的處理方法、裝置及電子設備與流程

      文檔序號:11951557閱讀:392來源:國知局
      一種卸載軟件的處理方法、裝置及電子設備與流程

      本發(fā)明涉及系統(tǒng)安全技術領域,尤其涉及一種卸載軟件的處理方法、裝置及電子設備。



      背景技術:

      隨著互聯(lián)網技術發(fā)展,病毒,木馬等惡意程序技術層出不窮,個別惡意程序利用特殊手段調起安全軟件的卸載程序進行卸載。若安全軟件被卸載,則用戶的設備沒有了安全軟件的保護,處于極度危險之中。

      現有技術是通過修改毒霸的卸載程序(uniOnst.exe),判斷調起的父進程是否為無卸載權限的軟件,若是直接退出卸載程序,以此來達到反卸載的功能。

      現有技術中用戶的卸載是允許的,用戶的卸載時,父進程是桌面進程程序explorer.exe,現有技術方案是對這個進程名是允許的。

      那么,現有技術中就會存在不足之處,一旦無卸載權限的軟件把自身模塊注入到explorer進程中再進行卸載的話,現有技術方案由于對于父進程是桌面進程程序explorer.exe是允許卸載的,因此,在這種情況下無卸載權限的軟件就會被允許卸載,對無卸載權限的軟件的攔截就失敗了。



      技術實現要素:

      本發(fā)明實施例提出了一種卸載軟件的處理方法、裝置及電子設備,可以解決如何增強對惡意卸載軟件的攔截的問題。

      在第一方面,本發(fā)明實施例提供了一種惡意卸載軟件的處理方法,包括:

      獲取卸載操作的調用棧中的函數地址列表;

      查詢所述函數地址列表中各個函數地址對應的模塊名稱;

      判斷所述模塊名稱中是否包括預設字符串,當包括所述預設字符串時,禁止卸載軟件;當不包括所述預設字符串時,允許卸載軟件。

      進一步地,所述允許卸載軟件具體為:在鉤子函數NewNtCreateSection里,調用NtCreateSection原始函數;所述禁止卸載軟件具體為:在鉤子函數NewNtCreateSection里,禁止調用NtCreateSection原始函數,返回拒絕訪問狀態(tài)并退出函數。

      進一步地,所述獲取卸載操作的調用棧中的函數地址列表具體為:調用內核函數RtlWalkFrameChain獲取卸載操作的調用棧中的函數地址列表。

      進一步地,所述獲取卸載操作的調用棧中的函數地址列表之前,還判斷在NewNtCreateSection函數中,參數AllocationAttributes是否為SEC_IMAGE,若是,進行后續(xù)操作,否則結束操作。

      進一步地,所述獲取卸載操作的調用棧中的函數地址列表之前,還判斷正在打開的文件路徑中是否包含uniOnst.exe,若是,進行后續(xù)操作,否則結束操作。

      進一步地,所述確定所述正在打開的文件路徑具體為:在NewNtCreateSection函數中,調用內核函數ObReferenceObjectByHandle獲取文件對象指針,獲取所述指針結構里保存的正在打開的文件路徑。

      在第二方面,本發(fā)明實施例提供了一種卸載軟件的處理裝置,包括:

      用于獲取卸載操作的調用棧中的函數地址列表的模塊;

      用于查詢所述函數地址列表中各個函數地址對應的模塊名稱的模塊;

      用于判斷所述模塊名稱中是否包括預設字符串,當包括所述預設字符串時禁止卸載軟件,當不包括所述預設字符串時允許卸載軟件的模塊。

      進一步地,所述允許卸載軟件具體為:在鉤子函數NewNtCreateSection里,調用NtCreateSection原始函數;所述禁止卸載軟件具體為:在鉤子函數NewNtCreateSection里,禁止調用NtCreateSection原始函數,返回拒絕訪問狀態(tài)并退出函數。

      進一步地,所述獲取卸載操作的調用棧中的函數地址列表具體為:調用內核函數RtlWalkFrameChain獲取卸載操作的調用棧中的函數地址列表。

      進一步地,該裝置還包括:

      用于在所述獲取卸載操作的調用棧中的函數地址列表之前,判斷在NewNtCreateSection函數中,參數AllocationAttributes是否為SEC_IMAGE,若是,進行后續(xù)操作,否則結束操作的模塊。

      進一步地,該裝置還包括:

      用于在所述獲取卸載操作的調用棧中的函數地址列表之前,判斷正在打開的文件路徑中是否包含uniOnst.exe,若是,進行后續(xù)操作,否則結束操作的模塊。

      進一步地,確定所述正在打開的文件路徑具體為:在NewNtCreateSection函數中,調用內核函數ObReferenceObjectByHandle獲取文件對象指針,獲取所述指針結構里保存的正在打開的文件路徑。

      在第三方面,本發(fā)明實施例提供了一種電子設備,包括:殼體、處理器、存儲器、電路板和電源電路,其中,電路板安置在殼體圍成的空間內部,處理器和存儲器設置在電路板上;電源電路,用于為上述電子設備的各個電路或器件供電;存儲器用于存儲可執(zhí)行程序代碼;處理器通過讀取存儲器中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行如下操作:

      獲取卸載操作的調用棧中的函數地址列表;

      查詢所述函數地址列表中各個函數地址對應的模塊名稱;

      判斷所述模塊名稱中是否包括預設字符串,當包括所述預設字符串時,禁止卸載軟件;當不包括所述預設字符串時,允許卸載軟件。

      在第四方面,本發(fā)明實施例提供了一種存儲介質,其中,該存儲介質用于存儲應用程序,所述應用程序用于在運行時執(zhí)行本發(fā)明實施例所述的一種卸載軟件的處理方法。

      在第五方面,本發(fā)明實施例提供了一種應用程序,其中,該應用程序用于在運行時執(zhí)行本發(fā)明實施例所述的一種卸載軟件的處理方法。

      有益效果如下:

      由于本發(fā)明實施例中獲取了卸載操作的調用棧中的函數地址列表,查詢所述函數地址列表中各個函數地址對應的模塊名稱,判斷所述模塊名稱中是否包括預設字符串,當包括所述預設字符串時,禁止卸載軟件;當不包括所述預設字符串時,允許卸載軟件。可以看出,本發(fā)明實施例是通過?;厮菁夹g,無需判斷父進程,?;厮菡页稣{用模塊名稱,再確定是否要攔截惡意卸載安全軟件。從而避免了無卸載權限的軟件把自身模塊注入到explorer進程中再進行卸載時能夠成功卸載的情況。通過對調用棧中信息的梳理,能夠對卸載操作的全過程進行監(jiān)督,增強了對惡意卸載軟件的攔截。

      附圖說明

      下面將參照附圖描述本發(fā)明的具體實施例,其中:

      圖1示出了本發(fā)明實施例中卸載軟件的處理方法的流程示意圖;

      圖2示出了本發(fā)明一個實例中卸載軟件的處理方法的具體實現流程示意圖;

      圖3示出了本發(fā)明實施例中電子設備的結構示意圖。

      具體實施方式

      為了使本發(fā)明的技術方案及優(yōu)點更加清楚明白,以下結合附圖對本發(fā)明的示例性實施例進行進一步詳細的說明,顯然,所描述的實施例僅是本發(fā)明的一部分實施例,而不是所有實施例的窮舉。并且在不沖突的情況下,本說明中的實施例及實施例中的特征可以互相結合。

      本發(fā)明實施例提出了一種卸載軟件的處理方法、裝置及電子設備,下面進行說明。

      圖1示出了本發(fā)明實施例中卸載軟件的處理方法,包括:

      步驟101,獲取卸載操作的調用棧中的函數地址列表;

      步驟102,查詢函數地址列表中各個函數地址對應的模塊名稱;

      步驟103,判斷所述模塊名稱中是否包括預設字符串,若是,即當包括所述預設字符串時,進行步驟104;否則,即當不包括所述預設字符串時,進行步驟105;

      具體地,該預設字符串可以根據經驗設置,其中可包括被確認對安全軟件具有惡意的程序的相關信息,具體來說,可以包括競品軟件的相關信息。

      步驟104,禁止卸載軟件;

      步驟105,允許卸載軟件。

      為了便于本發(fā)明的實施,下面以安全軟件毒霸作為實例進行說明。

      本實例是應用于PC個人電腦終端上的,運行于內核層驅動程序上,即是毒霸的驅動程序上。毒霸現有方案中有一個掛鉤NtCreateSection的函數,NtCreateSection函數的作用就是打開映射文件前的一個創(chuàng)建會話函數,創(chuàng)建會話失敗就會打開文件失敗,所以可以在這函數實現一些打開文件的攔截功能。

      現有方案掛鉤這函數,鉤子函數是NewNtCreateSection,本實例就是在NewNtCreateSection鉤子函數上實現棧回溯并攔截惡意卸載毒霸。本實例中卸載軟件的處理方法如圖2所示,包括:

      步驟201,判斷在NewNtCreateSection函數中,參數AllocationAttributes是否為SEC_IMAGE,若是,進行步驟202,否則結束。

      在NewNtCreateSection函數中,參數AllocationAttributes是保存配置屬性信息的,如果此函數是SEC_IMAGE,意為可執(zhí)行文件映射,才有進一步處理的必要,可進行后續(xù)操作。

      步驟202,判斷正在打開的文件路徑中是否包含uniOnst.exe,若是,進行步驟203,否則結束。

      上述正在打開的文件路徑具體可以為:在NewNtCreateSection函數中,調用內核函數ObReferenceObjectByHandle獲取文件對象指針,獲取所述指針結構里保存的正在打開的文件路徑。

      uniOnst.exe是毒霸卸載程序,若正在打開的文件路徑中是否包含uniOnst.exe,說明當前執(zhí)行的是毒霸卸載程序,有必要進行攔截,若不包括uniOnst.exe,則說明當前執(zhí)行的不是毒霸卸載程序,沒有后續(xù)處理的必要。

      步驟201和202,通過判斷能夠在一些判斷條件下結束流程,節(jié)省系統(tǒng)的處理量,步驟201和202沒有一定的先后順序,也并非一定要進行的操作。

      步驟203,調用內核函數RtlWalkFrameChain獲取調用棧函數列表;

      調用內核函數RtlWalkFrameChain可以獲取調用棧函數列表,這個調用??梢垣@取到從應用層到內核層的調用棧,如下列表:

      0x8a335f5b Kisknl!NewNtCreateSection+0xl 83

      0xa73d448c Nt!NtCreateSection+0xf2---以上是內核層模塊,以下是應用層模塊

      0x773d33cc Ndll!NtCreateSecion+0x12

      0x56d3478 360killq+Ox188

      0x4653076 360safe+0xc3

      RtlWalkFrameChain函數獲取到的就是0x8a335f5b,0xa73d448c,0x773d33cc,0x56d3478,0x4653076等等的整個調用棧函數地址。

      步驟204,查詢函數地址列表中各個函數地址對應的模塊名稱。

      通過ZwQueryVirtualMemory函數可以查詢到地址對應的模塊名稱。

      步驟205,判斷獲得的模塊名稱中是否包括預設字符串,若是,進行步驟206,否則進行步驟207。

      如果包括預設字符串,即認為是在惡意調起毒霸卸載程序。預設字符串可以從一處配置文件讀取到的,并可以擴展。

      步驟206,禁止卸載軟件。

      禁止卸載軟件即攔截,在鉤子函數NewNtCreateSection里,不調用NtCreateSection原始函數,返回拒絕訪問狀態(tài)并退出函數。這樣系統(tǒng)就不會執(zhí)行到真正的打開文件會話函數,文件打開就會失敗,在到攔截的效果。

      步驟207,允許卸載軟件。

      允許卸載軟件即在鉤子函數NewNtCreateSection里,調用NtCreateSection原始函數。

      本實例是一種全面有效的攔截方法,無需判斷調起毒霸卸載程序的父進程名,通過?;厮莘绞礁軠蚀_判斷惡意卸載毒霸,這對毒霸自身反卸載能力有很大的提高,對系統(tǒng)安全有積極意義。

      基于同一發(fā)明構思,本發(fā)明實施例中還提供了一種卸載軟件的處理裝置,由于這些設備解決問題的原理與一種卸載軟件的處理方法相似,因此這些設備的實施可以參見方法的實施,重復之處不再贅述。

      本發(fā)明實施例中卸載軟件的處理裝置,包括:

      用于獲取卸載操作的調用棧中的函數地址列表的模塊;

      用于查詢上述函數地址列表中各個函數地址對應的模塊名稱的模塊;

      用于判斷所述模塊名稱中是否包括預設字符串,當包括所述預設字符串時禁止卸載軟件,當不包括所述預設字符串時允許卸載軟件的模塊。

      進一步地,上述允許卸載軟件具體為:在鉤子函數NewNtCreateSection里,調用NtCreateSection原始函數;上述禁止卸載軟件具體為:在鉤子函數NewNtCreateSection里,禁止調用NtCreateSection原始函數,返回拒絕訪問狀態(tài)并退出函數。

      進一步地,上述獲取卸載操作的調用棧中的函數地址列表可以為:調用內核函數RtlWalkFrameChain獲取卸載操作的調用棧中的函數地址列表。

      進一步地,上述的裝置還可以包括:

      用于在獲取卸載操作的調用棧中的函數地址列表之前,判斷在NewNtCreateSection函數中,參數AllocationAttributes是否為SEC_IMAGE,若是,進行后續(xù)操作,否則結束操作的模塊。

      進一步地,上述的裝置還可以包括:

      用于在獲取卸載操作的調用棧中的函數地址列表之前,判斷正在打開的文件路徑中是否包含uniOnst.exe,若是,進行后續(xù)操作,否則結束操作的模塊。

      進一步地,確定上述正在打開的文件路徑具體為:在NewNtCreateSection函數中,調用內核函數ObReferenceObjectByHandle獲取文件對象指針,獲取該指針結構里保存的正在打開的文件路徑。

      為了描述的方便,以上所述裝置的各部分以功能分為各種模塊或單元分別描述。當然,在實施本發(fā)明時可以把各模塊或單元的功能在同一個或多個軟件或硬件中實現。

      基于同一發(fā)明構思,本發(fā)明實施例中還提供了一種電子設備,由于電子設備解決問題的原理與一種阻止惡意加載驅動的方法相似,因此這些設備的實施可以參見方法的實施,重復之處不再贅述。

      如圖3所示,本發(fā)明實施例提供的電子設備,包括:殼體31、處理器32、存儲器33、電路板34和電源電路35,其中,電路板34安置在殼體31圍成的空間內部,處理器32和存儲器33設置在電路板上34;電源電路35,用于為上述電子設備的各個電路或器件供電;存儲器33用于存儲可執(zhí)行程序代碼;處理器32通過讀取存儲器33中存儲的可執(zhí)行程序代碼來運行與可執(zhí)行程序代碼對應的程序,用于執(zhí)行如下操作:

      獲取卸載操作的調用棧中的函數地址列表;

      查詢所述函數地址列表中各個函數地址對應的模塊名稱;

      判斷所述模塊名稱中是否包括預設字符串,當包括所述預設字符串時,禁止卸載軟件;當不包括所述預設字符串時,允許卸載軟件。

      本發(fā)明實施例提供了一種存儲介質,其中,該存儲介質用于存儲應用程序,所述應用程序用于在運行時執(zhí)行本發(fā)明實施例所述的一種卸載軟件的處理方法。

      本發(fā)明實施例提供了一種應用程序,其中,該應用程序用于在運行時執(zhí)行本發(fā)明實施例所述的一種卸載軟件的處理方法。

      本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、設備(系統(tǒng))、或計算機程序產品。本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。

      本發(fā)明是參照根據本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執(zhí)行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

      這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

      這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

      盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

      當前第1頁1 2 3 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1