Vic's Advanced Macro Poly (VAMP)

To use this module you must add it to the end of your virus.
Leave the two subs just as they are, with Sub INITALIZE_VAMP()
on top of Sub VAMP().

To add VAMP to your virus you must first add all your variable
names into the array r1.

For example the next number in the array is 9 (the first 8 are
used by VAMP itself) so if your virus only had one variable
named Infect then the code you enter will be r1(9) = "Infect".
I have commented in the source exactly where you enter this
code.

Once you have entered all your variables you need to update
the array and the loop. If the code you added ended at r1(20)
then you would have to make the array: Dim r1(1 To 20) As String
and the loop should be: For x = 1 To 20

Then you must decide when to call INITALIZE_VAMP() .. in my
opinion you should only call this routine when going into 
the normal.dot. Actually the engine is set to only mutate
the ActiveDocument. This is because as I just stated I think
it's best to only mutate once into an uninfected normal.dot,
this way when the virus infects from the normal to an active
document it will spread the newly mutated code.

If you wanted to change this then you need to change this line:
With ActiveDocument.VBProject.VBComponents.Item(1).CodeModule
you can make it NormalTemplate or an object variable depending on
what you are trying to achieve.

One final note this was written only for a "class object" macro
virus - it can be modified to work with a "module" macro virus
but since I see no point in ever writing a "module" macro virus
again - I'll leave those changes in your hands.

Any problems or questions just let me know.

Peace
VicodinES