先來首歌,緩和一下氣氛:
總之,搞了很久,
窩終於寫出自己的第一個Windows PE病毒了。
蠻開心的,感覺自己的技術跟組合語言知識,
都在開發的過程中學到了不少新知識。
(講白了就是各種翻車及痛苦的debug
因此,我把這隻病毒命名為Era,
也就是中文的「時代」、「紀元」的意思,
象徵自己的技術與知識得到飛躍性的成長,
從只會寫基礎的16位元的Dos病毒,
進步到了更加現代的32位元的Windows平臺。
而且呢,
這隻病毒不是一個普通的覆寫病毒。
他是一個能夠方便反組譯(Reverse Engineering)初學者學習的優質研究目標。
他內建一個基礎的Debug介面,
可以方便你的反組譯工具定位程式碼的位置,
與讓你更加了解PE檔結構。
————————————————————
[#] 詳細資訊:
檔案名稱:Era.exe
運行平臺:Windows 32位元、Windows 64位元
病毒行為:覆寫Exe檔案
檔案大小:5120 位元組(約5Kb)
感染範圍:僅於執行Era時,此目錄中所有PE檔
是否能躲過Windows Defender:否
程式語言:Masm 組合語言
作者:虛鹿(Falsedeer)
目前版本:Ver 0.1.0
日期:2022/7/1
————————————————————
[#] 使用說明:
首先,
把Era.exe跟其它PE檔放在同一個資料夾中。
接著,用右鍵點擊Era.exe,
選擇以系統管理員執行。
(有些電腦卻不需要,可以直接用左鍵點擊執行
這時候,
你會看到程式彈出了一個小小的視窗,
裡面有虛鹿貼心的警告與確認執行的訊息:
點擊「取消」或是「Cancel」,
(按鈕會因電腦語言設定而不同
程式就會馬上終止並退出,
不會對資料夾中的檔案執行感染,
並且會看到我設定的取消執行訊息。
然而,如果選擇執行的話,
你會看到程式又噴出了一個視窗,
裡面含有病毒的PE檔頭資料,
以及病毒找到的目錄中的exe檔案,
開啟檔案、檔案定位、覆寫檔案的提示。
如果一切都正常的話,
就能夠看到彈出的Success視窗。
如果沒有看到Opening、Overwrite的提示,
就代表你沒有以管理員的身份執行,
因此無法覆寫找到的目標檔案。
其中,
被覆寫的檔案的favicon會消失,
並擁有新的Timestamp,
且在執行時會有跟Era一樣的行為:
至於運作原理或是講解什麼的,
我下次再講。
————————————————————
裡面的exe檔就是我預先編譯好的,
以方便各位進行測試,但如果有安全上的疑慮,
可以比對上面提供的檔案資訊、或是自行使用Masm編譯我提供的原始碼。
指令:
./ml.exe /c /coff Era.asm
./link.exe /subsystem:console Era.obj