我知道你想收藏,但是,關注才能獲取更多乾貨哦!
媒體號:一碳科技作者:菜鳥君各位美麗帥氣大方的粉絲們,從現在開始你們就可以叫我「菜鳥君」啦,《一碳科技》以後的文章就開始由菜鳥君接手啦,聽說直接給菜鳥君評論會更快得到回覆哦!
實現蠕蟲病毒的感染功能
還記得上一次菜鳥君教大家做的「熊貓燒香換圖標」功能嗎?在這篇文章中,小編教大家將後綴為exe的文件圖標更改成了我們自己的圖標,它的作用效果類似於「熊貓燒香」病毒感染過後的效果。
而小編在另一個媒體平臺中發現,這個教程似乎還不能滿足各位看官的胃口,有些人甚至讓小編出一個「實現感染功能」的教程,所以,菜鳥君今天就滿足你們的要求!
思路
按照慣例,我們來說說思路。
第一步,複製病毒數據
先將整個病毒文件複製到一個新的文件中(下文稱Newfile),注意,這裡我們需要以二進位的方式打開病毒文件和Newfile。
第二步,複製被感染文件
然後,我們將被感染文件的數據輸入到Newfile文件的末尾,也就是病毒文件數據的後面,在這裡我們不需要了解什麼PE結構,只需要你們跟著小編的思路來就行了
第三步,運行時分解自身
在這時候,我們已經可以運行Newfile這個文件了,但是你們發現沒有,雙擊打開這個程序會直接運行我們的病毒程序,也就是Newfile文件中最開頭的那個程序,而仔細觀察發現,Newfile的大小恰恰是病毒程序與被感染程序的大小總和,這就說明我們的病毒確確實實「感染」到被感染程序上了,但是它只能直接執行我們的病毒程序,如何解決呢?
我們可以這麼做,先分解Newfile然後在分步執行被感染程序有和病毒程序,我們的病毒程序屬於自包含程序,也就是說它能感染到其他程序中,並且感染之後還能對自身進行操作(Newfile)。
第四步,被感染程序運行完畢之後恢復被感染狀態
在被感染程序運行完畢之後,我們就將恢復被感染狀態,也就是恢復到Newfile原先的狀態,不明白的小夥伴可以在源碼中細細品味。
整個過程菜鳥君會以視頻的方式發布出來。
開始敲代碼
首先進行第一步(複製病毒數據),這裡會遇到一個問題我們無法使用fopen等文件操作函數打開我們的病毒程序,因為我們的病毒程序正在運行之中,也就是說我們是不能fopen我們本身的,但辦法還是有的,我們可以使用windows.h文件自帶的CopyFileA()函數將我們的病毒程序複製一份(稱為菜鳥),然後我們對菜鳥文件進行操作不就行了嗎?
複製病毒數據到新的文件中
小編在這裡使用了一個測試的文件,各位看官在獲取源碼之後可自行修改。我們使用了fopen、fread、fwrite這三個函數將病毒數據複製到了一個新的文件中,這個新的文件指針我們先不要關閉,因為在後面還有用。
緊接著我們將被感染文件的數據複製到Newfile的末尾。
分解並運行
我們將Newfile進行分解,病毒程序我們已經在開頭就啟動了,而被感染程序我們將它分解成名為1.exe的程序,在我們的病毒程序中會直接執行名為1.exe的程序,當1.exe的進程關閉時,病毒程序就會關閉(這取決於你們),然後將1.exe程序刪除,恢復到Newfile未啟動前的模樣。
這麼跟大家說可能會有點蒙,所以還是看代碼和最後運行的視頻吧!
由於病毒程序需要不斷檢測1.exe進程是否存在,以此來判斷被感染程序是否關閉,所以我們需要寫一個檢測進程是否存在的功能,原理就不多說了,小編在源碼裡寫了很多注釋,你們可以慢慢看。
獲取源碼方式
我知道你想收藏本篇文章,關注《一碳科技》讓你收藏個夠!
關注《一碳科技》並在評論區留言,菜鳥君會將源碼地址回復給你哦!