操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    決電腦運(yùn)行慢(8s優(yōu)化)
    修復(fù)Windows顯示問(wèn)題,顯示器上的文字無(wú)法讀取
    解決光驅(qū)不讀盤或無(wú)法刻錄光盤的問(wèn)題
    Office2010卸載工具forWinXP
    系統(tǒng)慢、電腦性能變差自動(dòng)診斷和修復(fù)
    自動(dòng)診斷并修復(fù)Windows音頻錄制問(wèn)題
    邁克菲(McAfee)卸載工具forwinxp/win7/8/10
    解決windows8/windows10系統(tǒng)電池?zé)o法充滿問(wèn)題(yoga專用)
    自動(dòng)診斷并修復(fù)Windows音頻播放問(wèn)題
    桌面快捷方式小箭頭去除/恢復(fù)工具winxp/7/8
    修復(fù)當(dāng)IE掛起或死機(jī)時(shí)InternetExplorer加載項(xiàng)的問(wèn)題
    解決游戲不能全屏問(wèn)題
    修復(fù)IE問(wèn)題:IE速度慢、網(wǎng)頁(yè)崩潰、IE不響應(yīng)、報(bào)錯(cuò)和不穩(wěn)定
    主機(jī)編號(hào)檢測(cè)工具
    自動(dòng)診斷并修復(fù)Windows防火墻服務(wù)問(wèn)題forwin7/8/8.1/10
    修復(fù)windows系統(tǒng)安全問(wèn)題,修復(fù)防火墻,保護(hù)電腦系統(tǒng)
    解決IE運(yùn)行時(shí)報(bào)錯(cuò)
    自動(dòng)診斷和修復(fù)Windows系統(tǒng)安全問(wèn)題,修復(fù)安全設(shè)置
    IE瀏覽器修復(fù)工具
    解決電腦關(guān)機(jī)慢問(wèn)題
    Windows系統(tǒng)打印功能檢測(cè)修復(fù)工具
    解決運(yùn)行WindowsUpdate報(bào)錯(cuò),無(wú)法更新等問(wèn)題winxp
    診斷并修復(fù)WindowsUSB問(wèn)題
    關(guān)閉磁盤開機(jī)自檢解決開機(jī)自檢時(shí)死機(jī)問(wèn)題
    修復(fù)WindowsUpdate問(wèn)題
    修復(fù)Win8/8.1/10應(yīng)用商店無(wú)法打開
    修復(fù)軟件安裝問(wèn)題和軟件卸載問(wèn)題
    解決Win8/10應(yīng)用商店中安裝應(yīng)用時(shí)顯示掛起的問(wèn)題
    啟用或禁用Windows7Sidebar(邊欄)工具
    聯(lián)想win8開始菜單
    Office2003卸載工具forWinXP/7
    Office2007卸載工具forWinXP
    診斷和修復(fù)硬件相關(guān)(未安裝驅(qū)動(dòng)、驅(qū)動(dòng)問(wèn)題、設(shè)備禁用等)問(wèn)題
    Aero視覺效果問(wèn)題
    觸控板控制工具
    Windows文件和文件夾問(wèn)題
    攝像頭鍵值問(wèn)題(代碼19)
    修復(fù)Windows7和Vista圖片庫(kù)問(wèn)題
    解決安裝Microsoft.NETFramework4的更新時(shí)間過(guò)長(zhǎng)問(wèn)題
    啟用所有隧道的接口的IPv6-win7
    修復(fù)WindowsSearch崩潰或不顯示結(jié)果的問(wèn)題
    創(chuàng)建桌面快捷圖標(biāo)工具
    Windows系統(tǒng)優(yōu)化:筆記本電源使用和電池壽命的問(wèn)題
    攝像頭預(yù)覽失敗修復(fù)工具
    啟用IPv6及其組件forwin7
    自動(dòng)獲取ip地址工具
    Windows優(yōu)化:常見系統(tǒng)優(yōu)化維護(hù)
    禁用所有隧道的接口的IPv6forwin7
    設(shè)備管理器中光驅(qū)嘆號(hào)修復(fù)工具
    禁用IPv6及其組件forwin7
    高分屏顯示模糊修復(fù)工具
    IE10_11無(wú)法啟動(dòng)
    修復(fù)顯示驅(qū)動(dòng)程序停止響應(yīng),并已恢復(fù)錯(cuò)誤
    SuperFish檢測(cè)及專用卸載工具
    IE主頁(yè)設(shè)置工具
    桌面圖標(biāo)大小異常修復(fù)工具
    開機(jī)無(wú)法加載Explorer
    攝像頭被占用修復(fù)工具
    計(jì)算機(jī)中盤符丟失修復(fù)工具
    攝像頭嘆號(hào)修復(fù)工具
    內(nèi)存不能為read修復(fù)工具
    安全刪除硬件圖標(biāo)丟失修復(fù)工具
    整數(shù)分區(qū)計(jì)算工具
    音量圖標(biāo)無(wú)法設(shè)置修復(fù)工具
    打開IE默認(rèn)最大化修復(fù)工具
    本地連接圖標(biāo)丟失修復(fù)工具
    聯(lián)想驅(qū)動(dòng)管理工具
    計(jì)算機(jī)管理打開異常或者沒有反應(yīng)
    解決不能看在線視頻問(wèn)題
    關(guān)閉驅(qū)動(dòng)自動(dòng)更新
    修改windows系統(tǒng)密碼工具
    Pokki官方卸載工具
    電腦開機(jī)提示報(bào)錯(cuò)svchost.exe應(yīng)用程序錯(cuò)誤修復(fù)工具
    系統(tǒng)時(shí)間顯示錯(cuò)誤修復(fù)工具
    機(jī)器睡眠無(wú)法喚醒修復(fù)工具
    Win8.1/10Flash插件修復(fù)工具
    寬帶撥號(hào)報(bào)錯(cuò)711修復(fù)工具
    強(qiáng)力卸載工具
    亮度調(diào)節(jié)工具
    Synaptics觸控板如何外接鼠標(biāo)后自動(dòng)禁用觸控板
    如何取消win7圖標(biāo)右下角的小盾牌
    解決windows無(wú)法更新,應(yīng)用商店無(wú)法打開
    在開始菜單創(chuàng)建關(guān)機(jī)快捷方式
    解決強(qiáng)制要求驅(qū)動(dòng)簽名
    win8/10連接無(wú)線網(wǎng)絡(luò)提示“網(wǎng)絡(luò)連接受限”,優(yōu)化TCP/IP協(xié)議工具
    Aero特效診斷工具
    win7/win8/win10下睡眠不斷網(wǎng)
    藍(lán)牙傳輸文件工具
    硬件信息在線檢測(cè)
    藍(lán)屏分析診斷工具
    添加攝像頭快捷方式
    Fn+F5快捷鍵修復(fù)工具
    關(guān)閉或啟用windows自動(dòng)更新
    有線網(wǎng)絡(luò)修復(fù)工具
    一鍵重啟或關(guān)機(jī)工具
    設(shè)置無(wú)線共享工具
    解決運(yùn)行WindowsUpdate報(bào)錯(cuò),無(wú)法更新等問(wèn)題win7/8
    如何查看系統(tǒng)密鑰
    分辨率設(shè)置工具
    win8/8.1/10磁盤占用率高修復(fù)工具
    Windows10RS1微軟官方升級(jí)工具“易升”
    硬盤保護(hù)系統(tǒng)常見問(wèn)題匯總
    Win10升級(jí)工具
    設(shè)置電源管理為“高性能”
    快速打開Windows常用工具
    無(wú)線網(wǎng)卡開關(guān)切換工具
    解決系統(tǒng)文件異常問(wèn)題(sfc/scannow)
    無(wú)線網(wǎng)絡(luò)修復(fù)工具
    一鍵打開系統(tǒng)還原
    MIIX5(MIIX510)外接原裝鍵盤FN功能翻轉(zhuǎn)
    TYXYWKHD藍(lán)屏工具
    MIIX5(510)keyboardFN
    快速設(shè)置虛擬內(nèi)存工具
    桌面圖標(biāo)關(guān)聯(lián)修復(fù)工具(快捷方式圖標(biāo)變?yōu)槟骋怀绦驁D標(biāo))
    快速卸載Windows自動(dòng)更新
    啟用/禁用超級(jí)管理員工具
    新建賬戶工具
    解決intel3165/3160無(wú)線網(wǎng)卡無(wú)法開啟網(wǎng)絡(luò)承載
    Windows10系統(tǒng)應(yīng)用商店打不開或閃退
    免密碼登錄Windows系統(tǒng)工具
    預(yù)裝office2016家庭版出現(xiàn)試用、購(gòu)買、激活的提示修復(fù)工具
    office2016家庭版疑難解答工具
    解決windows10系統(tǒng)開始菜單異常
    解決Win10電源圖標(biāo)不顯示且圖標(biāo)開關(guān)灰色
    Windows.old文件夾刪除工具
    鍵盤按鍵失靈工具
    DirectX修復(fù)檢測(cè)工具
    VC++安裝工具
    .NETFramework安裝、卸載工具
    LSP/Winsock修復(fù)工具
    處理器&內(nèi)存顯示“不可用”修復(fù)工具
    比特幣勒索病毒預(yù)防專家
    比特幣勒索病毒端口恢復(fù)工具
    MIIX4(MIIX700)外接原裝鍵盤FN功能翻轉(zhuǎn)工具
    文件和打印機(jī)共享功能修復(fù)工具
    文件共享工具
    游戲彈出bugsplat報(bào)錯(cuò)修復(fù)工具
    IE主頁(yè)設(shè)置已損壞修復(fù)工具
    游戲報(bào)錯(cuò)提示缺少xinput*.dll文件的修復(fù)工具
    安裝游戲提示“出現(xiàn)錯(cuò)誤,并非所有功能被成功更改”的修復(fù)工具
    系統(tǒng)服務(wù)修復(fù)工具
    輸入法修復(fù)工具
    網(wǎng)頁(yè)游戲修復(fù)工具
    定時(shí)關(guān)機(jī)工具
    桌面圖標(biāo)關(guān)聯(lián)修復(fù)工具(快捷方式圖標(biāo)變?yōu)槲粗绦驁D標(biāo))
    WinXP/7系統(tǒng)下的Flash修復(fù)工具
    資源管理器打不開修復(fù)工具
    靜態(tài)IP設(shè)置工具
    解決運(yùn)行WindowsUpdate報(bào)錯(cuò),無(wú)法更新等問(wèn)題win10
    Office2007/2010/2013/365/2016卸載工具
    電腦垃圾清理工具

    下載地址:關(guān)注評(píng)論+轉(zhuǎn)發(fā)+私信回復(fù)

    (人工私信回復(fù)有延遲,請(qǐng)理解)

    關(guān)注小哥,必出精品。

    尋找熱愛表達(dá)的你#

    摘要:本文深入探討了兩次全球性大規(guī)模 Windows 死機(jī)事件,主角是 CrowdStrike 創(chuàng)始人喬治·庫(kù)爾茨。文章詳細(xì)闡述了他與 2010 年邁克菲以及近日 CrowdStrike 軟件更新導(dǎo)致的藍(lán)屏死機(jī)事件的關(guān)聯(lián)。通過(guò)回顧這兩次事件的經(jīng)過(guò)、影響以及喬治·庫(kù)爾茨在其中的角色,揭示了軟件更新引發(fā)的嚴(yán)重問(wèn)題以及相關(guān)企業(yè)在網(wǎng)絡(luò)安全領(lǐng)域面臨的挑戰(zhàn)。同時(shí),分析了此類事件對(duì)各行業(yè)的沖擊,并探討了如何避免類似情況再次發(fā)生的措施和建議。

    關(guān)鍵詞:CrowdStrike;喬治·庫(kù)爾茨;邁克菲;藍(lán)屏死機(jī)事件;軟件更新;網(wǎng)絡(luò)安全


    一、引言

    在當(dāng)今數(shù)字化高度發(fā)展的時(shí)代,計(jì)算機(jī)系統(tǒng)的穩(wěn)定運(yùn)行對(duì)于個(gè)人、企業(yè)乃至整個(gè)社會(huì)都至關(guān)重要。然而,軟件更新這一看似平常的操作,卻在某些情況下引發(fā)了全球性的大規(guī)模 Windows 死機(jī)事件,給眾多用戶帶來(lái)了極大的困擾和損失。本文將聚焦于兩次這樣的事件,深入剖析其背后的原因、影響以及相關(guān)責(zé)任人。


    二、CrowdStrike 與喬治·庫(kù)爾茨

    (一)CrowdStrike 公司簡(jiǎn)介
    CrowdStrike 是一家提供在線安全解決方案的知名公司,專注于提供基于云計(jì)算的端點(diǎn)保護(hù)平臺(tái)。該公司成立于 2011 年,總部位于美國(guó)加利福尼亞州。其主要產(chǎn)品 Falcon 平臺(tái)利用人工智能和機(jī)器學(xué)習(xí)技術(shù)來(lái)檢測(cè)、預(yù)防和響應(yīng)網(wǎng)絡(luò)威脅,在網(wǎng)絡(luò)安全領(lǐng)域具有重要地位。

    (二)喬治·庫(kù)爾茨的背景
    喬治·庫(kù)爾茨在網(wǎng)絡(luò)安全領(lǐng)域有著豐富的經(jīng)驗(yàn)和影響力。他于 2004 年加入邁克菲,擔(dān)任高級(jí)副總裁兼風(fēng)險(xiǎn)管理總監(jiān)理,并在 2009 年 10 月晉升為首席技術(shù)官。2011 年離開邁克菲后,創(chuàng)立了 CrowdStrike。


    三、2010 年邁克菲大規(guī)模藍(lán)屏死機(jī)事件回顧

    2010 年 4 月,一次嚴(yán)重的藍(lán)屏死機(jī)事件席卷全球大量 Windows XP 系統(tǒng)。而這一事件的源頭,竟是邁克菲發(fā)布的病毒庫(kù)更新 dat5958 版。

    當(dāng)時(shí),邁克菲發(fā)布的這個(gè)更新版本出現(xiàn)了嚴(yán)重的誤報(bào),將 Windows 核心文件 svchost.exe 錯(cuò)誤地標(biāo)記為病毒。svchost.exe 是 Windows 操作系統(tǒng)中一個(gè)至關(guān)重要的進(jìn)程,負(fù)責(zé)運(yùn)行許多系統(tǒng)服務(wù)。由于邁克菲的誤報(bào),大量計(jì)算機(jī)系統(tǒng)將該文件當(dāng)作病毒進(jìn)行處理,從而導(dǎo)致了藍(lán)屏死機(jī)現(xiàn)象的大規(guī)模出現(xiàn)。

    這一事件給全球范圍內(nèi)的用戶帶來(lái)了巨大的困擾和損失。許多企業(yè)的業(yè)務(wù)運(yùn)營(yíng)受到嚴(yán)重影響,工作效率大幅下降;個(gè)人用戶也面臨數(shù)據(jù)丟失、工作中斷等問(wèn)題。在一些關(guān)鍵領(lǐng)域,如醫(yī)療保健行業(yè),醫(yī)院的正常工作秩序被打亂,可能導(dǎo)致病人的治療延誤;金融領(lǐng)域的銀行系統(tǒng)也遭遇故障,影響了客戶的業(yè)務(wù)辦理。


    (一)事件的經(jīng)過(guò)與原因分析
    2010 年 4 月的某一天,用戶們像往常一樣開啟他們的 Windows XP 電腦,卻驚訝地發(fā)現(xiàn)屏幕上出現(xiàn)了藍(lán)屏死機(jī)的畫面。經(jīng)過(guò)調(diào)查,發(fā)現(xiàn)是邁克菲的病毒庫(kù)更新出現(xiàn)了問(wèn)題。

    邁克菲作為一家知名的安全軟件公司,其病毒庫(kù)更新的目的是為了保護(hù)用戶的計(jì)算機(jī)免受新出現(xiàn)的病毒和惡意軟件的威脅。然而,在這個(gè)特定的更新版本(dat5958 版)中,出現(xiàn)了嚴(yán)重的誤報(bào)情況。

    原因可能是多方面的。首先,病毒庫(kù)的更新過(guò)程可能存在缺陷或錯(cuò)誤,導(dǎo)致對(duì)正常文件的誤識(shí)別。其次,可能是病毒庫(kù)的算法或規(guī)則出現(xiàn)了問(wèn)題,使得原本不應(yīng)被判定為病毒的 svchost.exe 文件被錯(cuò)誤地標(biāo)記。此外,測(cè)試環(huán)節(jié)可能不夠充分,未能在發(fā)布前發(fā)現(xiàn)這一嚴(yán)重的誤報(bào)問(wèn)題。

    (二)對(duì)各行業(yè)的影響


    1. 企業(yè)運(yùn)營(yíng)受阻
      眾多企業(yè)的計(jì)算機(jī)系統(tǒng)陷入癱瘓,員工無(wú)法正常使用電腦進(jìn)行工作。這導(dǎo)致了業(yè)務(wù)流程的中斷,生產(chǎn)效率急劇下降,企業(yè)遭受了巨大的經(jīng)濟(jì)損失。
    2. 醫(yī)療行業(yè)的挑戰(zhàn)
      醫(yī)院的計(jì)算機(jī)系統(tǒng)受到影響,一些醫(yī)療設(shè)備的運(yùn)行依賴于計(jì)算機(jī)系統(tǒng),這可能導(dǎo)致手術(shù)的推遲、病人信息的丟失等嚴(yán)重后果,對(duì)患者的治療和健康構(gòu)成了威脅。
    3. 金融系統(tǒng)的混亂
      銀行的業(yè)務(wù)系統(tǒng)出現(xiàn)故障,客戶無(wú)法進(jìn)行正常的交易和查詢操作,可能引發(fā)客戶的不滿和信任危機(jī)。此外,金融數(shù)據(jù)的安全性也受到了一定程度的威脅。
    4. 其他行業(yè)的波及
      包括教育、政府部門、交通運(yùn)輸?shù)雀鱾€(gè)領(lǐng)域都受到了不同程度的影響。學(xué)校的教學(xué)活動(dòng)可能受到干擾,政府部門的辦公效率降低,交通運(yùn)輸系統(tǒng)的信息處理出現(xiàn)問(wèn)題等。

    (三)喬治·庫(kù)爾茨在事件中的責(zé)任
    作為邁克菲當(dāng)時(shí)的首席技術(shù)官,喬治·庫(kù)爾茨對(duì)這一事件負(fù)有直接的管理責(zé)任。他負(fù)責(zé)領(lǐng)導(dǎo)和監(jiān)督公司的技術(shù)團(tuán)隊(duì),包括病毒庫(kù)的開發(fā)、測(cè)試和更新等工作。

    在這次事件中,喬治·庫(kù)爾茨的管理決策和技術(shù)監(jiān)督可能存在不足之處。他未能確保病毒庫(kù)更新的準(zhǔn)確性和可靠性,沒有及時(shí)發(fā)現(xiàn)并解決誤報(bào)問(wèn)題,從而導(dǎo)致了如此大規(guī)模的藍(lán)屏死機(jī)事件的發(fā)生。

    四、近日 CrowdStrike 軟件更新引發(fā)的全球性藍(lán)屏死機(jī)事件

    (一)事件的爆發(fā)
    快科技 7 月 21 日消息,近日,全球 850 萬(wàn)臺(tái) Windows 設(shè)備因 CrowdStrike 軟件更新而遭遇藍(lán)屏死機(jī),再次引發(fā)了廣泛關(guān)注和巨大的潛在影響。

    (二)事件的具體情況
    與 2010 年的邁克菲事件相似,CrowdStrike 在發(fā)布的軟件更新中出現(xiàn)了問(wèn)題。盡管具體的原因尚未完全明確,但初步判斷是軟件更新與 Windows 系統(tǒng)的兼容性或某些內(nèi)部錯(cuò)誤導(dǎo)致了系統(tǒng)的崩潰。

    這一事件迅速在全球范圍內(nèi)蔓延,大量用戶的 Windows 設(shè)備陷入藍(lán)屏死機(jī)狀態(tài),無(wú)法正常使用。無(wú)論是個(gè)人用戶還是企業(yè)用戶,都受到了嚴(yán)重的影響。

    (三)對(duì)各行業(yè)的沖擊

    1. 企業(yè)業(yè)務(wù)癱瘓
      許多公司的日常運(yùn)營(yíng)依賴于計(jì)算機(jī)系統(tǒng),藍(lán)屏死機(jī)導(dǎo)致業(yè)務(wù)流程停滯不前,郵件無(wú)法發(fā)送、文件無(wú)法處理、系統(tǒng)無(wú)法登錄等問(wèn)題接踵而至,給企業(yè)帶來(lái)了巨大的經(jīng)濟(jì)損失和業(yè)務(wù)延誤。
    2. 金融領(lǐng)域的困境
      銀行、證券等金融機(jī)構(gòu)的交易系統(tǒng)和客戶服務(wù)受到嚴(yán)重干擾。客戶無(wú)法進(jìn)行網(wǎng)上銀行操作、交易處理受阻,可能引發(fā)金融市場(chǎng)的不穩(wěn)定和客戶信任的下降。
    3. 醫(yī)療保健的緊急情況
      醫(yī)院的醫(yī)療設(shè)備和信息系統(tǒng)受到影響,病人的診斷、治療和病歷管理等工作面臨困難,甚至可能危及患者的生命安全。
    4. 交通運(yùn)輸?shù)幕靵y
      航空公司、鐵路等交通運(yùn)輸部門的系統(tǒng)故障導(dǎo)致航班延誤、車次混亂,旅客行程受到嚴(yán)重影響,給人們的出行帶來(lái)極大不便。
    5. 其他行業(yè)的連鎖反應(yīng)
      教育機(jī)構(gòu)的在線教學(xué)受阻,學(xué)生的學(xué)習(xí)進(jìn)度受到影響;政府部門的辦公效率降低,公共服務(wù)的提供受到限制;零售行業(yè)的銷售系統(tǒng)無(wú)法正常運(yùn)行等。

    (四)喬治·庫(kù)爾茨的關(guān)聯(lián)與責(zé)任探討
    令人意想不到的是,CrowdStrike 的創(chuàng)始人喬治·庫(kù)爾茨竟與此次事件也有著千絲萬(wàn)縷的聯(lián)系。他曾在 2004 年加入邁克菲,擔(dān)任高級(jí)副總裁兼風(fēng)險(xiǎn)管理總監(jiān)理,并于 2009 年 10 月晉升為首席技術(shù)官。而在 2010 年的邁克菲大規(guī)模藍(lán)屏死機(jī)事件中,他作為邁克菲的首席技術(shù)官,對(duì)當(dāng)時(shí)的問(wèn)題負(fù)有直接管理責(zé)任。

    盡管目前還不能確定喬治·庫(kù)爾茨在此次 CrowdStrike 事件中具體扮演了怎樣的角色,但他的過(guò)往經(jīng)歷使得人們對(duì)他在網(wǎng)絡(luò)安全和軟件更新管理方面的能力產(chǎn)生了質(zhì)疑。

    五、兩次事件的比較與分析

    (一)相似之處

    兩次事件均由軟件更新引發(fā),無(wú)論是邁克菲的病毒庫(kù)更新還是 CrowdStrike 的軟件更新,都成為了導(dǎo)致大規(guī)模藍(lán)屏死機(jī)事件的直接原因,這凸顯了軟件更新過(guò)程中潛在的風(fēng)險(xiǎn)和可能出現(xiàn)的問(wèn)題。而且,兩次事件都對(duì)全球范圍造成了廣泛影響,波及大量的 Windows 設(shè)備用戶,不分地域和行業(yè),給各個(gè)領(lǐng)域都帶來(lái)了嚴(yán)重的沖擊和損失。此外,兩次事件都涉及到了操作系統(tǒng)的重要系統(tǒng)和進(jìn)程,2010 年邁克菲事件中是 Windows 核心文件 svchost.exe,而此次 CrowdStrike 事件中可能是與系統(tǒng)關(guān)鍵部分相關(guān)的某些因素。

    (二)不同之處

    首先是時(shí)間間隔,兩次事件相隔數(shù)年,反映了在不同時(shí)期網(wǎng)絡(luò)安全和軟件更新管理方面的挑戰(zhàn)和變化。

    其次,公司背景與規(guī)模有所不同。邁克菲是老牌的安全軟件公司,而 CrowdStrike 是相對(duì)較新但在網(wǎng)絡(luò)安全領(lǐng)域具有重要影響力的企業(yè)。

    再者,隨著時(shí)間的推移,技術(shù)發(fā)展與復(fù)雜性也有所改變。如今的網(wǎng)絡(luò)環(huán)境更加復(fù)雜,軟件系統(tǒng)的集成度和關(guān)聯(lián)性更高,一個(gè)軟件的問(wèn)題可能會(huì)引發(fā)更多連鎖反應(yīng)。在 2010 年,網(wǎng)絡(luò)安全的重點(diǎn)可能更多地集中在病毒和惡意軟件的檢測(cè)與清除上;而在當(dāng)前,隨著云計(jì)算、物聯(lián)網(wǎng)等技術(shù)的發(fā)展,網(wǎng)絡(luò)安全的范疇更加廣泛,涉及到更多層面和環(huán)節(jié)。

    另外,從事件的具體情況來(lái)看,雖然都是軟件更新導(dǎo)致的藍(lán)屏死機(jī),但每次的原因和表現(xiàn)可能會(huì)有所差異。邁克菲事件中是病毒庫(kù)更新的誤報(bào),將正常文件當(dāng)作病毒處理;而 CrowdStrike 此次事件的具體原因尚未完全明確,但初步判斷是軟件更新與 Windows 系統(tǒng)的兼容性或某些內(nèi)部錯(cuò)誤導(dǎo)致了系統(tǒng)崩潰。

    (三)喬治·庫(kù)爾茨的角色變化

    在 2010 年邁克菲事件中,喬治·庫(kù)爾茨擔(dān)任邁克菲的首席技術(shù)官,對(duì)當(dāng)時(shí)的問(wèn)題負(fù)有直接管理責(zé)任。而在近日的 CrowdStrike 事件中,盡管目前還不能確定他具體扮演了怎樣的角色,但他作為 CrowdStrike 的創(chuàng)始人,其公司的軟件更新引發(fā)了如此大規(guī)模的問(wèn)題,難免使人們對(duì)他在網(wǎng)絡(luò)安全和軟件更新管理方面的能力產(chǎn)生質(zhì)疑。

    他在網(wǎng)絡(luò)安全領(lǐng)域的經(jīng)驗(yàn)和地位使得他在這兩次事件中的關(guān)聯(lián)備受關(guān)注。盡管不能簡(jiǎn)單地將所有責(zé)任歸咎于他個(gè)人,但這兩次事件都提醒我們,即使是經(jīng)驗(yàn)豐富的專業(yè)人士和知名企業(yè),也可能在軟件更新和網(wǎng)絡(luò)安全管理上出現(xiàn)疏漏,從而導(dǎo)致嚴(yán)重的后果。

    (四)對(duì)行業(yè)的啟示

    這兩次事件給整個(gè)網(wǎng)絡(luò)安全行業(yè)帶來(lái)了深刻的啟示。軟件供應(yīng)商必須高度重視軟件更新的質(zhì)量和測(cè)試工作,確保更新不會(huì)引入新的嚴(yán)重問(wèn)題。在發(fā)布更新之前,要進(jìn)行充分的測(cè)試,包括各種環(huán)境和場(chǎng)景的模擬,以盡可能發(fā)現(xiàn)潛在的兼容性問(wèn)題和錯(cuò)誤。

    同時(shí),企業(yè)和用戶也應(yīng)該對(duì)軟件更新保持一定的警惕性。盡管更新通常是為了改進(jìn)和增強(qiáng)安全性,但也不能盲目地立即安裝更新,尤其是在一些關(guān)鍵系統(tǒng)上。可以適當(dāng)延遲更新,觀察其他用戶的反饋,或者在測(cè)試環(huán)境中進(jìn)行驗(yàn)證。

    此外,建立應(yīng)急響應(yīng)機(jī)制至關(guān)重要。當(dāng)出現(xiàn)類似的大規(guī)模死機(jī)事件時(shí),能夠迅速采取措施,減少損失和影響。這包括及時(shí)發(fā)布解決方案、提供技術(shù)支持,以及與相關(guān)方面進(jìn)行有效的溝通和協(xié)調(diào)。

    對(duì)于喬治·庫(kù)爾茨個(gè)人而言,他可能需要認(rèn)真反思在網(wǎng)絡(luò)安全和軟件管理方面的策略和方法,加強(qiáng)對(duì)公司產(chǎn)品質(zhì)量的把控,以恢復(fù)公眾對(duì)他和 CrowdStrike 公司的信任。

    而整個(gè)行業(yè)也需要從這樣的事件中吸取教訓(xùn),加強(qiáng)自律和規(guī)范,提高整體的網(wǎng)絡(luò)安全水平,避免類似的事件再次發(fā)生,保障用戶的利益和社會(huì)的正常運(yùn)轉(zhuǎn)。只有通過(guò)不斷地總結(jié)經(jīng)驗(yàn)、改進(jìn)技術(shù)和管理流程,才能更好地應(yīng)對(duì)日益復(fù)雜的網(wǎng)絡(luò)安全挑戰(zhàn)。

    未來(lái),網(wǎng)絡(luò)安全公司和相關(guān)企業(yè)需要更加注重技術(shù)研發(fā)和管理流程的優(yōu)化,加強(qiáng)與其他安全機(jī)構(gòu)和廠商的合作與交流,共同應(yīng)對(duì)不斷變化的網(wǎng)絡(luò)威脅。同時(shí),用戶也應(yīng)該增強(qiáng)自身的網(wǎng)絡(luò)安全意識(shí),了解基本的安全知識(shí)和操作規(guī)范,以降低受到此類事件影響的風(fēng)險(xiǎn)。通過(guò)各方的共同努力,才能夠營(yíng)造一個(gè)更加安全可靠的網(wǎng)絡(luò)環(huán)境。


    . 多個(gè)服務(wù)共享一個(gè)Svchost.exe進(jìn)程利與弊
    windows 系統(tǒng)服務(wù)分為獨(dú)立進(jìn)程和共享進(jìn)程兩種,在windows NT時(shí)只有服務(wù)器管理器SCM(Services.exe)有多個(gè)共享服務(wù),隨著系統(tǒng)內(nèi)置服務(wù)的增加,在windows 2000年ms又把很多服務(wù)做成共享方式,由svchost.exe啟動(dòng)。windows 2000一般有2個(gè)svchost進(jìn)程,一個(gè)是RPCSS(Remote Procedure Call)服務(wù)進(jìn)程,另外一個(gè)則是由很多服務(wù)共享的一個(gè)svchost.exe。而在windows XP中,則一般有4個(gè)以上的svchost.exe服務(wù)進(jìn)程,windows 2003 server中則更多,可以看出把更多的系統(tǒng)內(nèi)置服務(wù)以共享進(jìn)程方式由svchost啟動(dòng)是ms的一個(gè)趨勢(shì)。這樣做在一定程度上減少了系統(tǒng)資源的消耗,不過(guò)也帶來(lái)一定的不穩(wěn)定因素,因?yàn)槿魏我粋€(gè)共享進(jìn)程的服務(wù)因?yàn)殄e(cuò)誤退出進(jìn)程就會(huì)導(dǎo)致整個(gè)進(jìn)程中的所有服務(wù)都退出。另外就是有一點(diǎn)安全隱患,首先要介紹一下 svchost.exe的實(shí)現(xiàn)機(jī)制。
    2. Svchost原理
    Svchost本身只是作為服務(wù)宿主,并不實(shí)現(xiàn)任何服務(wù)功能,需要Svchost啟動(dòng)的服務(wù)以動(dòng)態(tài)鏈接庫(kù)形式實(shí)現(xiàn),在安裝這些服務(wù)時(shí),把服務(wù)的可執(zhí)行程序指向svchost,啟動(dòng)這些服務(wù)時(shí)由svchost調(diào)用相應(yīng)服務(wù)的動(dòng)態(tài)鏈接庫(kù)來(lái)啟動(dòng)服務(wù)。
    那么svchost如何知道某一服務(wù)是由哪個(gè)動(dòng)態(tài)鏈接庫(kù)負(fù)責(zé)呢?這不是由服務(wù)的可執(zhí)行程序路徑中的參數(shù)部分提供的,而是服務(wù)在注冊(cè)表中的參數(shù)設(shè)置的,注冊(cè)表中服務(wù)下邊有一個(gè)Parameters子鍵其中的ServiceDll表明該服務(wù)由哪個(gè)動(dòng)態(tài)鏈接庫(kù)負(fù)責(zé)。并且所有這些服務(wù)動(dòng)態(tài)鏈接庫(kù)都必須要導(dǎo)出一個(gè) ServiceMain()函數(shù),用來(lái)處理服務(wù)任務(wù)。
    例如rpcss(Remote Procedure Call)在注冊(cè)表中的位置是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs,它的參數(shù)子鍵Parameters里有這樣一項(xiàng):
    “ServiceDll”=REG_EXPAND_SZ:”%SystemRoot%\system32\rpcss.dll”
    當(dāng)啟動(dòng)rpcss服務(wù)時(shí),svchost就會(huì)調(diào)用rpcss.dll,并且執(zhí)行其ServiceMain()函數(shù)執(zhí)行具體服務(wù)。
    既然這些服務(wù)是使用共享進(jìn)程方式由svchost啟動(dòng)的,為什么系統(tǒng)中會(huì)有多個(gè)svchost進(jìn)程呢?ms把這些服務(wù)分為幾組,同組服務(wù)共享一個(gè)svchost進(jìn)程,不同組服務(wù)使用多個(gè)svchost進(jìn)程,組的區(qū)別是由服務(wù)的可執(zhí)行程序后邊的參數(shù)決定的。
    例如rpcss在注冊(cè)表中 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs 有這樣一項(xiàng):
    “ImagePath”=REG_EXPAND_SZ:”%SystemRoot%\system32\svchost -k rpcss”
    因此rpcss就屬于rpcss組,這在服務(wù)管理控制臺(tái)也可以看到。
    svchost的所有組和組內(nèi)的所有服務(wù)都在注冊(cè)表的如下位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost,例如windows 2000共有4組rpcss、netsvcs、wugroup、BITSgroup,其中最多的就是netsvcs=REG_MULTI_SZ: EventSystem.Ias.Iprip.Irmon.Netman.Nwsapagent.Rasauto.Rasman.Remoteaccess.SENS.Sharedaccess.Tapisrv.Ntmssvc.wzcsvc..
    在啟動(dòng)一個(gè)svchost.exe負(fù)責(zé)的服務(wù)時(shí),服務(wù)管理器如果遇到可執(zhí)行程序內(nèi)容ImagePath已經(jīng)存在于服務(wù)管理器的映象庫(kù)中,就不在啟動(dòng)第2個(gè)進(jìn)程svchost,而是直接啟動(dòng)服務(wù)。這樣就實(shí)現(xiàn)了多個(gè)服務(wù)共享一個(gè)svchost進(jìn)程。
    3. Svchost代碼
    現(xiàn)在我們基本清楚svchost的原理了,但是要自己寫一個(gè)DLL形式的服務(wù),由svchost來(lái)啟動(dòng),僅有上邊的信息還有些問(wèn)題不是很清楚。比如我們?cè)趯?dǎo)出的ServiceMain()函數(shù)中接收的參數(shù)是ANSI還是Unicode?我們是否需要調(diào)用 RegisterServiceCtrlHandler和StartServiceCtrlDispatcher來(lái)注冊(cè)服務(wù)控制及調(diào)度函數(shù)?
    這些問(wèn)題要通過(guò)查看svchost代碼獲得。下邊的代碼是windows 2000+ service pack 4 的svchost反匯編片段,可以看出svchost程序還是很簡(jiǎn)單的。
    主函數(shù)首先調(diào)用ProcCommandLine()對(duì)命令行進(jìn)行分析,獲得要啟動(dòng)的服務(wù)組,然后調(diào)用SvcHostOptions()查詢?cè)摲?wù)組的選項(xiàng)和服務(wù)組的所有服務(wù),并使用一個(gè)數(shù)據(jù)結(jié)構(gòu) svcTable 來(lái)保存這些服務(wù)及其服務(wù)的DLL,然后調(diào)用PrepareSvcTable() 函數(shù)創(chuàng)建SERVICE_TABLE_ENTRY 結(jié)構(gòu),把所有處理函數(shù)SERVICE_MAIN_FUNCTION 指向自己的一個(gè)函數(shù)FuncServiceMain(),最后調(diào)用API StartServiceCtrlDispatcher() 注冊(cè)這些服務(wù)的調(diào)度函數(shù)。
    ;===============================Main Funcion===========================================
    .text:010010B8 public start
    .text:010010B8 start proc near
    .text:010010B8 push esi
    .text:010010B9 push edi
    .text:010010BA push offset sub_1001EBA ; lpTopLevelExceptionFilter
    .text:010010BF xor edi, edi
    .text:010010C1 call ds:SetUnhandledExceptionFilter
    .text:010010C7 push 1 ; uMode
    .text:010010C9 call ds:SetErrorMode
    .text:010010CF call ds:GetProcessHeap
    .text:010010D5 push eax
    .text:010010D6 call sub_1001142
    .text:010010DB mov eax, offset dword_1003018
    .text:010010E0 push offset unk_1003000 ; lpCriticalSection
    .text:010010E5 mov dword_100301C, eax
    .text:010010EA mov dword_1003018, eax
    .text:010010EF call ds:InitializeCriticalSection
    .text:010010F5 call ds:GetCommandLineW
    .text:010010FB push eax ; lpString
    .text:010010FC call ProcCommandLine
    .text:01001101 mov esi, eax
    .text:01001103 test esi, esi
    .text:01001105 jz short lab_doservice
    .text:01001107 push esi
    .text:01001108 call SvcHostOptions
    .text:0100110D call PrepareSvcTable
    .text:01001112 mov edi, eax ; SERVICE_TABLE_ENTRY returned
    .text:01001114 test edi, edi
    .text:01001116 jz short loc_1001128
    .text:01001118 mov eax, [esi+10h]
    .text:0100111B test eax, eax
    .text:0100111D jz short loc_1001128
    .text:0100111F push dword ptr [esi+14h] ; dwCapabilities
    .text:01001122 push eax ; int
    .text:01001123 call InitializeSecurity
    .text:01001128
    .text:01001128 loc_1001128: ; CODE XREF: start+5Ej
    .text:01001128 ; start+65j
    .text:01001128 push esi ; lpMem
    .text:01001129 call HeapFreeMem
    .text:0100112E
    .text:0100112E lab_doservice: ; CODE XREF: start+4Dj
    .text:0100112E test edi, edi
    .text:01001130 jz ExitProgram
    .text:01001136 push edi ; lpServiceStartTable
    .text:01001137 call ds:StartServiceCtrlDispatcherW
    .text:0100113D jmp ExitProgram
    .text:0100113D start endp
    ;===============================Main Funcion end===========================================
    由于svchost為該組的所有服務(wù)都注冊(cè)了svchost中的一個(gè)處理函數(shù),因此每次啟動(dòng)任何一個(gè)服務(wù)時(shí),服務(wù)管理器SCM都會(huì)調(diào)用 FuncServiceMain() 這個(gè)函數(shù)。這個(gè)函數(shù)使用 svcTable 查詢要啟動(dòng)的服務(wù)使用的DLL,調(diào)用DLL導(dǎo)出的ServiceMain()函數(shù)來(lái)啟動(dòng)服務(wù),然后返回。
    ;==============================FuncServiceMain()===========================================
    .text:01001504 FuncServiceMain proc near ; DATA XREF: PrepareSvcTable+44o
    .text:01001504
    .text:01001504 arg_0=dword ptr 8
    .text:01001504 arg_4=dword ptr 0Ch
    .text:01001504
    .text:01001504 push ecx
    .text:01001505 mov eax, [esp+arg_4]
    .text:01001509 push ebx
    .text:0100150A push ebp
    .text:0100150B push esi
    .text:0100150C mov ebx, offset unk_1003000
    .text:01001511 push edi
    .text:01001512 mov edi, [eax]
    .text:01001514 push ebx
    .text:01001515 xor ebp, ebp
    .text:01001517 call ds:EnterCriticalSection
    .text:0100151D xor esi, esi
    .text:0100151F cmp dwGroupSize, esi
    .text:01001525 jbe short loc_1001566
    .text:01001527 and [esp+10h], esi
    .text:0100152B
    .text:0100152B loc_100152B: ; CODE XREF: FuncServiceMain+4Aj
    .text:0100152B mov eax, svcTable
    .text:01001530 mov ecx, [esp+10h]
    .text:01001534 push dword ptr [eax+ecx]
    .text:01001537 push edi
    .text:01001538 call ds:lstrcmpiW
    .text:0100153E test eax, eax
    .text:01001540 jz short StartThis
    .text:01001542 add dword ptr [esp+10h], 0Ch
    .text:01001547 inc esi
    .text:01001548 cmp esi, dwGroupSize
    .text:0100154E jb short loc_100152B
    .text:01001550 jmp short loc_1001566
    .text:01001552 ;=================================================
    .text:01001552
    .text:01001552 StartThis: ; CODE XREF: FuncServiceMain+3Cj
    .text:01001552 mov ecx, svcTable
    .text:01001558 lea eax, [esi+esi*2]
    .text:0100155B lea eax, [ecx+eax*4]
    .text:0100155E push eax
    .text:0100155F call GetDLLServiceMain
    .text:01001564 mov ebp, eax ; dll ServiceMain Function address
    .text:01001566
    .text:01001566 loc_1001566: ; CODE XREF: FuncServiceMain+21j
    .text:01001566 ; FuncServiceMain+4Cj
    .text:01001566 push ebx
    .text:01001567 call ds:LeaveCriticalSection
    .text:0100156D test ebp, ebp
    .text:0100156F jz short loc_100157B
    .text:01001571 push [esp+10h+arg_4]
    .text:01001575 push [esp+14h+arg_0]
    .text:01001579 call ebp
    .text:0100157B
    .text:0100157B loc_100157B: ; CODE XREF: FuncServiceMain+6Bj
    .text:0100157B pop edi
    .text:0100157C pop esi
    .text:0100157D pop ebp
    .text:0100157E pop ebx
    .text:0100157F pop ecx
    .text:01001580 retn 8
    .text:01001580 FuncServiceMain endp ; sp=-8
    ;==============================FuncServiceMain() end========================================
    由于svchost已經(jīng)調(diào)用了StartServiceCtrlDispatcher來(lái)服務(wù)調(diào)度函數(shù),因此我們?cè)趯?shí)現(xiàn)DLL實(shí)現(xiàn)時(shí)就不用了,這主要是因?yàn)橐粋€(gè)進(jìn)程只能調(diào)用一次StartServiceCtrlDispatcher API。但是需要用 RegisterServiceCtrlHandler 來(lái)注冊(cè)響應(yīng)控制請(qǐng)求的函數(shù)。最后我們的DLL接收的都是unicode字符串。
    由于這種服務(wù)啟動(dòng)后由svchost加載,不增加新的進(jìn)程,只是svchost的一個(gè)DLL,而且一般進(jìn)行審計(jì)時(shí)都不會(huì)去 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost 檢查服務(wù)組是否變化,就算去檢查,也不一定能發(fā)現(xiàn)異常,因此如果添加一個(gè)這樣的DLL后門,偽裝的好,是比較隱蔽的。
    4. 安裝服務(wù)與設(shè)置
    要通過(guò)svchost調(diào)用來(lái)啟動(dòng)的服務(wù),就一定要在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost下有該服務(wù)名,這可以通過(guò)如下方式來(lái)實(shí)現(xiàn):
    1) 添加一個(gè)新的服務(wù)組,在組里添加服務(wù)名
    2) 在現(xiàn)有組里添加服務(wù)名
    3) 直接使用現(xiàn)有服務(wù)組里的一個(gè)服務(wù)名,但本機(jī)沒有安裝的服務(wù)
    4) 修改現(xiàn)有服務(wù)組里的現(xiàn)有服務(wù),把它的ServiceDll指向自己
    其中前兩種可以被正常服務(wù)使用,如使用第1種方式,啟動(dòng)其服務(wù)要?jiǎng)?chuàng)建新的svchost進(jìn)程;第2種方式如果該組服務(wù)已經(jīng)運(yùn)行,安裝后不能立刻啟動(dòng)服務(wù),因?yàn)閟vchost啟動(dòng)后已經(jīng)把該組信息保存在內(nèi)存里,并調(diào)用API StartServiceCtrlDispatcher() 為該組所有服務(wù)注冊(cè)了調(diào)度處理函數(shù),新增加的服務(wù)不能再注冊(cè)調(diào)度處理函數(shù),需要重啟計(jì)算機(jī)或者該組的svchost進(jìn)程。而后兩種可能被后門使用,尤其是最后一種,沒有添加服務(wù),只是改了注冊(cè)表里一項(xiàng)設(shè)置,從服務(wù)管理控制臺(tái)又看不出來(lái),如果作為后門還是很隱蔽的。比如EventSystem服務(wù),缺省是指向es.dll,如果把ServiceDll改為EventSystem.dll就很難發(fā)現(xiàn)。
    因此服務(wù)的安裝除了調(diào)用CreateService()創(chuàng)建服務(wù)之外,還需要設(shè)置服務(wù)的ServiceDll,如果使用前2種還要設(shè)置svchost的注冊(cè)表選項(xiàng),在卸載時(shí)也最好刪除增加的部分。
    具體代碼參見后邊的附例(使用的是方法3)。
    注: ImagePath 和ServiceDll 是ExpandString不是普通字符串。因此如果使用.reg文件安裝時(shí)要注意。
    5. DLL服務(wù)實(shí)現(xiàn)
    DLL程序的編寫比較簡(jiǎn)單,只要實(shí)現(xiàn)一個(gè)ServiceMain()函數(shù)和一個(gè)服務(wù)控制程序,在ServiceMain()函數(shù)里用RegisterServiceCtrlHandler()注冊(cè)服務(wù)控制程序,并設(shè)置服務(wù)的運(yùn)行狀態(tài)就可以了。
    另外,因?yàn)榇朔N服務(wù)的安裝除了正常的CreateService()之外,還要進(jìn)行其他設(shè)置,因此最好實(shí)現(xiàn)安裝和卸載函數(shù)。
    為了方便安裝,實(shí)現(xiàn)的代碼提供了InstallService()函數(shù)進(jìn)行安裝,這個(gè)函數(shù)可以接收服務(wù)名作為參數(shù)(如果不提供參數(shù),就使用缺省的 iprip),如果要安裝的服務(wù)不在svchost的netsvcs組里安裝就會(huì)失敗;如果要安裝的服務(wù)已經(jīng)存在,安裝也會(huì)失敗;安裝成功后程序會(huì)配置服務(wù)的ServiceDll為當(dāng)前Dll。提供的UninstallService()函數(shù),可以刪除任何函數(shù)而沒有進(jìn)行任何檢查。
    為了方便使用rundll32.exe進(jìn)行安裝,還提供了RundllInstallA()和RundllUninstallA()分別調(diào)用InstallService()及UninstallService()。因?yàn)閞undll32.exe使用的函數(shù)原型是:
    void CALLBACK FunctionName(
    HWND hwnd, // handle to owner window
    HINSTANCE hinst, // instance handle for the DLL
    LPTSTR lpCmdLine, // string the DLL will parse
    int nCmdShow // show state
    );
    對(duì)應(yīng)的命令行是rundll32 DllName,FunctionName [Arguments]
    DLL服務(wù)本身只是創(chuàng)建一個(gè)進(jìn)程,該程序命令行就是啟動(dòng)服務(wù)時(shí)提供的第一個(gè)參數(shù),如果未指定就使用缺省的svchostdll.exe。啟動(dòng)服務(wù)時(shí)如果提供第二個(gè)參數(shù),創(chuàng)建的進(jìn)程就是和桌面交互的。
    具體代碼參見后邊的附例8,源代碼和DLL文件請(qǐng)到http://www.binglesite.net下載。
    //main service process function
    void __stdcall ServiceMain( int argc, wchar_t* argv[] );
    //report service stat to the service control manager
    int TellSCM( DWORD dwState, DWORD dwExitCode, DWORD dwProgress );
    //service control handler, call back by service control manager
    void __stdcall ServiceHandler( DWORD dwCommand );
    //RealService just create a process
    int RealService(char *cmd, int bInteract);
    //Install this dll as a Service host by svchost.exe, service name is given by caller
    int InstallService(char *name);
    //unInstall a Service, be CARE FOR call this to delete a service
    int UninstallService(char *name);
    //Install this dll as a Service host by svchost.exe, used by RUNDLL32.EXE to call
    void CALLBACK RundllInstallA(HWND hwnd, HINSTANCE hinst, char *param, int nCmdShow);
    //unInstall a Service used by RUNDLL32.EXE to call, be CARE FOR call this to delete a service
    void CALLBACK RundllUninstallA(HWND hwnd, HINSTANCE hinst, char *param, int nCmdShow);
    //output the debug infor into log file(or stderr if a console program call me) & DbgPrint
    void OutputString( char *lpFmt, … );
    6. 代碼使用
    C:\>tlist -s
    0 System Process
    8 System
    240 services.exe Svcs: Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,lanmanworkstation, LmHosts,PlugPlay,ProtectedStorage,TrkWks,Wmi
    504 svchost.exe Svcs: RpcSs
    1360 svchost.exe Svcs: EventSystem,Netman,RasMan,SENS,TapiSrv
    C:\>rundll32 svchostdll.dll,RundllInstall abcd
    SvcHostDLL: DllMain called DLL_PROCESS_ATTACH
    you specify service name not in Svchost\netsvcs, must be one of following:
    – EventSystem
    – Ias
    – Iprip
    – Irmon
    – Netman
    – Nwsapagent
    – Rasauto
    – Rasman
    – Remoteaccess
    – SENS
    – Sharedaccess
    – Tapisrv
    – Ntmssvc
    – wzcsvc
    C:\>rundll32 svchostdll.dll,RundllInstall IPRIP
    SvcHostDLL: DllMain called DLL_PROCESS_ATTACH
    CreateService(IPRIP) SUCCESS. Config it
    Config service IPRIP ok.
    C:\>sc start iprip “cmd /k whoami” 1
    NT AUTHORITY\SYSTEM
    SvcHostDLL: ServiceMain(3, IPRIP) called
    SvcHostDLL: RealService called ‘cmd /k whoami’ Interact
    SvcHostDLL: CreateProcess(cmd /k whoami) to 640
    C:\>tlist -s
    0 System Process
    8 System
    240 services.exe Svcs: Browser,Dhcp,dmserver,Dnscache,Eventlog,lanmanserver,lanmanworkstation, LmHosts,PlugPlay,ProtectedStorage,TrkWks,Wmi
    504 svchost.exe Svcs: RpcSs
    640 cmd.exe Title: C:\WINNT\System32\cmd.exe
    1360 svchost.exe Svcs: EventSystem,Netman,RasMan,SENS,TapiSrv,IPRIP
    C:\>net stop iprip
    The IPRIP service was stopped successfully.
    C:\>rundll32 svchostdll.dll,RundllUninstall iprip
    DeleteService(IPRIP) SUCCESS.
    7. 參考
    Platform SDK: Tools – Rundll32
    1) Inside Win32 Services, Part 2 by: Mark Russinovich, at: http://www.winnetmag.com/Articles/Index.cfm?ArticleID=8943&pg=3
    2) Platform SDK: Tools – Rundll32, at: http://msdn.microsoft.com/library/en-us/tools/tools/rundll32.asp
    2003/8
    8. 代碼
    // SvcHostDLL.cpp : Demo for a service dll used by svchost.exe to host it.
    //
    // for detail comment see articles.
    // by bingle_at_email.com.cn
    // www.BingleSite.net
    //
    /* save following as a .def file to export function, only ServiceMain is needed.
    other used to install & uninstall service.
    or use /EXPORT: link option to export them.
    EXPORTS
    ServiceMain
    InstallService
    UninstallService
    RundllUninstallA
    RundllInstallA
    */
    /*
    To compile & link:
    cl /MD /GX /LD svchostdll.cpp /link advapi32.lib /DLL /base:0x71000000 /export:ServiceMain /EXPORT:RundllUninstallA /EXPORT:RundllInstallA /EXPORT:InstallService /EXPORT:UninstallService
    */
    //
    // Articles:
    // 1. HOWTO Create a service dll used by svchost.exe by bingle, at: http://www.BingleSite.net/article/svchost-dll-service.html
    // 2. Inside Win32 Services, Part 2 by: Mark Russinovich, at: http://www.winnetmag.com/Articles/Index.cfm?ArticleID=8943&pg=3
    // 3. Platform SDK: Tools – Rundll32, at: http://msdn.microsoft.com/library/en-us/tools/tools/rundll32.asp
    #include
    #include
    #include
    #include
    #define DEFAULT_SERVICE “IPRIP”
    #define MY_EXECUTE_NAME “SvcHostDLL.exe”
    //main service process function
    void __stdcall ServiceMain( int argc, wchar_t* argv[] );
    //report service stat to the service control manager
    int TellSCM( DWORD dwState, DWORD dwExitCode, DWORD dwProgress );
    //service control handler, call back by service control manager
    void __stdcall ServiceHandler( DWORD dwCommand );
    //RealService just create a process
    int RealService(char *cmd, int bInteract);
    //Install this dll as a Service host by svchost.exe, service name is given by caller
    int InstallService(char *name);
    //unInstall a Service, be CARE FOR call this to delete a service
    int UninstallService(char *name);
    //Install this dll as a Service host by svchost.exe, used by RUNDLL32.EXE to call
    void CALLBACK RundllInstallA(HWND hwnd, HINSTANCE hinst, char *param, int nCmdShow);
    //unInstall a Service used by RUNDLL32.EXE to call, be CARE FOR call this to delete a service
    void CALLBACK RundllUninstallA(HWND hwnd, HINSTANCE hinst, char *param, int nCmdShow);
    //output the debug infor into log file(or stderr if a console program call me) & DbgPrint
    void OutputString( char *lpFmt, … );
    //dll module handle used to get dll path in InstallService
    HANDLE hDll=NULL;
    //Service HANDLE & STATUS used to get service state
    SERVICE_STATUS_HANDLE hSrv;
    DWORD dwCurrState;
    BOOL APIENTRY DllMain( HANDLE hModule,
    DWORD ul_reason_for_call,
    LPVOID lpReserved
    )
    {
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    hDll=hModule;
    #ifdef _DEBUG
    AllocConsole();
    OutputString(“SvcHostDLL: DllMain called DLL_PROCESS_ATTACH”);
    break;
    case DLL_THREAD_ATTACH:
    OutputString(“SvcHostDLL: DllMain called DLL_THREAD_ATTACH”);
    case DLL_THREAD_DETACH:
    OutputString(“SvcHostDLL: DllMain called DLL_THREAD_DETACH”);
    case DLL_PROCESS_DETACH:
    TellSCM( SERVICE_STOP_PENDING, 0, 0 );
    Sleep(1500);
    TellSCM( SERVICE_STOPPED, 0, 0 );
    OutputString(“SvcHostDLL: DllMain called DLL_PROCESS_DETACH”);
    #endif
    break;
    }

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有