OpenRead(

FileName,  //address of name of the file
Structure, //address of "INVICTUS" structure

);

FileName
~~~~~~~~
Points to a null-terminated string that specifies the name of the file.
This file will be mmaped in memory.

Structure
~~~~~~~~~
Points to the "INVICTUS" structure. See reference.

It returns a HANDLE that points to the start of the file, or NULL if
error.
________________________________________________________________________

Similar functions:
~~~~~~~~~~~~~~~~~~
OpenCreate - You have to specify a previous size
OpenWrite  - Like OpenRead
CloseFile  - The same arguments but closes the file, you should use it
           after OpenRead, OpenCreate, OpenWrite.
________________________________________________________________________

InfectFile(

FileName,      //address of name of the file to be infected
InfectID,      //String identifying infector
StubPath,      //address of name of the executable virus
Structure,     //address of "INVICTUS" structure
InfectMode,    //Kind of infection
Mujahedin,     //Reserved. Must be NULL
BinLaden,      //Reserved. Must be NULL
);

FileName
~~~~~~~~
Points to a null-terminated string that specifies the complete path of
the file to be infected.

InfectID
~~~~~~~~
Specifies the infector.
".EXE" or ".VBS", for example.

StubPath
~~~~~~~~
Points to a null-terminated string that specifies the complete path of
the virus main executable.

Structure
~~~~~~~~~
Points to the "INVICTUS" structure. See reference.

InfectMode
~~~~~~~~~~
Identify kind of infection.
   1 - EntryPoint is set to zero, virus code is packed
   2 - EPO + poymorphic engine KME 3.0 (infected file grows a lot)

Mujahedin
~~~~~~~~~
Reserved. Must be NULL

BinLaden
~~~~~~~~
Reserved. Must be NULL

It returns TRUE if success, or FALSE if fails

This function will affect only .EXEs with GetProcAddress() and LoadLibraryA

Tested with explorer.exe and others.
________________________________________________________________________

Pack(

NameorPointer, //Name of File to compress OR a pointer to memory
Range,         //Number of bytes to compress
Structure,     //address of "INVICTUS" structure
Ellen,         //Reserved. Need to be NULL

);

NameorPointer
~~~~~~~~~~~~~
Points to a file name or to a specific memory.
The file need be free to be opened with read/write attributes.

Range
~~~~~
Specifies the amount of memory to compress. In file compression
this parameter MUST BE NULL.

Struc1
~~~~~~
Points to the "INVICTUS" structure. See reference.

Ellen
~~~~~
Reserved. NULL.

It returns the packed lenght of the file, otherwise it returns NULL.
________________________________________________________________________

Depack(

From,          //Where the compressed data is stored
To,            //Place to decompress the data

);
________________________________________________________________________

procB64encode(

ptB64,         //Place to put converted data
ptBuffer,      //Where the data to be converted is
dtLength,      //Size of data to convert

);

Converts Strings to BASE64 format, to be used in email-like programs.
Returns the size of converted data.
________________________________________________________________________

procB64decode(

ptBuffer,      //Place to put re-converted data
ptB64,         //Where the data to be re-converted is
dtLength,      //Size of data to re-convert

);

Converts Strings from BASE64 format, to be used in email-like programs.
No output.
________________________________________________________________________

NetWorkExplorer(

TheCallback,       //Reserved. Need to be NULL
OsamaBinLaden,     //Pointer to memory, at least 16 Kb of area

);

The computer names in "OsamaBinLaden" are separated by CRLF, example:

\\COMPUTERz,13,10,\\COMPUTERd,13,10,\\COMPUTERa,13,10,0

Scan local network using MPR.DLL and provide paths to the specified
callback. See example.
________________________________________________________________________

PlayFile(

TheFile,           //Points to a complete file path

);

Executes the file using CreateProcess(), faster than WinExec().
________________________________________________________________________

   INVICTUS STRUCT
      _file_attrib            DWORD ?
      _file_time              DWORD ?,?,?,?,?,?
      _file_size              DWORD ?

      hWnd_CreateFile         DWORD ?
      hWnd_CreateFileMapping  DWORD ?
      hWnd_MapViewOfFile      DWORD ?
      hWnd_sfc                DWORD ?

      _access_type            DWORD ?
      _create_flag            DWORD ?
      _map_access_type        DWORD ?
      _mview_access_type      DWORD ?
      _image_nt_header        DWORD ?

      _infect_entry_point     DWORD ?
      _infect_last_section    DWORD ?

      _infect_import_dir_rva  DWORD ?
      _kernel_import_va       DWORD ?
      _import_function        DWORD ?
      _import_GetProcAddress  DWORD ?
      _import_GetKernel       DWORD ?
   INVICTUS ENDS
