99 lines
2.8 KiB
Plaintext
99 lines
2.8 KiB
Plaintext
|
|
Phantasie Mutation Engine <tm> Version 1.00
|
|
Written by Burglar in Taipei, Taiwan. (95/01/12)
|
|
|
|
|
|
1. License
|
|
|
|
You are free to include this Engine in anything, but don't to
|
|
injure anything. Injure anything is prohibited.
|
|
You are free to give it to people that will not injure anything,
|
|
you can use it to make mutation virus, but the virus don't have
|
|
any destruction.
|
|
|
|
|
|
2. How to use it
|
|
|
|
when you want use it, you must declare below at first in code
|
|
segment.
|
|
|
|
EXTRN PME:NEAR
|
|
|
|
Then you write your program like virus as usual. When you need
|
|
to encrypt the code, you just call the Engine. Put the following
|
|
instruction in your code:
|
|
|
|
CALL PME
|
|
|
|
You also need to supply the parameters for the Engine. They are passed in
|
|
registers. Results are also passed in registers.
|
|
|
|
Of course, you must link the PME.OBJ module to your program like
|
|
virus!
|
|
|
|
|
|
3. Input parameters
|
|
|
|
All parameters are mandatory. Description follows:
|
|
|
|
ES = Work segment
|
|
|
|
The Engine needs work space. On entry, ES must point to a free
|
|
segment. It will use the first 512 bytes of it PLUS length of
|
|
the code that will be encrypted.
|
|
|
|
DS:DX => Code to encrypt
|
|
|
|
On entry, just set DS:DX to point to the code you want to be
|
|
encrypted.
|
|
|
|
CX = Length of code to encrypt
|
|
|
|
On entry, just set CX to the length of the code you want to be
|
|
encrypted.
|
|
|
|
BX = Offset where the decryption routine will be executed
|
|
|
|
The Engine needs to know what will be the value of IP when the
|
|
decryption routine will take control. For example, if your
|
|
program which want to be encrypted is a COM file, and adds itself
|
|
BEFORE it, you must set this value to 100h.
|
|
|
|
|
|
4. Results
|
|
|
|
The Engine returns the following values in registers:
|
|
|
|
ES = Work segment
|
|
|
|
The ES value is preserved.
|
|
|
|
DS:DX => Decryption routine + encrypted code
|
|
|
|
DS:DX now points to the decryption routine + encrypted code.
|
|
|
|
CX = Length of the decryption routine + encrypted code
|
|
|
|
CX now has the summary length of both the decryption routine and
|
|
encrypted code. (always origin length + 512 bytes)
|
|
|
|
AX = 0
|
|
|
|
AX now is set to 0.
|
|
|
|
|
|
5. Final Notes
|
|
|
|
Well, that's for now. No time for more. Look at the demo program
|
|
PME-GEN.ASM to learn how to use it.
|
|
|
|
Pass the Engine (all files together in an archive) to programmers
|
|
and who want research it.
|
|
|
|
|
|
Greetings to all programmers
|
|
|
|
Burglar
|
|
|
|
Taipei, Taiwan.
|
|
|