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.
|
||
|