近期有Windows用戶反映稱,自己的三星電腦上Windows自動(dòng)更新程序會(huì)被隨機(jī)禁用,這個(gè)給他們的PC安全帶來了安全隱患。禁用Windows更新的程序名為Disable_Windowsupdate.exe,這個(gè)程序是三星SW Update軟件的一部分。
SW Update是典型的OEM更新軟件,這個(gè)軟件被用來更新三星的驅(qū)動(dòng)程序,同時(shí)也會(huì)更新一些三星自己的軟件。與其他OEM更新軟件不同的是,三星的這款更新軟件會(huì)禁用Windows自動(dòng)更新!
受影響系統(tǒng)版本
Windows XP (all Service Packs)
Windows Vista (x86/x64)
Windows 7/SP1 (x86/x64)
Windows 8/8.1 (x86/x64)
需要注意,這些版本都是在三星機(jī)器環(huán)境下進(jìn)行檢測(cè)的。如果有什么疏漏,歡迎補(bǔ)充。
卸載/移除三星SW Update
SW Update在Windows添加/刪除(卸載和更改程序)中有列出來,它可以向其他正常軟件一樣從系統(tǒng)中刪除。將其卸載后重啟機(jī)器,它不會(huì)被移除。SE Update Service仍然活躍運(yùn)行著,存在于\ProgramData\Samsung文件夾下面的”Disable_Windowsupdate.exe”程序依舊還在。
首先,經(jīng)過傳統(tǒng)卸載之后,還需要在注冊(cè)表中刪除一些值
譯者注:由于信息量太大,編輯器無法保存,文后筆者會(huì)附加到網(wǎng)盤中。
正如你所見到的,它能刪除與該服務(wù)相關(guān)的鍵值。
HKLM\SOFTWARE\Samsung\SW Update\AgentPath: “C:\ProgramData\Samsung\SW Update Service\SWMAgent.exe”
然而,在注冊(cè)表中快速查找這個(gè)鍵值
可以看到該服務(wù)依舊還在。
正如筆者前面提到的,這可能是卸載發(fā)生在非三星環(huán)境中,因此卸載進(jìn)程可能被中斷了或者不能如預(yù)期一樣正常工作。這僅僅是筆者的一個(gè)猜測(cè),然而在三星環(huán)境中甚至也會(huì)發(fā)送這種情況。
因?yàn)楣P者沒有一個(gè)正式的三星環(huán)境用來測(cè)試,筆者無法評(píng)論說通過傳統(tǒng)卸載方式能夠移除,希望能夠移除吧,徹底的!
如果你是一個(gè)三星用戶,如上面所說先通過正常卸載方式進(jìn)行卸載,如果依舊存在的話就只能夠通過手工卸載,或者是等待三星發(fā)布工具進(jìn)行卸載了,就和前短時(shí)間聯(lián)想的Superfish一樣。
接著來講講如何發(fā)現(xiàn)它:
不久之后…
——-
這里還有其他 Object值的名稱:
1.CachedAUOptions
2.InstallInProgress,
3.UpdatesAvailableForInstallLogon
4.UpdatesAvailableWithUiLogon
5.UpdatesAvailableWithUiOrEulaLogon
6.FirmwareUpdatesNotDownloaded
7.FirmwareUpdatesNotInstalled
總之,繼續(xù)往下看:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\AuthorizedCDFPrefix: “”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Comments: “SW Update Setup”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Contact: “Samsung Electronics CO., LTD.”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\DisplayVersion: “2.2.9”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\HelpLink: “http://www.samsung.com”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\HelpTelephone: “”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\InstallDate: “20150623”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\InstallLocation: “”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\InstallSource: “C:\ProgramData\Samsung\SWUpdate\Temp\”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\ModifyPath: “MsiExec.exe /I{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Publisher: “Samsung Electronics CO., LTD.”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Readme: “”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Size: “”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\EstimatedSize: 0x00008172
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\UninstallString: “MsiExec.exe /I{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\URLInfoAbout: “http://www.samsung.com”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\URLUpdateInfo: “”
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\VersionMajor: 0x00000002
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\VersionMinor: 0x00000002
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\WindowsInstaller: 0x00000001
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Version: 0x02020009
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\Language: 0x00000409
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AAFEFB05-CF98-48FC-985E-F04CD8AD620D}\DisplayName: “SW Update”
這是安裝后,注冊(cè)表改變的基礎(chǔ)信息比較
HKLM\SOFTWARE\Samsung\CurrentPath\20000: “”C:\Program Files\Samsung\SW Update\sManager.exe””
HKLM\SOFTWARE\Samsung\SW Update\AgentPath: “C:\ProgramData\Samsung\SW Update Service\SWMAgent.exe”
HKLM\SOFTWARE\Samsung\SW Update\InstallPath: “C:\Program Files\Samsung\SW Update\sManager.exe”
HKLM\SOFTWARE\Samsung\SW Update\TrafficDecentralize: “Y”
HKLM\SOFTWARE\Samsung\SW Update\LastORCAServerUpdateDateTime: “2015-06-22T02:28:42″
HKLM\SOFTWARE\Samsung\SW Update\AgentSleepSec: “300”
HKLM\SOFTWARE\Samsung\SWMCommon\FirstAgentExecDateTime: “2015-06-23T01:47:42″
HKLM\SYSTEM\ControlSet001\Services\SWUpdateService\Type: 0x00000110
HKLM\SYSTEM\ControlSet001\Services\SWUpdateService\Start: 0x00000002
HKLM\SYSTEM\ControlSet001\Services\SWUpdateService\ErrorControl: 0x00000001
HKLM\SYSTEM\ControlSet001\Services\SWUpdateService\ImagePath: “C:\ProgramData\Samsung\SW Update Service\SWMAgent.exe /SERVICE”
HKLM\SYSTEM\ControlSet001\Services\SWUpdateService\DisplayName: “SW Update Service”
HKLM\SYSTEM\ControlSet001\Services\SWUpdateService\ObjectName: “LocalSystem”
HKLM\SYSTEM\CurrentControlSet\Services\SWUpdateService\Type: 0x00000110
HKLM\SYSTEM\CurrentControlSet\Services\SWUpdateService\Start: 0x00000002
HKLM\SYSTEM\CurrentControlSet\Services\SWUpdateService\ErrorControl: 0x00000001
HKLM\SYSTEM\CurrentControlSet\Services\SWUpdateService\ImagePath: “C:\ProgramData\Samsung\SW Update Service\SWMAgent.exe /SERVICE”
HKLM\SYSTEM\CurrentControlSet\Services\SWUpdateService\DisplayName: “SW Update Service”
HKLM\SYSTEM\CurrentControlSet\Services\SWUpdateService\ObjectName: “LocalSystem”
在這里能夠看到更多的信息,比如休眠時(shí)間為300秒,第一個(gè)執(zhí)行時(shí)間戳,以及創(chuàng)建SW Update服務(wù)。接下來筆者要做的就是中斷這個(gè)服務(wù)。
Type (0×00000110):據(jù)筆者所知,這暗示這是一個(gè)能夠啟動(dòng)Windows服務(wù)管理器的Win32程序,并能夠讓服務(wù)管理器遵從其指令。這種類型的Win32服務(wù)運(yùn)行在一個(gè)進(jìn)程本身。
Start (0×00000002):這是將所有啟動(dòng)項(xiàng)設(shè)置為加載或者自動(dòng)加載,無論服務(wù)類型。其加載服務(wù)控制管理器,0×0 (boot)作為內(nèi)核,0×1 (system)作為I/O子系統(tǒng)。
ErrorControl (0×00000001):如果驅(qū)動(dòng)初始化或者加載失敗,不論是否提示錯(cuò)誤都繼續(xù)執(zhí)行。
注意到,該文件位置:
C:\ProgramData\Samsung
如果你將顯示隱藏文件夾屬性勾上,你會(huì)注意到兩個(gè)文件夾–“SW Update Service”以及“SWUpdate”。如果你有一臺(tái)三星機(jī)器,你只有一個(gè)SWUpdate文件夾,但都包含XML文件,讓來看看吧(BASW-A0394A05_1B33BCEB.xml)
<?xml version=”1.0″ encoding=”UTF-8″?>
-<MaxList>
-<Head>
<BOMID/>
<CISCode/>
<Product/>
<Project/>
<Model/>
<DevStep/>
<BaseMRT/>
<BaseBOM/>
<Region/>
<OS/>
<Language/>
<ROLString/>
<Date/>
<Time/>
<Test>Yes</Test>
</Head>
-<Item>
<CISCode>BASW-A0394A05</CISCode>
<ItemType>SOFTWARE</ItemType>
<DisplayName>Disable_AutoWindowsUpdate1.0</DisplayName>
<Region>DNC</Region>
<OS>WBPR64/WBSL64/WBST64</OS>
<Lang>DNC</Lang>
<ROLString>ALL</ROLString>
<InstallType>PSTEXE</InstallType>
<InstallPath>BASW-A0394A\BASW-A0394A04.ZIP</InstallPath>
<InstallFile>Inst.exe</InstallFile>
<InstallPara1>/pbr /na</InstallPara1>
<InstallPara2/>
<InstallOrgFileSize>4678908</InstallOrgFileSize>
<InstallFileSize>2055424</InstallFileSize>
<ImageCate>C2P1</ImageCate>
<ImageType>GCP</ImageType>
<ImageSequence/>
<MediaType>SM1</MediaType>
<MediaSubCate>ITMOPT</MediaSubCate>
<MediaSequence/>
<CheckType>NoVerify</CheckType>
<CheckRoot/>
<VerifyAttribute>1.0</VerifyAttribute>
<VerifyPara1/>
<VerifyPara2/>
<System/>
<Selectable>Y</Selectable>
<AND/>
<XOR/>
<DistributionPriority>1</DistributionPriority>
<FURL>http://orcaservice.samsungmobile.com/FileDownloader.aspx?Type=PATCH&FILENAME=BASW-A0394A04.ZIP</FURL>
-<MultiLangDisplayName>
<Default>ENG</Default>
-<Value>
<Lang>ENG</Lang>
<Str>Windows Configuration</Str>
</Value>
-<Value>
<Lang>KOR</Lang>
<Str>Windows Configuration</Str>
</Value>
</MultiLangDisplayName>
<Version>1.0</Version>
-<DDesc>
<Default>ENG</Default>
-<Value>
<Lang>ENG</Lang>
<Str>This program helps your windows configuration settings.</Str>
</Value>
-<Value>
<Lang>KOR</Lang>
<Str>? ????? Windows configuration ???????.</Str>
</Value>
</DDesc>
<RemoveFilePath/>
<RemovePara1/>
<RemovePara2/>
-<RemoveComment>
<Default>ENG</Default>
</RemoveComment>
<UpdatePara1/>
<UpdatePara2/>
<TargetCISCode> </TargetCISCode>
<MutualExclusiveCISCode/>
<SWCate2>Miscellaneous</SWCate2>
<Keyword1>SDR</Keyword1>
<Keyword2>SDR</Keyword2>
<Keyword3>SDR</Keyword3>
<AutoInstall>Y</AutoInstall>
<SingleInstall>Y</SingleInstall>
-<PatchSequence>
-<InstCmd>
<InstCmdType>GENERAL_EXECUTION</InstCmdType>
-<InstCmdParam>
<Name>EXCUTION_FILE_NAME</Name>
<Value>64\Disable_Windowsupdate.exe</Value>
</InstCmdParam>
</InstCmd>
</PatchSequence>
<FromProductDate/>
<ToProductDate/>
<BulletineDate>2015-05-12 17:12:43</BulletineDate>
-<ProcCondition>
-<ProcInfo>
<ProcType>REG_VALUE</ProcType>
-<ProcParam>
<Name>BASE_OP</Name>
<Value>AND</Value>
</ProcParam>
-<ProcParam>
<Name>REG_KEY</Name>
<Value>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update</Value>
</ProcParam>
-<ProcParam>
<Name>REG_VALUE_NAME</Name>
<Value>AUOptions</Value>
</ProcParam>
-<ProcParam>
<Name>REG_VALUE_TYPE</Name>
<Value>REG_DWORD</Value>
</ProcParam>
-<ProcParam>
<Name>REG_VALUE</Name>
<Value>2</Value>
</ProcParam>
-<ProcParam>
<Name>OP_RELATION</Name>
<Value>!=</Value>
</ProcParam>
</ProcInfo>
-<ProcInfo>
<ProcType>REG_VALUE</ProcType>
-<ProcParam>
<Name>BASE_OP</Name>
<Value>AND</Value>
</ProcParam>
-<ProcParam>
<Name>REG_KEY</Name>
<Value>HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update</Value>
</ProcParam>
-<ProcParam>
<Name>REG_VALUE_NAME</Name>
<Value>AUOptions</Value>
</ProcParam>
-<ProcParam>
<Name>REG_VALUE_TYPE</Name>
<Value>REG_DWORD</Value>
</ProcParam>
-<ProcParam>
<Name>REG_VALUE</Name>
<Value>4</Value>
</ProcParam>
-<ProcParam>
<Name>OP_RELATION</Name>
<Value>=</Value>
</ProcParam>
</ProcInfo>
</ProcCondition>
<Thumbnail/>
<Screenshot1/>
<Screenshot2/>
<Screenshot3/>
-<AdURL>
<URL/>
<FromDate>1900-01-01 ?? 12:00:00</FromDate>
<ToDate>1900-01-01 ?? 12:00:00</ToDate>
</AdURL>
</Item>
</MaxList>
注意它的安裝文件
現(xiàn)在可以看到Disable_Windowsupdate.exe是如何重復(fù)該過程的,從該地址下載zip文件
http://orcaservice.samsungmobile.com/FileDownloader.aspx?Type=PATCH&FILENAME=BASW-A0394A04.ZIP
筆者發(fā)現(xiàn)這個(gè)字符串片段特別有趣:
<Str>This program helps your windows configuration settings.</Str>
當(dāng)這個(gè)zip文件下載完成,來看看其中的內(nèi)容吧
[zip contents.png]
如果檢測(cè)禁用Windows更新的安裝程序的配置文件
;HowTo : The registry location of the installed language…
;[HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language]
;InstallLanguage=????
;%CD%\ = Current Folder Location Variable
;%WinDir% = Windows Folder ex) C:\Windows C:\Winnt
;%ProgramFiles% = Program Files Folder ex) C:\Program Files, C:\Archivo de program, C:\Programme
;%LangID%
;HowTo : The registry location of the installed language…
;[HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language]
;LangID Lang / Export to
;0412 KOR / KOR
;0409 ENG / UK, HKG
;040C FRN / FRN
;0407 GER / GER
;0411 JPN / JPN
;0404 CHT / CHT
;0804 CHS / CHS
;0C0A SPA / SPA
;0816 POR / POR
;0419 RUS / RUS
[BaseSettings]
OSConditional= TRUE
ShowWin = FALSE
RunInAuditMode = TRUE
[32Win8]
Setup1=xcopy 32\Disable_Windowsupdate.exe “%ALLUSERSPROFILE%\Samsung\” /y
Setup2=schtasks /create /XML “%CD%\Dis_AU.xml” /tn “Dis_AU”
[64Win8]
Setup1=xcopy 64\Disable_Windowsupdate.exe “%ALLUSERSPROFILE%\Samsung\” /y
Setup2=schtasks /create /XML “%CD%\Dis_AU.xml” /tn “Dis_AU”
看到其使用了xcopy命令,就免不了“drop”位于\ProgramData\Samsung的Disable_Windowsupdate.exe。%ALLUSERPROFILE% 是Vista版本以上的環(huán)境變量, \Documents and Settings\All Users為XP上的環(huán)境變量。
這一點(diǎn),可以通過檢測(cè)得到證實(shí)
[dropped.png]
注意該exe的簽名為Samsung自己的
[cert.png]
可惡罪行
首先,正如筆者之前提到過的,最好不要在非三星環(huán)境下嘗試運(yùn)行三星的更新軟件。筆者的虛擬機(jī)就截個(gè)圖片都能遇到重啟,所以每張截圖會(huì)有幾分鐘的間隔。
安裝SW Updata之后,Windows更新就這樣了
注意看第二張圖片的“檢測(cè)更新并讓筆者選擇是否下載并安裝”選項(xiàng),將其更改為“自動(dòng)安裝更新(推薦)”選項(xiàng)
真棒,接下來重啟看看
又變回來了。再檢查下設(shè)置
于是筆者聯(lián)系上了三星的客服,以下是聊天記錄(Rep為客服名稱,ringzero即是本文作者):
Rep: Hi, 感謝你找到三星技術(shù)支持。 筆者可以幫到你什么么?
ringzero: Hi Rep, 筆者對(duì)你們家的 SW Update軟件有些問題。
Rep: Hi Ringzero, 請(qǐng)?jiān)敿?xì)說說你的問題吧。
Rep: 筆者很樂意幫助你的。
ringzero: 謝謝Rep! 筆者的問題是, 為什么這個(gè)軟件主動(dòng)監(jiān)視筆者的注冊(cè)表,以及通過強(qiáng)行禁用Windows更新?
Rep: SW Update工具幫助你的筆記本自動(dòng)檢查硬件并為他們安裝支持的驅(qū)動(dòng)程序。這個(gè)工具并不會(huì)影響到你的注冊(cè)表以及Windows的正常更新。
ringzero: Rep,你恐怕是搞錯(cuò)了吧 SW Update包含一個(gè)名為 “Disable_Windowsupdate.exe”的exe文件
ringzero: 當(dāng)SW Update完成安裝之后, Windows Update就被禁用了。 如果你將其設(shè)置為你喜愛的選項(xiàng),在重啟之后又強(qiáng)行被禁用了。
ringzero: 如果SW Update被卸載, Windows Update始終保持著其選項(xiàng)。
Rep: 謝謝你的等待, 等筆者一會(huì)馬上就回來。
ringzero: 好的。
Rep: 當(dāng)你啟用Windows updates, 它會(huì)安裝一個(gè)默認(rèn)的驅(qū)動(dòng)程序,否則可能導(dǎo)致筆記本不工作。 舉例來說你的筆記本支持USB3.0, 安裝更新之后這個(gè)端口可能會(huì)不能正常工作,所以為了保護(hù)SW Update工具將阻止Windows更新!
感謝代表這三星的Rep,終于知道三星禁用Windows更新的動(dòng)機(jī)咯。
OEMs,繼續(xù)啊。難道真忘了聯(lián)想Superfish的教訓(xùn)?
注冊(cè)表信息:鏈接:http://pan.baidu.com/s/1dDCTz8X 密碼:0x0v
目前已經(jīng)將此事報(bào)告給Microsoft/MSRC,難道現(xiàn)在禁用Windows更新成為了時(shí)尚?