ETH官方钱包

前往
大廳
主題

病毒開發(9) - 介紹組語下的Parasitic Virus

虛鹿 | 2022-03-13 21:06:28 | 巴幣 1020 | 人氣 440


這次就推薦一首符合時勢的歌,
其實多聽幾次就會覺得意外的好聽。

我認為,
是時候該來完結這個DOS病毒開發的系列了,
但為了維持此系列的完整性,
所以我勢必得介紹完先前提過的三大com infector。
因此,這次就先簡單介紹一下最後一種病毒,
Parasitic Virus !!

[#]簡單介紹一下:
Parasitic Virus 又名為寄生病毒,
是一種會把自身原始碼,
寄生在宿主程式碼前方或後方的一種病毒。
而理論上寄生在宿主的後方,
會比寄生在宿主前方還要來的簡單不少,
因此我所開發的這款病毒,
便是寄生在宿主後方的。

雖然,
我打算下次才要講解此病毒設計上的細節,
但有興趣的可以先到我的Github下載完整程式碼呦,
理論上,我的註解是寫的蠻完整的,
但不可否認的,
這款病毒確實比之前的兩款更為複雜,
病毒本體的檔案大小也更為的巨大。
( compile後的大小為369 bytes

然而,相較之前的兩種病毒,
這次在Parasitic Virus中實裝了"避免重複感染"的機制,
UMU ~ 關於這部分是如何運作的呢,
也會再下一次一併向諸君介紹。

[#]演示:
先提醒想親自玩玩我的病毒的巴友,
這隻寄生病毒在coding上沒有很嚴謹,
因此在用tasm編譯時需要手動避免forward reference,
需要用 tasm /m 來允許multi pass。

app.com 是我們的goat file,
大小為16 bytes。
miraix.com 是病毒的主程式,
大小為369 bytes。

依照慣例,
在感染前先執行看看app.com。

接著,執行病毒miraix。
下方印出的三次 "uninfected !" ,
代表搜尋時找到三個新目標。
(miraix.com, edit.com, app.com)

若仔細檢視一下目前的資料夾,
則不難發現幾乎所有的com檔都被感染了。
其中,主要的目標app.com,
從原本的16 bytes,暴增到385 bytes,
而所增加的369 bytes便是原病毒的檔案大小。

執行看看被感染的app.com,
然而這次卻沒有印出"uninfected !",
其中的原因便是病毒在search routine時,
會檢查欲寄生的檔案是否已被自己感染過。

因此在這次的執行中,
病毒再發現無新的目標後,
便把控制權返還宿主程式,
讓app.com印出"Hey!"後便結束程式。

若再次執行dir檢視檔案大小,
則可發現檔案並沒有被重複感染,
新實裝的功能簡直大★成★功★!

該怎麼說呢,
這次的病毒大概是我目前最為滿意的作品了,
成功的那刻其實內心是蠻感動的。

回顧這一個月內我的進步:
我從病毒開發的門外漢,
到找資料自學x86組語,
並設計出這個200多行病毒,
仔細想想這趟旅程好還像蠻奇妙地說(?
哇幹~我真棒啊。

嗯,今天就先講到這邊,
沒意外的話再兩篇左右,
我便能完美的結束這個病毒開發的系列,
那麼諸君,我們下次再見~ :-)
送禮物贊助創作者 !
0
留言

創作回應

更多創作