home *** CD-ROM | disk | FTP | other *** search
/ Hacks & Cracks / Hacks_and_Cracks.iso / vol1 / pc_xhmvs.zip / HMVS.TXT < prev    next >
Text File  |  1997-01-13  |  13KB  |  317 lines

  1.  
  2.         ┌──────────────────────────────────────────────────────────┐
  3.         │          Heuristic Macro Virus Scanner/cleaner           │
  4.         │                      (user's manual)                     │
  5.         │                                                          │
  6.         │           (c) Jan Valky & Lubos Vrtik, Slovakia          │
  7.         └──────────────────────────────────────────────────────────┘
  8.  
  9.                            Last update: 6-jan-97
  10.  
  11. Sorry, this is only short version of DOX, because we're lazzy to
  12. write full DOX :)
  13.  
  14. Excuse us our english plz, it is not our natural language ;(
  15.  
  16. IF YOU WANT HELP US TO IMPROVE HMVS, PLZ SEND US ANY COMMENTS OR IDEAS.
  17. NEW MACRO VIRUSES ARE WELCOMED. SEND US PLZ ALL MACRO VIRUSES HMVS CAN'T
  18. DETECT BY NAME.
  19.  
  20. ══════════════════════════════════════════════════════════════════════════
  21.                                CONTENTS
  22.  
  23. 1.   HOW TO USE HMVS
  24. 2.   METHODS USED IN HMVS
  25. 2.1  Available options, when virus was found
  26. 3.   WHAT IS MACRO VIRUS :)
  27. 4.   HEURISTIC FLAGS DISPLAYED BY HMVS
  28. ══════════════════════════════════════════════════════════════════════════
  29.  
  30. 1.   HOW TO USE HMVS
  31. ──────────────────────────────────────────────────────────────────────────
  32.  
  33. Without paramaters will HMVS scan only *.DOC and *.DOT files in
  34. current directory and all its subdirectories.
  35.  
  36. Usage: HMVS drive:[\\path] switches
  37. switches:
  38. /H,/?        - this help
  39. /ALL         - scan all files (*.*)
  40. /REP         - output to log file HMVS.LOG
  41. /REP=file    - output to specified log file
  42. /NOH         - disable heuristics, only scanning
  43. /NOS         - disable scanning, only heuristics
  44. /MAC         - prompt if file contains macros
  45. /IA          - nonstop scanning without prompt
  46. /CA          - automatically clean all infected files
  47. /RA          - automatically rename all infected files
  48. /NOB         - disable user break with ESC key
  49. /EXT         - decrypt execute only macros (reg. version only)
  50. /FLG         - enable displaying heur. flags
  51.  
  52. Short description of command line parameters:
  53.  
  54. /H
  55. /?           Displays help about HMVS using
  56. /ALL         All files will be scanned (*.*)
  57.              Without this parameter only files *.DOC and *.DOT
  58.              will be scanned.
  59.  
  60. /REP         Report will be logged to file HMVS.LOG
  61.  
  62. /REP=file    Report will be logged to user specified file
  63.  
  64. /NOH         Disables heuristic analysis. Only standard scanning
  65.              method will be used.
  66.  
  67. /NOS         Disables standard scanning method. Only heuristics
  68.              will be used.
  69.              You can use both switch (/NOS /NOH) together :)
  70.              This combination can save your time, if you want get
  71.              informations about macros in file (use also /MAC
  72.              or /REP switch)
  73.  
  74. /MAC         If this switch was entered program will stop at each
  75.              file, that contains one or more macros. Otherwise program
  76.              will stop only when file is infected by known virus,
  77.              when file is probably infected or suspected.
  78.  
  79. /IA          With this option program won't stop on any file.
  80.              You will use probably this option together with /REP
  81.              switch.
  82.  
  83. /CA          If you want to automatically clean any infected
  84.              or probably infected files, use this switch.
  85.              Files will be cleaned only if creating of backup copy
  86.              was succesfull.
  87.  
  88.              WARNING: ALL MACROS WILL BE REMOVED FROM INFECTED FILE
  89.  
  90.              After cleaning you should check if cleaned file is OK.
  91.              If something went wrong, you can restore original
  92.              file from backup copy. If HMVS fails plz send us file, that
  93.              couldn't be cleaned.
  94.  
  95. /RA          With this switch HMVS'll automatically rename any infected
  96.              or probably infected files.
  97.  
  98. /NOB         With this option HMVS can't be stopped with ESC key.
  99.              Otherwise you can break program in any time with pressing
  100.              the ESC key.
  101.  
  102. /EXT         This option allow you to decrypt execute only macros.
  103.              (Available only for registered users).
  104.              With this option you will be prompted at each file
  105.              containing execute-only macro(s), if you want to
  106.              decrypt it. If yes, program will first create a backup
  107.              copy of file (*.VI?) and them decrypt all execute-only
  108.              macros.
  109.              This is nice option for AV researcher or experienced
  110.              users.
  111.  
  112.              WARNING: If you use this option, scanning is disabled !
  113.  
  114. /FLG         Enable displaying heur. flags (disabled default)
  115.  
  116.  
  117. 2.   METHODS USED IN HMVS
  118. ──────────────────────────────────────────────────────────────────────────
  119.  
  120. When MS Word documents or templates are scanned, HMVS do the following:
  121. - searches for macros in document or template
  122. - decrypts each macro (if encrypted)
  123. - uses standard scan method (only macros are scanned, not whole file !)
  124.   Some antiviral product have problem to detect how and where macros
  125.   are placed, so they must scan whole file :)
  126. - uses heuristics
  127.   Each macro is analysed and checked for some operations. If heuristics
  128.   found some checked operation, it set flag for it.
  129.  
  130. After these operations HMVS displays results of scanning and heuristic
  131. analysis.
  132.  
  133. HSMV uses two methods to detect macro viruses:
  134.  
  135. ■ Standard method based on 'identifications strings'
  136.   This is well know method frequently used in most virus scanners.
  137.   Search string method is fast and reliable, but can search only for
  138.   known viruses.
  139.  
  140.   CRC16 method
  141.   This is good method for exact identification of static viral macros.
  142.   However, this method is usable only for old generation of macro viruses
  143.  
  144. ■ Heuristic analysis
  145.   HMVS uses unique heuristic technology. HMVS uses special semi-emulator
  146.   of word macro commands (something like length disassembler, if you
  147.   know, what is it ...). It trace trough each command in macro,
  148.   step by step, and try to understand it.
  149.  
  150. All methods are good. Standard method can detect macro virus exact by
  151. its name, heuristics can detect known and unknown viruses.
  152.  
  153. Good antivirus products can use both methods. With large virus databases
  154. they can reach top hit-rate and they can detect unknown viruses too.
  155.  
  156. Heuristics may produce false positive alarms in same cases. We'we checked
  157. HMVS with some files containing antimacros (for example DOCGUARD.DOC).
  158. Because this file contains macros is doing some operations typical for
  159. viruses, this file for HMVS seems to be infected by a macro virus.
  160.  
  161. There is an example of false alarm (file DOCGUARD.DOC)
  162.  
  163. C:\MACRO\WINWORD\DOCGUARD.DOC
  164. Stream: WordDocument (MS Word)
  165. * document contains 7 macros with total length 15065 bytes
  166. {AutoOpen} {Remove} {Install} {AutoClose} {NormalAutoExec} {NormalAutoOpen}
  167. {NormalFileOpen}
  168. ! Copies macros into the template ('MacroCopy') [3 x]
  169. + Contains execute-only (encrypted) macros
  170. + Detects if macro is execute-only ('IsExecuteOnly()')
  171. + Uses the 'FileSaveAs' macro command
  172. + Enables auto macro processing ('DisableAutoMacro')
  173. + Detects number of macros in template or document ('CountMacros()')
  174. + Detects macros names in template or document ('MacroName$()')
  175. ! Deletes other files ! ('Kill') [2 x]
  176. + Contains macros but is named *.DOC
  177. ! Creates or edits macro ('ToolsMacro .Edit')
  178. Result of heuristics: POLY.CRYPT.COMPANION.MACRO virus
  179.  
  180. PROBABLY INFECTED WITH A MACRO VIRUS !!!
  181.  
  182. 2.1  Available options, when virus was found
  183. ──────────────────────────────────────────────────────────────────────────
  184.  
  185. If HMVS detect that file is infected, it displays something like
  186. the following example:
  187.  
  188. Note: Macros enclosed in [] are unencrypted, macros enclosed in {} are
  189.       encrypted.
  190.  
  191.       Flags used for result of heuristics:
  192.  
  193.       POLY        - might be polymorph or self modifying or antiheuristic
  194.                     virus
  195.       CRYPT       - encrypted virus
  196.       STEALTH     - uses 'stealth' method
  197.       COMPANION   - companion macro virus (links template with document)
  198.       MACRO       - macro virus
  199.  
  200. C:\MACRO\WINWORD\XENIXOS\XENIXOS.DOC
  201. Stream: WordDocument (MS Word)
  202. * document contains 11 macros with total length 31342 bytes
  203. {Drop} {Dummy} {AutoExec} {AutoOpen} {Datei╓ffnen} {ExtrasMakro}
  204. {DateiBeenden} {DateiDrucken} {DateiSpeichern} {DateiSpeichernUnter}
  205. {DateiDruckenStandard} 
  206. ! Copies macros into the template ('MacroCopy') [60 x]
  207. + Contains execute-only (encrypted) macros
  208. + Uses the 'FileSaveAs' macro command
  209. + Disables global template write access warnings
  210. + Enables auto macro processing ('DisableAutoMacro')
  211. - Might prevent the ESC key from interrupting a macro ('DisableInput')
  212. + Detects number of macros in template or document ('CountMacros()')
  213. + Detects macros names in template or document ('MacroName$()')
  214. - Gets parameters from WIN.INI or WINWORD6.INI ('GetProfileString$()')
  215. ! Executes other DOS or Windows programs ! ('Shell') [1 x]
  216. ! Writes directly to a sequential file ! ('Print #') [381 x]
  217. + Changes DOS attributes of other files ('SetAttr')
  218. - Changes current directories ('ChDir')
  219. - Opens a sequential file for input or output of text ('Open #')
  220. - Closes an open sequential file ('Close #')
  221. + Contains macros but is named *.DOC
  222. Contains virus pattern: <Xenixos> 
  223. Result of heuristics: CRYPT.MACRO virus
  224.  
  225. INFECTED WITH A MACRO VIRUS !!!
  226.  
  227. 1-Skip  2-Remove all macros  3-Rename file  4-Ignore all
  228. 5-Automatically remove all macros  6-Automatically rename all files  :
  229.  
  230. Now program waits for user input ...
  231.  
  232. Available actions:
  233.  
  234. 1-Skip
  235.   Program will do nothing. It skips this file and will continue searching
  236.   for the next files
  237. 2-Remove all macros
  238.   At first backup copy will be created. Then ALL macros from file
  239.   will be removed (each macro will be overwritten with nice text :)
  240. 3-Rename file
  241.   Renames file to *.VI?
  242. 4-Ignore all
  243.   Do nothing with all files. Like 1, but for any next file
  244. 5-Automatically remove all macros
  245.   Like 2, but for any next file
  246. 6-Automatically rename all files
  247.   Like 3, but for any next file
  248.  
  249. 3.   WHAT ARE MACRO VIRUSES :)
  250. ──────────────────────────────────────────────────────────────────────────
  251.  
  252. If you don't know what are macro viruses, you have big chance to be
  253. a potential victim of macro viruses :)
  254. Don't worry, HMVS is here to solve your problems (we hope ...)
  255.  
  256. 4.   HEURISTIC FLAGS DISPLAYED BY HMVS
  257. ──────────────────────────────────────────────────────────────────────────
  258.  
  259. Current version of HMVS can detect the following flags:
  260. (Currently we do not plan to add new flags in next version)
  261.  
  262. ! Copies macros into the template ('MacroCopy')
  263. + Might copy macros to template with using 'Organizer .Copy'
  264. ! Copies macros to template with using 'Organizer .Copy'
  265. ! Adds a template or WLL to the list of global templates ('AddAddIn')
  266. + Contains execute-only (encrypted) macros
  267. + Detects if macro is execute-only ('IsExecuteOnly()')
  268. + Uses the 'FileSaveAs' macro command
  269. + Disables global template write access warnings
  270. + Enables the fast save option 'FastSaves'
  271. - Might enable auto macro processing ('DisableAutoMacro')
  272. + Enables auto macro processing ('DisableAutoMacro')
  273. - Might prevent the ESC key from interrupting a macro ('DisableInput')
  274. + Prevents the ESC key from interrupting a macro ('DisableInput')
  275. + Detects number of macros in template or document ('CountMacros()')
  276. + Detects macros names in template or document ('MacroName$()')
  277. - Sets up a background timer that runs a macro at the specified time ('OnTime')
  278. - Gets parameters from WIN.INI or WINWORD6.INI ('GetProfileString$()')
  279. - Sets parameters in WIN.INI or WINWORD6.INI ('SetProfileString$()')
  280. - Gets parameters from initiating file ('GetPrivateProfileString$()')
  281. - Sets parameters in initiating file ('SetPrivateProfileString$()')
  282. + Removes document protection ('LockDocument')
  283. - Manipulates with protection for form fields
  284. - Removes protection for form fields
  285. - Renames menu items ('RenameMenu')
  286. ! Executes other DOS or Windows programs ! ('Shell')
  287. ! Deletes other files ! ('Kill')
  288. ! Writes directly to a sequential file ! ('Write')
  289. ! Writes directly to a sequential file ! ('Print #')
  290. + Removes directory ('RmDir')
  291. + Changes DOS attributes of other files ('SetAttr')
  292. - Detects number of subdirectories ('CountDirectories')
  293. - Changes current directories ('ChDir')
  294. - Opens a sequential file for input or output of text ('Open #')
  295. - Closes an open sequential file ('Close #')
  296. + Makes available a routine stored in DLL or WLL 4 use in a macro ('Declare')
  297. - Detects environment variable ('Environ$')
  298. + Contains macros but is named *.DOC
  299. - Detect whether the active document was changed ('IsDocumentDirty()')
  300. + Converts document to the template ('FileSaveAs .Format = 1')
  301. + Sets a password for opening the document ('FileSaveAs .Password = ')
  302. ! Creates or edits macro ('ToolsMacro .Edit')
  303.  
  304. !   means dangerous operation
  305. +   means warning (suspect)
  306. -   only for your information
  307.  
  308. Sorry, we haven't time to explain these messages. We thinking for AV
  309. researchers and experienced users it is sufficient.
  310.  
  311. We can add detailed descriptions in next release, if we'll get lot of
  312. requests and questions.
  313.  
  314.      ───────────────────────   that's all    ───────────────────────────
  315.  
  316. BTW, We don't like user's manual writting ...
  317.