home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / PMUPDT13.ZIP / ULTIMUTE.ZIP / ULTIMUTE.DOC < prev    next >
Encoding:
Text File  |  1993-08-05  |  4.0 KB  |  77 lines

  1. ────────────────────────────────────────────────────────────────────────────
  2.        The ULTImate MUTation Engine .93ß (c) 1993 Black Wolf Enterprises
  3.                pardon the title, had to think of something... }-)
  4. ────────────────────────────────────────────────────────────────────────────
  5.  
  6.    ULTIMUTE is a mutation engine written for security-type applications and 
  7. other areas where mutation of executable code is necessary.  For my personal
  8. use, I have implemented it in Black Wolf's File Protection Utilities,
  9. using it to encrypt the code placed onto EXE's and COM's to protect them
  10. from simple modification and/or unauthorized use.  The encryption algorithms
  11. themselves are terribly simple - the main point being that they change
  12. each time and are difficult to trace through.  This engine is written mainly
  13. to keep a "hack one, hack 'em all" approach from working on protected code,
  14. rather than to keep the code secure by a cryptologist's point of view.
  15.  
  16. Note: Please - this program and it's source have been released as freeware,
  17.       but do NOT use the mutation engine in viruses!  For one thing, the
  18.       decryptor sequence has several repetitive sequences that can be scanned
  19.       for, and for another, that just isn't what it was designed for and
  20.       I would NOT appreciate it.  If you MUST use someone else's mutation
  21.       engine for such, use the TPE or MTE.  I do NOT condone such, however.
  22.       
  23.       Please notify me if you release a program utilizing this engine -
  24.       I'd like to keep track of it if at all possible, and I may have an
  25.       improved version available.
  26.  
  27. MODIFICATIONS: Any modifications made to this program should be listed 
  28. below the solid line in the source code, as well as directly after this 
  29. paragraph in the docs. Tell what was changed along with the name of the 
  30. programmer and the date the file was changed.  Also - source files should 
  31. be commented where  changed.  If at all possible, report modifications to 
  32. file to the address listed in the documentation for BWFPU21s.
  33.  
  34. Changes to Date:
  35.         None 08/05/93   -  initial release date (add mod's below)
  36.  
  37. DISCLAIMER:  The author takes ABSOLUTELY NO RESPONSIBILITY for any damages
  38. resulting from the use/misuse of this program.  The user agrees to hold
  39. the author harmless for any consequences that may occur directly or 
  40. indirectly from the use of this program by utilizing this program/file
  41. in any manner.  Please use the engine with care.
  42.  
  43.  
  44. USAGE:  ULTIMUTE must be included as an object file into your program.
  45. To use, put the following lines at the top of your code....
  46.         
  47.         extrn   _ULTMUTE:near, _END_ULTMUTE:byte, Get_Rand:near
  48.         extrn   Init_Rand:near
  49.  
  50. Then, when you want to use it to encrypt code, use the following registers:
  51.  
  52. ENTRY:
  53.        CX=Code Length          BX=New_Entry_Point
  54.        DS:SI=Code              AX=Calling Style
  55.        ES:DI=Destination               1=Near Call, 2=Far Call, 3=Int Call
  56.  
  57. RETURN:
  58.        CX=New Size             ES:DI = Same, now contains encrypted code 
  59.                                        w/decryptor
  60.  
  61. The code from DS:SI of length CX will be taken and encrypted.  The decryptor
  62. and encrypted code will be placed at ES:DI.  BX should be the location that
  63. the decryptor will be in memory when it receives control - for example, if
  64. it is to be at the beginning of a .COM file, it should be set to 100h.
  65. AX determines how ULTIMUTE will return to your code, if it is set to 1
  66. (the normal case) then it will simply do a RETN - ax=2 will give a RETF
  67. and ax=3 will give an IRET.  When ULTIMUTE is done, CX will equal the new
  68. code size for the decryptor/encrypted code.  All other registers are saved.
  69.  
  70. As I said before, please use the engine responsibly - and NOT IN VIRUSES!
  71. For Questions/Comments, contact the address listed in BWFPU21s.DOC.
  72.  
  73. Remember - Freedom of Information brings a great responsibility to us.
  74.            We must fight for that right - but don't abuse it once you get it.
  75.  
  76.                                         Black Wolf
  77.