再見360,3分鐘用Python擼一個(gè)殺毒軟件
↑ 關(guān)注 + 星標(biāo) ,每天學(xué)Python新技能
后臺(tái)回復(fù)【大禮包】送你Python自學(xué)大禮包
來源:blog.csdn.net/slw213106
事情要從一次重保行動(dòng)說起,由于活動(dòng)還沒結(jié)束,這里就先不透漏了。我抱著親手做的康師傅紅燒牛肉泡面,還沒開始吃,就聽見后面有人喊我名字,說是有個(gè)用戶的電腦卡死了,要我過去看看。
我問她能不能等我吃完這桶泡面再去,我已經(jīng)3個(gè)小時(shí)沒有吃過飯了,現(xiàn)在餓得沒有力氣走到用戶那里。
她說那是主任的電腦,你自己看著辦吧。
我向來不畏懼權(quán)貴,但九年義務(wù)教育告訴我,別人有困難的時(shí)候一定要去幫一把……
我到現(xiàn)場(chǎng)一看,電腦上就只有一個(gè)空空的桌面,連個(gè)鼠標(biāo)都找不到,看來是電腦太卡了,軟件圖標(biāo)都卡沒了。
我問用戶之前有沒有做過什么奇怪的事情
他說沒有,電腦一開機(jī)就是這個(gè)樣子
我好像明白了什么,拔掉電源重啟,電腦開機(jī)以后,果然跟我想的一樣,360、電腦管家、金山毒霸這三兄弟整齊地站在右下角,桌面上滿滿當(dāng)當(dāng)?shù)娜彝埃@不卡才怪呢。剛好電腦上沒有什么重要文件,懶得一個(gè)一個(gè)刪了,招呼來聯(lián)想的同志給他重新做個(gè)系統(tǒng)。
回去的路上我跟聯(lián)想的同志吐槽:“這群流氓軟件真是不講武德,就知道欺負(fù)這種電腦小白。”
聯(lián)想的同志白了我一眼:“看把你能的,有本事自己寫一個(gè)”
我向來不喜歡斤斤計(jì)較,寫殺毒軟件只是出于愛好。
首先,殺毒這個(gè)動(dòng)作,本質(zhì)上就是刪除病毒文件,這還不簡(jiǎn)單,os模塊就能干
import os
os.remove(r'E://python/病毒.txt')
病毒軟件肯定不是只有一種,因此我們需要準(zhǔn)備一個(gè)病毒庫,把文件扔到病毒庫里匹配,匹配上了就把病毒文件刪除
import os
病毒庫 = ['病毒.txt']
path = r'E://python/病毒.txt'
if path in 病毒庫:
os.remove(path)
print('已經(jīng)刪除病毒文件', file)
當(dāng)然,病毒查殺肯定不能只查一個(gè)文件,需要查詢所有的文件,而目錄下所有的文件,可以寫個(gè)函數(shù),遞歸查詢
def getAllFile(path):
# 獲取目錄中的所有文件并遍歷
files = os.listdir(path)
for file in files:
# 拼接路徑,如果是目錄則遞歸獲取所有文件
new_path = path + r'/' + file
if os.path.isdir(new_path):
getAllFile(new_path)
既然是自己寫的殺毒軟件,那查殺什么地方當(dāng)然要自己說了算,畢竟做網(wǎng)安這一行,很多工具本身就是病毒。寫個(gè)input,自定義查殺目錄
path = input('請(qǐng)輸入需要查殺的目錄:')
getAllFile(path)
完整代碼如下:
import os
病毒庫 = ['病毒.txt']
def getAllFile(path):
# 獲取目錄中的所有文件并遍歷
files = os.listdir(path)
for file in files:
# 拼接路徑,如果是目錄則遞歸獲取所有文件
new_path = path + r'/' + file
if os.path.isdir(new_path):
getAllFile(new_path)
else:
# 如果是文件則查詢病毒庫,匹配成功則刪除
if file in 病毒庫:
os.remove(new_path)
print('已經(jīng)刪除病毒文件', file)
path = input('請(qǐng)輸入需要查殺的目錄:')
getAllFile(path)
先自己寫一個(gè)病毒

運(yùn)行程序,輸入需要查殺的目錄

好了,病毒已經(jīng)被殺掉了

小小病毒,可笑可笑。
正當(dāng)我伸著懶腰想著怎么加大查殺力度時(shí),感覺手好像碰到了一個(gè)硬邦邦的東西,我突然意識(shí)到不對(duì)勁……
原來是我兩個(gè)小時(shí)前泡的那碗泡面,坨了!
如果本文對(duì)你有幫助的話,歡迎點(diǎn)贊&在看&分享,這對(duì)我繼續(xù)分享&創(chuàng)作優(yōu)質(zhì)文章非常重要。感謝
推薦閱讀
您看此文用 ![]()
分
![]()
秒,轉(zhuǎn)發(fā)只需1秒哦~

分
秒,轉(zhuǎn)發(fā)只需1秒哦~