home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Rising BBS / phoenixrising.zip / phoenixrising / vir-docs / crptlt19.arj / ULTIMUTE.DOC < prev    next >
Text File  |  1993-10-17  |  4KB  |  78 lines

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