前些天,有一位朋友咨詢,如何讓程序開機自動運行?我發(fā)現(xiàn)對于小白而言,這確實是個問題,而且通過這個問題,可以反過來知道那些自動運行的軟件都是通過什么途徑運行的,進而去取消他們。
電腦從啟動到進入操作系統(tǒng)最終啟動完成,有很多個過程,不管是正常程序,還是病毒程序,他們只有在系統(tǒng)進入到最后桌面的狀況下,程序還保持在運行,才能發(fā)揮作用。
舉一個通俗的例子,看一場球賽,或者演唱會,不管你是為了看演出,還是要制造破壞,你需要最終進入到會場,那么進入會場實際上會有很多個階段跟可能性,比如還在布置會場的階段偽裝為工作人員,比如偽裝成現(xiàn)場的安保人員,比如偽裝成演唱會的工作人員,比如購買假票,等等等等,不同的角色會在不同的時間混進會場,軟件或者程序,需要最終進入操作系統(tǒng)運行,也不例外!
下面告訴你怎么個也不例外法:
這個問題離不開注冊表,注冊表你可以理解為操作系統(tǒng)的一個登記本,各種系統(tǒng)的設(shè)置,信息,軟件的設(shè)置,信息等,都會記錄在里面,所以也就包括那些軟件需要在什么階段運行起來這樣的事情。
打開注冊表編輯器的方法是按win+R鍵,輸入regedit,或者點開始,運行,然后輸入regedit,這里以win7為例進行說明。
打開后,是這樣的:
關(guān)于注冊表的科普,看這里:
從最前面的介紹可以看出,注冊表的數(shù)據(jù)非常重要,不可以隨便刪除的,所以操作的時候要比較小心,否則可能導(dǎo)致系統(tǒng)崩潰。
下面開始說說,都有哪些途徑,程序可以隨機器啟動自動運行起來:
一、最常見的一個入口:Run鍵、RunOnce鍵
注意上面圖片的紅色箭頭指示的路徑,我的系統(tǒng)這一項為空,就是沒有程序通過這里來啟動運行,如果右邊有數(shù)據(jù),那么對應(yīng)數(shù)據(jù)的程序就會開機運行。
細心的你看到上圖中,下面挨著還有個RunOnce鍵,直譯的意思就是運行一次,沒錯,這個鍵下面的程序會開機運行一次,隨后被刪除,比如有時候安裝某個軟件要求重啟后繼續(xù),可能重啟后就會自動運行某個程序,只用運行一次,那么就會往這個里面寫入數(shù)據(jù)。
除了HKEY_CURRENT_USER這個下面有這兩個外,HKEY_LOCAL_MACHINE下面,也有Run跟RunOnce鍵。
那么這個跟之前那個有啥區(qū)別呢?從名稱上,前者是CURRENT_USER、當(dāng)前用戶,LOCAL_MACHINE、本地機器,顧名思義,前者是當(dāng)前用戶登陸后會被執(zhí)行,而后者本地機器是沒登陸之前就會被執(zhí)行,這個就是類似前面參加演唱會,有一些是工作人員,有一些是憑票進入的人員。
二、Services鍵
這個其實等同于前面的兩個,不同的是,這里是以服務(wù)出現(xiàn)的,它更加底層一些,我們通過開始, 運行,輸入services.msc看到的這些。
這些也會在注冊表中有記錄。
RunServices及RunServicesOnce之后啟動的程序,位于注冊表[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
RunServices]鍵。
RunServicesOnce鍵位于[HKEY_CURRENT_USER\Software\Microsoft\
Windows\CurrentVersion\RunServicesOnce]和[HKEY_LOCAL_MACHINE\
Software\Microsoft\Windows\CurrentVersion\RunServicesOnce]下,其中的程序會在系統(tǒng)加載時自動啟動執(zhí)行一次。
這個主要是針對應(yīng)用程序的,系統(tǒng)一級的不會出現(xiàn)在這里,所以如果沒有應(yīng)用程序使用這個,這兩個鍵值就沒有。
三、其他
除了上面兩處常見的自啟動項目外,下面這些也可以讓程序自動運行起來:
[HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows]下的load鍵值的程序;
[HKEY_CURRENT_USER\SOFTWARE\
Microsoft\Windows NT\CurrentVersion\Winlogon]和[HKEY_LOCAL_MACHINE\
SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon],注意下面的Notify、Userinit、Shell鍵值也會有自啟動的程序,而且其鍵值可以用逗號分隔,從而實現(xiàn)登錄的時候啟動多個程序。
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad]
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts]
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]
是不是覺得很恐怖,干嘛留這么多可能的入口,跟人類一樣呀,演唱會不是也有很多角色可以進入會場嘛!
四、系統(tǒng)層面的入口
還沒完,上面是注冊表層面的,系統(tǒng)層面還有一些入口:
比如,最常見的是下面這個地方:
你把軟件的快捷方式拖到這個啟動下面,這里是進入系統(tǒng)之后,最后運行的一個地方,這里的程序也會被運行,這里就是針對最終用戶的。
除此之外,還有,你點開始,運行,輸入win.ini回車,或者system.ini回車,還有兩個配置文件,一個是windows的配置文件,一個是系統(tǒng)級別的配置文件,他們里面也可以添加自啟動項。
Win.ini文件中,在[windows]段下的“Run=”和“LOAD=”語句后面就可以直接加可執(zhí)行程序,只要程序名稱及路徑寫在“=”后面即可。
“l(fā)oad=”后面的程序在自啟動后最小化運行,而“run=”后程序則會正常運行。
System.ini文件,找到[boot]段下“shell=”語句,該語句默認(rèn)為“shell=Explorer.exe”,啟動的時候運行Windows外殼程序explorer.exe。
上面這些,除了正常程序外,病毒程序,惡意軟件,也都可以通過修改上面這些地方來實現(xiàn)自啟動,然后來干壞事,是不是更加覺得恐怖。
最后的最后,還有一種方式可以自啟動,就是使用計劃任務(wù):
通過“開始→程序→附件→系統(tǒng)工具→任務(wù)計劃”即可該界面,當(dāng)然這個除了開機之外的其他計劃任務(wù)也是可以執(zhí)行的。
反過來,你想干掉這些自啟動的程序,也是檢查這些地方,可以手工去檢查,也可以通過工具軟件,360這些軟件的啟動優(yōu)化就是自動化的去干這些事情。
現(xiàn)在理解了軟件程序自啟動的過程了嗎?理解了請給大白點個贊吧!
聯(lián)系客服