考慮到有巴友反應上次的Python程式無法在Windows下成功執行,
( 我猜是Windows不支援Readline的原因
因此我又重新設計了MiraiX一次,
順便學習一款之前就想學的程式語法,
還能讓Windows用戶也能有一些操作體驗。
這次,我使用的是VBscript,
一款絕對與Windows環境相容的程式語言。
VBscript 的最大特色就是不用編譯,
並能擁有Windows電腦的絕對控制權,
( 畢竟就是微軟發明VBscript的說~
因此,
早期的病毒多半是使用這種語法製造的。
其餘對於VBscript的概念,
請見虛鹿的筆記:
以下為MiraiX.vbs的原始碼,
至於怎~麼~執~行~呢~(^ω^)
這部分,我稍後再提。
[#] MiraiX VBScript Version 原始碼:
REM MiraiX BOF
REM Coded By Falsedeer(虛鹿), 2022/1/26
Dim selfcp, cplength, cpstatus:cpstatus = False 'dealing replicate shits
Const ForReading = 1, ForWriting =2, ForAppending = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Function AddItem(arr, val)
ReDim Preserve arr(UBound(arr) + 1)
arr(UBound(arr)) = val
AddItem = arr
End Function
Function Replicate()
Set handler = fso.OpenTextFile(Wscript.ScriptFullName, ForReading, False)
selfcp = Array()
Do Until handler.AtEndOfStream 'read line by line
Dim code
code = handler.ReadLine
If StrComp(code, "REM MiraiX BOF", 1) = 0 Then 'True = -1, False = 0
cpstatus = True
ElseIF StrComp(code, "REM MiraiX EOF", 1) = 0 Then
cpstatus = False
End If
If cpstatus = True Then
selfcp = AddItem(selfcp, code)
End If
Loop
selfcp = AddItem(selfcp, "REM MiraiX EOF") 'adding EOF for selfcp
cplength = UBound(selfcp) 'counting length of selfcp
Set cphandler = fso.OpenTextFile("MiraiX2.vbs", ForWriting, True)
Dim x:x = 0
Do while x < (cplength + 1)
Dim cpcode
cpcode = selfcp(x)
cphandler.WriteLine(cpcode)
x = x + 1
Loop
cphandler.Close()
End Function
call Replicate
REM MiraiX EOF
UMU! 要是諸君想測試的話,
請將以上內容全部貼入notepad(記事本)中。
接~著~呢~
再把這堆東東全部存成MiraiX.vbs就行囉!
再把這堆東東全部存成MiraiX.vbs就行囉!
檔案類型選”所有檔案”。
只要你成功了,
你就會看到以下的圖示。
點擊MiraiX兩下,程式便會執行,
產生出另一個稱為MiraiX2.vbs的分身,
如圖所示,其內容物完全相同的說。
但由於,Windows不允許重複檔名,
因此點擊分身無法再製造一個分身。
( 新建的分身檔案名稱被我事先設定了,
以方便各位識別。
而這部分的手法,
可不是使用ReadAll,再新建一個檔案的呦!
(如果這樣搞,程式碼大概十行就解決了…..OwO
這邊,
窩使用在上一次所提到的那種掃描註解的方法。
因此只要你有自信編寫程式的能力,
你便可將其客製化成有感染能力的VBS檔案。
而它會掃描自己的BOF(Beginning of File)及EOF,
並把中間的內容物存入陣列之中,
使自己有能力把自身寄身到其他檔案之中。
請各位安心的測試虛鹿的程式,
雖然設計的初衷是實踐檔案寄生的電腦病毒,
但我沒有加入惡意修改或操做檔案的部分,
也不會無限的瘋狂增生,
因此,就請諸君安心的服用吧!\(≧▽≦)/